Obsługa Rozkładów Jazdy w zdarzeniach

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

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

Post autor: gbbsoft » 12 mar 2017, 18:54

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: 198
Rejestracja: 24 lis 2015, 20:48

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

Post autor: andrzej-n » 13 mar 2017, 10:14

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: 1521
Rejestracja: 09 lip 2008, 23:19
System DCC: Lenz + Roco

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

Post autor: gbbsoft » 13 mar 2017, 11:06

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: 198
Rejestracja: 24 lis 2015, 20:48

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

Post autor: andrzej-n » 13 mar 2017, 11:44

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 24 razy
Andrzej

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

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

Post autor: gbbsoft » 13 mar 2017, 18:13

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: 198
Rejestracja: 24 lis 2015, 20:48

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

Post autor: andrzej-n » 15 mar 2017, 12:41

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: 1521
Rejestracja: 09 lip 2008, 23:19
System DCC: Lenz + Roco

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

Post autor: gbbsoft » 15 mar 2017, 14:28

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

ODPOWIEDZ