Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

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

Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

Oczywiście zaistniała pomyłka. Autoprzejazd "Y" ruszył gdy zatrzymałem Autoprzejazd "X"
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: gbbsoft »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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

Re: Operacja "AutoPrzejazd_Zmien" w Zdarzeniach

Post autor: andrzej-n »

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