Sprawdziłem ponownie występujący czasami problem z otrzymaniem rozkładu w Grodz. Zach. w misji z ET-42. (...)
Oho! Widzę, że pojawiają się osoby, które potrafią się odnaleźć w strukturze OS, to dobry znak dla MaSzyny.
Przechodząc do postawionego pytania: dochodzimy tutaj do problemu istniejącego niemal od zarania MaSzyny, czyli obsługi pojazdów wieloczłonowych.
W swoich scenariuszach zawsze przyjmowałem założenie, że komendy kolejkowane (czyli inne niż SetVelocity, ShuntVelocity, W4, W5, itp.) powinny być podawane do pojazdu przez putvalues – event wyzwalany w określonym momencie. Swego czasu była pewna moda podawania komend przez semafor (do mnie to w ogóle nie przemawiało, gdyż wprowadzało to pomieszanie mechanizmu skanowania i kolejkowania, i w efekcie wyglądało jak zwiastun kłopotów w przyszłości) ale stosowanie mojej metody zawsze okazywało się słuszne i niezawodne. Tak właśnie jest zrobione przypisywanie rozkładu jazdy do EU07, czyli 200 sekund po wykryciu wjazdu pojazdu na tor, wykryciu zwolnienia zwrotnicy najazdowej, i zidentyfikowania że to jest właśnie owa EU07 podczepiająca się do składu, następuje podanie eventu „gos_et41_przypisz_rozklad1”, czyli komendy putvalues. I to działa bez zarzutu.
Kiedy powstawało L053_poranek wyszły na jaw problemy z obsługą wieloczłonów – chociażby ET41 nie reagował na ten mechanizm, natomiast reagował na komendę podaną z semafora (wynikało to z faktu, że putvalues otrzymywał człon, który wjeżdżał na tor, natomiast z semafora otrzymywał drugi człon, ten z którego potem była kontynuowana jazda). Z tego właśnie powodu, w moich scenariuszach, tam gdzie ma jechać lokomotywa typu ET41 lub ET42, i gdzie jest podanie rozkładu jazdy, zamiast tradycyjnej metody, jest przypisanie rozkładu przez semafor. I tak jest zrobione w powyższym kodzie, czyli rozkład jest przekazywany przez semafor wyjazdowy grz_T. No i wychodzą teraz różne kwiatki związane z tym rozwiązaniem, raz działa, raz nie działa.
Jakoś w zeszłym roku została poprawiona obsługa wieloczłonów i w efekcie putvalues działało na oba człony – tutaj widzimy, że był przygotowany alternatywny event „gos_et41_przypisz_rozklad2”, który obecnie jest zakomentowany. Z jakich powodów tutaj to nie jest używane – nie wiem, nie pamiętam. Pewnie dlatego, że pojawiły się jakieś kłopoty z tym.
Rozwiązania tej sytuacji widzę dwa:
Pierwsze – zrobić zmianę w exe, które zacznie pojazdy wieloczłonowe traktować jak jeden pojazd. To chyba odpada, gdyż dotyczy podstawowych założeń symulatora, i aby to wdrożyć, trzeba by pewnie przeorać cały kod.
Drugie – zastosować taki mechanizm przypisywania rozkładów, jaki używam do przypisania rozkładów do EZT. Niestety wówczas z jednej linii kodu zrobi się nam co najmniej 10 linii, ale taki mechanizm może faktycznie zadziałać. I chyba póki co w tym kierunku trzeba pójść. W wolnej chwili (gdzieś w przyszłym tygodniu) prześlę plik .ctr uzupełniony o takie przypisanie rozkładu.
(...) z 50 minut opoznienia przez luczne s1 na trasie.
Rozkład dla towarowych jest napisany dla zasady, bez patrzenia na to, czy da się go utrzymać czy nie. Najważniejsze przy pociągach towarowych, przynajmniej w moich scenariuszach, jest: w ogóle dojechać do punktu docelowego, najlepiej z opóźnieniem nie większym niż kilka godzin, i
zużyć przy tym jak najmniej energii - albowiem na jeden rozruch pociągu mniej więcej takiego jak z misji z ET42 zużywa się tyle energii, ile zużywa średniej wielkości gospodarstwo domowe przez cały rok.