Obsługa Rozkładów Jazdy w zdarzeniach

Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: gbbsoft »

To zrób tak:
- w pierszym wpisz: =Runnning
- w drugi: =Paused or =Stopped

W ten sposób użyjesz tylko równości.

Możesz tez zapisać nierówność tak:
not coś=Running
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: andrzej-n »

To zrób tak:
- w pierszym wpisz: =Runnning
- w drugi: =Paused or =Stopped
Zrobiłem tak:
w pierwszym this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Running
w drugim this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Paused || this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Stopped
I nie działa.
Możesz tez zapisać nierówność tak:
not coś=Running
Nie wiem jak to zrobić. Próbowałem to "not" gdzies wstawić, ale program nie przyjmował.
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: gbbsoft »

andrzej-n pisze: 13 mar 2017, 10:14 w pierwszym this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Running
w drugim this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Paused || this.Engine.TimeTables_FindByName("3-3>").Status == GbbEngine.TimeTable.Statuses.Stopped
I nie działa.
Załącz/przyslij plik .plansza z tym warunkiem. Zobaczę.

Pytanie: A po czym poznajesz, że nie działa?
Podpowiedź: możesz użyc bloku 'Info', który wypisuje tekst w logu na dole, aby sprawdzić, czy program poszedł w daną gałąź...
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: andrzej-n »

Poznaję po tym, że powinno zmienić się urządzenie "p1" a tak się nie dzieje.
Podpowiedź: możesz użyc bloku 'Info', który wypisuje tekst w logu na dole, aby sprawdzić, czy program poszedł w daną gałąź...
Jak to zrobić?
rys7.jpg
Załączniki
STY 2017 ver.2.plansza
(1.91 MiB) Pobrany 208 razy
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: gbbsoft »

Twój program po naciśnięciu przycisku u5 działa tak:
- najpierw uruchamia rozkład "3-3>"
- następnie sprawdza, czy rozkład "3-3>" działa.
- jeżeli działa to nic nie robi
- jeżeli nie działa, to zmienia stan urządzenia "p1".

Po uruchomieniu rozkładu "3-3>" nie wiem, co by się musiało zdarzyć (mam: mógłby być rozkład niekompletny lub błędny), aby mikrosekundy później nie miał on statusu "działam", więc nigdy nie zmienisz stanu urządzenia "p1".


Dodatkowo (w celach testowych) dodałem bloki "info" w obu gałęziach. Ten w lewym wypisuje "Działam", ten pracy wypisuje "Nie działam". Jak klikałem w u5 to zawsze otrzymywałem w logu na dole ekranu tekst "Działam", co jest logiczną konsekwencją opisu powyżej...
Załączniki
Przechwytywanie.JPG
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: andrzej-n »

Oczywiście masz rację! To pomroczność jasna spowodowała brak logicznego myślenia.
Teraz negacja this.Engine.TimeTables_FindByName("3-3>").Status != GbbEngine.TimeTable.Statuses.Running działa poprawie.
Sorry za uporczywe zawracanie głowy.
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Obsługa Rozkładów Jazdy w zdarzeniach

Post autor: gbbsoft »

Żebyśmy tylko takie problemy mieli... :-)
ODPOWIEDZ