Funkcja "jeżeli"

reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

Co znaczy nie został ustawiony?? Trzeba ustawić w programie gdzieś active train czy active train to lok który jest aktualne podświetlony na panelu lokomotyw?

Właśnie tego wyrażenia active train nie rozumiem. Nie wiem co ono określa. Jaki obiekt w jakim stanie.

PS. Przydała by się jeszcze funkcja która sprawdza czy lok zmienił kierunek.
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

A gdzie definiujesz zdarzenie? Jeżeli w "urządzeniach", to tam ActiveTrain nie jest ustawiony.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

Tak, definiuję dokładnie w urządzeniu przycisk. Pod przyciskami ustawiam sobie coś w rodzaju ciągu wydarzeń.

Np. zawrócenie lokomotywy podczas manewrowania.

Przykład:

Jedzie lok powiedzmy z prędkością 60km/h.... naciskam przycisk urządzenia i pociąg zaczyna zwalniać, gdy się zatrzyma zmienia kierunek, potem krótka trąbka i rozpędza się do np 25km/h, można dodać np załączenie świateł manewrowych i wiele innych, jestem w fazie testowania.
Taki przydatny przycisk przy manewrowaniu, czasami lok nawraca wielokrotnie a z tym przyciskiem można troszkę to zautomatyzować i uczynić bardziej realnym dodając dźwięki itp.

Póki co tak jak wspominałem uruchamiam zdarzenia nie będąc połączonym z DCC (na sucho) stąd może błąd z funkcją active train.
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

Nie, to nie jest błąd. W zdarzeniach pod urządzeniem zmienna ActiveTrain nie jest ustawiona, bo przycisk nie ma aktywnej lokomotywy.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

A jaka funkcja mogę sprawdzić czy lok zmienił kierunek?
Chciałem zastosować w przycisku.

I czy da się jakoś spytać czy dana fuknkcja loka o adresie 3 albo o danej nazwie jest włączona. Także zastosowanie w urządzeniu przycisk.
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

A co to znaczy "zmienił kierunek"? Można sprawdzić jego aktualny kierunek.

W tym wątku (pierwszy przyczepiony): https://www.gbbkolejka.pl/!forum/viewto ... f=42&t=431 w pierwszym poście jest dokument WORDowski, w którym kolega ToTom spisał wiele ciekawych funkcji zdarzeń.

Jest i kierunek jazdy, i sprawdzanie funkcji.
Polecam... :-)
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

Tak, widziałem wcześniej ten plik. Ale tam jest tyko czy jedzie do przodu albo do tyłu.

A ja che użyć funkcji:
- jeśli lok zmieni kierunek to wykonaj to i tamto.

Bez względu na to w którą stronę aktualnie porusza się lok.

Hmm. Może nie da się tak
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

A co to znaczy "zmienił kierunek"? Każdy lok kiedyś zmienia kierunek... Od czasu pierwszej zmiany kierunku cecha "zmianiono kierunek" byłaby zawsze "true"...

Może spróbuj zapamiętać gdzieś na boku aktualny kierunek loka, a potem porównaj, czy bieżący kierunek jest taki sam jak ten zapamiętany. Jak inny, to znaczy, że lok zmienił kierunek.

Możesz:
- w oknie definiowania zdarzeń jest menu "Parametry" i tam tworzy się "Zmienne globalne" (typu 'tak/nie')
Potem:
- wrzucić operację "Wyrażenie_... " (które służy m.in. do sumowania wielu wartości danego typu)
Aby pobrać wartość możesz:
- w "Wyrażenie - ustawienia" w "ActiveTrain" wpisać nazwę lokomotywy
- wtedy w "Argument1" możesz wskazać cechę "ActiveTrain.DriveForward" (ona jest typu 'tak/nie')
Aby wynik zapisać
- w polu "Zapisz wynik do" wskazać zmienną globalną
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

ok, muszę pokombinować, dziękuję za podpowiedzi.
ODPOWIEDZ