Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

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

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

andrzej-n pisze:Również w parametrach bloku b2 nie zostały zmienione miejsca zatrzymania.
To jest bardzo ciekawa uwaga. Rzeczywiście gdzieś powinno być widzieć wartości wpisane do tymczasowych zmiennych...
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Dodałem możliwość podejrzenia aktualnie ustawionej wartości tymczasowej w bloku.
Oraz poprawiłem pewien błąd, który mógł powodować, że u Ciebie źle działało...
Załączniki
Przechwytywanie.JPG
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: andrzej-n »

Przepraszam, że po tak długim czasie kontynuuję ten temat, ale dopiero teraz miałem okazję w pełni to przetestować. I okazało się, iż są dwa problemy.
Pierwszy najważniejszy:
Wpisałem w bloki zdarzenia DistanceToStop (przy wjeździe pociągu do bloku) dla trzech lokomotyw. Program natomiast zapamiętał tylko jedną, prawdopodobnie tę, która była wpisana jako pierwsza. Wjazd do bloku innej lokomotywy nie powoduje zmiany miejsca zatrzymania. Można natomiast zmienić miejsce zatrzymania dla tej, która została zapamiętana.
Problem drugi to rzeczywista odległość od początku bloku do miejsca zatrzymania określonego w zdarzeniu DistanceToStop. Przy dystansie określonym z zdarzeniu na 65 cm lok zatrzymuje się po 130 cm.
Chciałem załączyć plik .plansza, ale okazał się za duży, więc przesyłam Ci go e-mailem
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Aby zatrzymywanie poprawnie działało:
- musi być sprofilowana lokomotywa
- musi być poprawnie (zgodnie z rzeczywistością) wpisane CV4
- powinien być włączony system BMF w dekoderze (trzymanie stałej prędkości niezależnie od obciążenia i oporów).
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: andrzej-n »

Rozumiem, że powyższe dot problemu drugiego. Wszystkie te warunki są spełnione.
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Chyba niepotrzebnie ustawiłeś właśność "ActiveTrain" (dwa razy) dla działania "integerExpression_Activity" na "V 200" (czy innym miejscu "ST 44")
Jakbyś zostawił to puste, to przy uruchomieniu zdarzenia w bloku program by samodzielnie ustawił jako "ActiveTrain" lokomotywę, która właśnie wjechała do bloku. A tak to zawsze jest "V 200" niezależnie, co wjeżdża.
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Wydaje mi się, ze wystarczy tylko takie wpisy zrobić, aby zmienić miejsce zatrzymania...
Przechwytywanie.JPG
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Gdybyś natomiast chciał zmienić miejsce zatrzymania w NASTĘPNYM bloku, to wtedy trzeba by zrobić tak:
Przechwytywanie.JPG
PS. A cełej reszty właściwości tego działania nie ruszać... :-)

PS2. Wystawiłem wersję 1.72.6165, bo znalazłem drobny błąd w naznach cech (powtarzała się nazwa ActiveBlock i ActiveTrain, co dawało dziwne efekty uboczne).

PS3. Zwiększyłem limit na załączniki
Awatar użytkownika
gbbsoft
Admin
Posty: 2178
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: gbbsoft »

Przyjrzałem się jeszcze zdarzeniu w b2. Są 3 działania, jedno za drugim, które robią to samo: wpisują różną wartość do "ActiveBlock.DistanceToStopTmp_LeftBottomEnd". Ustawienia w AciveTrain są nieistotne, bo pole "ActiveTrain" nigdzie nie jest używane. Więc w bloku zostaje wpisana wartość z ostatniego działania (czyli 42).

Jeżeli dla różnych loków chcesz różne odległości, to musisz za pomocą działania "Jeżeli" rozpoznać lok i w zależności, który wjeżdża, ustawić odpowiednią wartość (takie "Jeżeli" już robiłeś w innych miejscach).
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)

Post autor: andrzej-n »

Witam,
Jest jeszcze jeden problem. Otóż zauważyłem, iż przy pierwszym wjeździe nowego loka do bloku następuje zmiana miejsca zatrzymania w parametrach bloku, ale lok ztrzymuje sie miejscu zgodnym z poprzednim zapisem. Dopiero drugi wjazd jest poprawny, z tym, że musi nastąpić zaraz popierwszym.
Oczywiście wcześniej lok jest rozpoznany przy pomocy funkcji "jeżeli".
Sprawdziłem, że umiejscowienie zdarzenia DistanceToStop w bloku poprzedzającym rozwiązuje problem i można to zastosować w przypadku, gdy z bloku poprzedzajacego jest wjazd tylko do jednego bloku. Sytuacja bardzo się komplikuje gdy z bloku poprzedzającego jest wjazd do 3 bloków tak jak w moim przypadku. Koniecznym bowiem staje się budowanie "piętrowych" funkcji "jeżeli", które pozwolą rozpoznać blok i lokomotywę.
Andrzej
ODPOWIEDZ