Przykłady funkcji logicznych w zdarzeniach

andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Przykłady funkcji logicznych w zdarzeniach

Post autor: andrzej-n »

Witam,
Możliwość wykorzystania w zdarzeniach funkcji logicznych to olbrzymi atut programu Gbbkolejka. Przy ich wykorzystaniu staje się możliwe „zautomatyzowanie” niemal całego ruchu na makiecie. Niestety, znalezienie jakiegoś opisu jest bardzo trudne. Dlatego też chcę się podzielić wiedzą, jaką w tym temacie otrzymałem od GbbSoft.
Najważniejszą z funkcji logicznych jest niewątpliwie funkcja „jeżeli,” pozwala bowiem, w zależności od spełnienia jednego czy też wielu warunków ustawić pożądane działania.
Przedstawię w jaki sposób zapisać 4 warunki w funkcji „jeżeli”:
1. Jeżeli lok wyjeżdża z góry/prawej strony bloku
2. Jeżeli lok jedzie tyłem/przodem
3. Jeżeli jedzie lok o konkretnej nazwie
4. Jeżeli stan rozjazdu „x” jest prosto/w bok
Dla lepszego zobrazowania załączam przykładowy plik example.plansza, w którym te funkcje są zapisane. Dla uproszczenie wszystkie funkcje zapisałem w zdarzeniach w opcji „po ruszeniu pociągu z bloku”. Wpisałem też cztery Autoprzejazdy, aby można było sprawdzić działanie funkcji.
Gorąco zapraszam wszystkich, którzy wykorzystywali funkcje logiczne do podzielenia się wiedzą na ten temat. Są przecież jeszcze pętle „for” i „while”.
Ad1. Zapisana w bloku b1. Autoprzejazd A1.
Jeżeli lok wyjeżdża z góry/prawej strony bloku:
this.ActiveBlock.CurrentTrainRunningDirection_IsToRightTop
jeżeli lok wyjeżdża z dołu/lewej strony bloku
!this.ActiveBlock.CurrentTrainRunningDirection_IsToRightTop
Ad2. . Zapisana w bloku b2. Autoprzejazd A2.
Jeżeli lok jedzie tyłem:
!this.ActiveBlock.CurrentTrain_IsRunningForward()
Jeżeli lok jedzie przodem
this.ActiveBlock.CurrentTrain_IsRunningForward()
Ad3. . Zapisana w bloku b3. Autoprzejazd A3
. jeżeli jedzie lok o nazwie „V200”
this.ActiveTrain.Name == "V 200"
jeżeli jedzie lok o nazwie innej niż „V200”
this.ActiveTrain.Name != "V 200"
Ad4. Zapisana w bloku b4. Autoprzejazd A4
Jeżeli rozjazd Z2 ustawiony jest prosto
this.Engine.Switches_FindByName("Z2").Status_IsStraight(0)
jeżeli w bok
!this.Engine.Switches_FindByName("Z2").Status_IsStraight(0)

Mam nadzieję, że będzie to pomocne, szczególnie dla tych, którzy dopiero rozpoczynają pracę z Gbbkolejka.
Andrzej-n
Andrzej
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Przykłady funkcji logicznych w zdarzeniach

Post autor: andrzej-n »

Niestety, nie jest możliwe załączenie pliku .plansza.
Jeżeli ktoś chciałby się z nim zapoznać mogę wysłać indywidualnie.
Andrzej-n
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Przykłady funkcji logicznych w zdarzeniach

Post autor: gbbsoft »

Dodałem możliwość wstawiania plików .plansza do postów.
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Przykłady funkcji logicznych w zdarzeniach

Post autor: andrzej-n »

Zatem załączam plik example.plansza
Załączniki
example.plansza
(475.13 KiB) Pobrany 249 razy
Andrzej
ODPOWIEDZ