Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

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

Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 13 sty 2017, 13:19

Zauważyłem dziwne działanie Operacji "AutoPrzejazd_Zmien" w Zdarzeniach.
Otóż zaprogramowałem prostą sekwencję zdarzeń (zal 1) polegającą na tym, że uruchamiany jest Autoprzejazd "X" a po zkończeniu jego działania uruchamiany jest Autoprzejazd "Y".
Niestety "Autoprzejazd "Y" nie ruszył pomimo, iż wyłączyłem działanie Autoprzejazdu"X" w oknie z listą Autoprzejazdów.
"Autoprzejazd "Y" ruszył gdy w zdarzeniu zapisałem zatrzymanie "Autoprzejazdu Y" (zal 2)
Wynika z tego, że program ignoruje rzeczywisty stan na makiecie a uwzględnia to co jest zapisane w zdarzeniach. A to nie jest komfortowa sytuacja.
Czy da się coś z tym zrobić?
Załączniki
zal 1.jpg
zal 2.jpg
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 13 sty 2017, 13:23

Oczywiście zaistniała pomyłka. Autoprzejazd "Y" ruszył gdy zatrzymałem Autoprzejazd "X"
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft » 13 sty 2017, 15:34

Tu jest błąd w twoim rozumowaniu: "uruchamiany jest Autoprzejazd "X" a po zkończeniu jego działania "
Moduł "Uruchomienie autoprzejazdu" w zdarzeniach NIE CZEKA na jego zakończenie... Uruchamia i idzie dalej...


Więc dalsze wnioski (np: ten "Wynika z tego, że program ignoruje rzeczywisty stan na makiecie a uwzględnia to co jest zapisane w zdarzeniach.") są też nieprawdziwe...

PS. W większości przypadków autoprzejazd po uruchomeniu działa w nieskończoność... Więc czekanie na jego zakończenie trwałoby w nieskończoność.

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 13 sty 2017, 21:36

Przepraszam to ja zrobiłem błąd.
W podanym przykładzie - zapytanie o działanie Autoprzejazdu"X" następowało zaraz po Uruchomieniu tego Autoprzejazdu, zatem Autoprzejazd "Y" nie mógł ruszyć, gdyż działał Autoprzejazd "X"
Zmieniłem zdarzenie tak jak w zal 3, gdzie ustawiłem czas czekania na odpowiedni do długości trwania Autoprzejazdu "X" i wszystko śmiga.
Takie rozwiązanie wymaga jednak zmierzenia czasu trwania Autoprzejazdu, a w przypadku gdy w rzeczywistości on się przedłuży lub skróci, to dojdzie do uruchomienia Autoprzejazdu "Y" w nieporządanym momencie. Dlatego zastosowałem w zdarzeniach "Pętlę_While" (zal 4). Teraz Autoprzejazd "Y" rusza tylko wtedy gdy przestaje działać Autoprzejazd "X".
Może komuś się przyda takie rozwiązanie.
Załączniki
zal 3.jpg
zal 4.jpg
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 13 sty 2017, 22:14

Jest jeszcze jedna kwestia związana z tym tematem. Powyższe rozwiązanie nie działa w przypadku Autoprzejazdów zdefiniowanych jako "jednorazowe".
Każdorazowe uruchomienie przejazdu "jednorazowego" powoduje tylko chwilowe mrugnięcie, że Autoprzejazd działa i do zakończenia jego działania w oknie "Autoamtycznych przejazdów" w kolumnie "Działa" nie ma takiego zapisu. W pozostałych Autoprzejazdach dopóki ich się nie zatrzyma taka informacja jest widoczna. Czy można tak zrobić, by "jednorazowy przejazd" działał do momentu aż osiągnie blok docelowy?
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft » 14 sty 2017, 21:38

Nie bardzo. Autoprzejazdy jednorazowe muszą robić robotę raz, tak jest ich rola. Rolą autoprzejazdu jest ustawienie drogi, a nie czekanie aż coś gdzieś dojedzie. Spróbuj może w pętli wykrywać aż coś gdzieś dojechało...

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 15 sty 2017, 18:33

Czyli z tego wniosek, że np Autoprzejazd "Blok1->Blok2->Blok3->Blok1" zdefiniowany jako "jedorazowy" nigdy nie zadziała do końca, gdyż przestanie działać zanim zwolni się Blok1.
Spróbuj może w pętli wykrywać aż coś gdzieś dojechało...
Ale jak się zapytać "czy blok jest zajęty"
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft » 15 sty 2017, 19:18

Jednorazowy przejazd raczej powinien by miedzy dwoma blokami, nie więcej...

Co innego "blok jest zajęty", a co innego "lok dojechał". Jak lok dojeżdża do bloku i staje, to blok dalej jest zajęty...

Blok jest wolny wtedy, gdy "IsFree(false)=true"
Lok dojechał, gdy blok jest zajęty i "Blok.CurrentTrainStatus=0"

Tylko nie wiem, czy to się da sprawdzić w wydarzeniach...

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 15 sty 2017, 20:26

Przejazdy "jednorazowe" działają bez zarzutu pod warunkiem, że nie kończą się w bloku z którego startują.
Mnie chodzi o to "IsFree(false)=true". Czyli chciałbym w funkcji "jeżeli" wstawić pytanie o zajętość konkretnego bloku.
Andrzej

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n » 17 sty 2017, 11:28

Czyli chciałbym w funkcji "jeżeli" wstawić pytanie o zajętość konkretnego bloku.
Piotrze, czy udało Ci się coś wymyśleć w tym temacie?
Andrzej

ODPOWIEDZ