Autor Wątek:  Zmiana rozkładu jazdy.  (Przeczytany 2196 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline AntoniS

  • Wiadomości: 81
    • Zobacz profil
  • Otrzymane polubienia: 16
Zmiana rozkładu jazdy.
« dnia: 29 Grudnia 2019, 03:33:23 »
Jeżeli poniższy problem już był poruszany na forum, to przepraszam i proszę o link do tej dyskusji. Generalnie chodzi mi o coś takiego, że dostosowuję scenerię l053_noc do rozpoczęcia o innej godzinie niż w oryginale - ot taki kaprys... W tym celu muszę odpowiednio przesunąć rozkłady jazdy oraz godziny wykonania eventlauncherów (jest kilka zdarzeń tego typu w pliku *.ctr). Przesunięcie czasu rozkładów uzyskuję w ten sposób, że do wszystkich torów, na których są umieszczone na początku pociągi z nadanymi im we wpisie "trainset" rozkładami jazdy tworzę sobie komórki pamięci i następnie za pomocą zdarzenia typu "onstart..." wywołuję eventy updatevalues poszczególnych komórek z podaniem do nich właściwych rozkładów jazdy z interesującym mnie przesunięciem czasowym. Problem polega na tym, że po wykonaniu tej operacji w składach osobowych, których na danym torze oprócz lokomotywy stoi jeszcze wagon lub wagony z obsadą "passenger" rozkład zostaje przypisany prawidłowo, ale lokomotywa (z obsadą headdriver) pozostaje w trybie "prepare_engine" a w tryb "obey_train" przechodzi zagon znajdujący się na początku danego toru (jeżeli między nim a lokomotywą mieści się jeszcze jeden wagon) to także ma ustawiony tryb "prepare_engine". W efekcie po wystąpieniu godziny odjazdu te pociągi nadal stoją w miejscu i cała symulacja się rozjeżdża. Niczego nie zmiania dodatkowe, późniejsze podanie im komendy "obey_train" ani też nadanie wraz z nowym rozkładem prędkości początkowej jak też podanie sygnału zezwalającego na jazdę na semaforze wyjazdowym (sygnał ten jest skanowany przez wagon znajdujący się w trybie "obey_train", a lokomotywa nie skanuje niczego. W związku z powyższym mam następujące pytania/proszę o następujące informacje:

1. Czy takie zachowanie symulatora jest właściwe, a jeżeli nie, to czym może być spowodowane? (nota bene, jeżeli jest to poprawne, to przydałaby się odpowiednia informacja/komentarz w scenery.doc, albo jeszcze lepiej w maszynowej Wiki np. w dziale dotyczącym komend dla AI...
2. Zakładam (jeszcze nie spróbowałem), że  problem zniknie, gdy wagony te  będą z obsadą "nobody" zamiast "passenger" - czy teoretycznie tak będzie? A jeżeli tak, to jaka jest różnica praktyczna (użytkowa) w symulacji dla wagonów z obsadzonych "nobody" i passenger"?

Póki co problem rozwiązałem przez odpowiednie cofnięcie składów (tak, by na torze do którego komórki wysyłam rozkład jazdy stała tylko lokomotywa). Jednak poruszam ten temat, by wiedzieć więcej, być może zwrócić uwagę na błąd w exe i ewentualnie znaleźć inny sposób na rozwiązanie tego problemu (kiedyś przesunięcie składu może nie być możliwe lub stwarzać inne problemy).
Od razu zaznaczam, że zdaję sobie sprawę z tego, że mogę oczywiście podzielić dany tor na dwa: pod lokomotywą i resztą składu - ale takiej ingerencji wolałbym uniknąć - znów może się okazać trudna do wykonania w jakimś przypadku.
Wiem też, że można przypisywać do "wybudzonych" pociągów rozkłady jazdy za pomocą semaforów - modyfikując ich komórki pamięci - i tutaj mój drugi problem, bo tego rozwiązania próbowałem (od razu zaznaczam, że w przeciwieństwie do opisanych wcześniej nie na paczce 19.08 z II poł. listopada, a na 19.04) i działało to wybiórczo i z dużym opóźnieniem... Konkretnie: podobnie, jak wcześniej wyzwalałem zdarzenie onstart_... multiple... z 10 sekundowym opóźnieniem, które uruchamiało serię zdarzeń typu updatevalues, które z kolei z opóźnieniem 30 i 60 sek (testowałem dla dwóch składów) przesyłały przesunięte rozkłady do komórek pamięci skanowanych przez AI semaforów wyjazdowych. Konkretnie rozkłady dla MPE13129 i MPE41132 odpowiednio do: debica_m_sem_mem oraz sandomierz_l_sem_mem. Rozumiem, że teoretycznie w czasie ok. minuty (no powiedzmy 2 minut) od uruchomienia scenariusza powinno zostać wykonane podstawienie obu przesuniętych rozkładów. Tymczasem dla składu MPE13129 stojącego przed semaforem wyjazdowym M w Dębicy nic się nie zmianiało i po podaniu odjazdu wyruszał z Dębicy zgodnie z oryginalnym rozkładem jazdy. Z kolei skład MPE41132 stojący przed semaforem wyjazdowym L w Sandomierzu nowy rozkład otrzymywał praktycznie o oryginalnej godzinie odjazdu (odjeżdżał, więc według zmienionego rozkładu) z chwilą podania semafora, czyli ok. 4-5 min od rozpoczęcia scenerii, a nie ok 1,5-2 jak wynikałoby z ustawionych czasów wykonania eventów... W logu zauważyłem różnicę taką, że przesłanie jednego rozkładu wykonywane jest po podaniu odjazdu na semaforze a drugi przed tym zdarzeniem i to praktycznie jedyna różnica. Pytanie moje odnośnie tej sytuacji jest takie: skąd tak duże opóźnienie w wykonaniu obu eventów wysyłających rozkłady do komórek pamięci semaforów oraz czemu w jednym przypadku to działało, a w drugim nie. W razie potrzeby oczywiście załączę potrzebne pliki - przepraszam, że tego nie robię od razu, ale mam je na innym komputerze.

Z góry dziękuję za wyjaśnienia i pomoc oraz przy tej okazji wszystkim życzę szczęśliwego Nowego Roku!
« Ostatnia zmiana: 29 Grudnia 2019, 03:58:47 wysłana przez AntoniS »
Pozdrawiam,

Antoni Ślebodziński

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #1 dnia: 29 Grudnia 2019, 04:16:13 »
Pewnie zrobi ci sie troche smutno ze wzgledu na wlozona juz prace, ale cala robote zwiazana z przesunieciem scenariusza na inna godzine odwala exe, po wpisaniu w pliku eu07.ini

scenario.time.override X.Y

gdzie X.Y to godzina z minutami w postaci ulamka. Czyli np 12.5 oznacza ze start scenariusza zostaje przesuniety na 12:30
« Ostatnia zmiana: 29 Grudnia 2019, 04:19:57 wysłana przez tmj »

Offline AntoniS

  • Wiadomości: 81
    • Zobacz profil
  • Otrzymane polubienia: 16
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #2 dnia: 29 Grudnia 2019, 04:51:04 »
Nie no, czemu smutno... Wręcz chce mi się śmiać... :-))) Dzięki za wiadomość, bo o tym faktycznie warto wiedzieć i wiele to ułatwia. Szkoda tylko, że nie ma gdzieś kompletnych i pełnych opisów wszystkich możliwości, parametrów, funkcji itd. realizowanych w aktualnie dostępnym exe (wiem, że nie jestem ani pierwszy ani oryginalny z taką uwagą). Nawet, gdyby te opisy się pojawiały z opóźnieniem, ale były w jednym miejscu, a nie rozrzucone w setkach różnych wątków tego forum (nie mówiąc nawet o tych, o których jeszcze nikt "przypadkowo" nie wspomniał...) to znacznie ułatwiłoby to pisanie, modyfikowanie czy po prostu jakiekolwiek dłubanie przy istniejącej lub nowej scenerii.... Np. także teraz natrafiłem przypadkowo na informację, że podobno można już przypisywać więcej niż jeden event dla danego kierunku konkretnego toru... choć też nie znalazłem na razie nigdzie jakiegoś jasnego i pełnego wytłumaczenia co można a co nie... Czy np. po zdefiniowaniu dla konkretnego toru jednego eventu "event1" w definicji toru, a drugiego zdalnie w pliku *.ctr: tor:event1 oba te eventy zostaną wykonane, czy tylko jeden, bo nie można łączyć różnych sposobów... Podobnie wiem, że dawniej eventy putvalue i getvalue nie działały poprawnie jeżeli nie były wywoływane bezpośrednio "z toru" tylko za pośrednictwem wywołanego z tego toru eventu multiple - czy coś się zmieniło, czy dalej tak jest?

Dzięki za informację - chętnie skorzystam, bo łatwiej wpisać jedną godzinę niż zmianiać ileś komend timetable i do tego przeliczać ileś eventlauncherów wiem, że można by do tego też stworzyć odpowiednie narzędzie, ale jakoś się za to nie zabrałem i pewnie tak by zostało. Swoją drogą czy taka modyfikacja jest możliwa z poziomu pliku scn a nie ini (np. przez wpis typu config)?

Tak, czy inaczej będę wdzięczny, jeżeli ktoś rozwieje i wyjaśni  moje wątpliwości opisane we wcześniejszym poście, choćby dla samej wiedzy - podejrzewam, że może się to przydać nie tylko przy zmianie rozkładów, czy szerzej godziny scenerii i choćby dlatego chciałbym znać odpowiedzi na moje pytania.
Pozdrawiam,

Antoni Ślebodziński

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #3 dnia: 29 Grudnia 2019, 08:49:22 »
Akurat ten parametr jest opisany: https://wiki.eu07.pl/index.php/Plik_konfiguracyjny_EU07.INI#Parametry_scenerii i tak można go wpisać do jednego pliku scenerii, żeby tylko on rozpoczynał się o danej godzinie.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #4 dnia: 29 Grudnia 2019, 14:49:12 »
Swoją drogą czy taka modyfikacja jest możliwa z poziomu pliku scn a nie ini (np. przez wpis typu config)?
Tak, powinna zadzialac. Wpis config/endconfig jest praktycznie odpowiednikiem wczytania zawartosci pliku .ini, tyle ze wykonywanym w momencie napotkania wpisu. Ze wzgledu na ten wlasnie fakt (zmiana parametrow nastepuje w momencie napotkania wpisu) najlepiej jest, by wpis config znajdowal sie na samym poczatku pliku .scn, by podane w nim ustawienia wplynely na wszystkie elementy scenerii (zdefiniowane juz po wpisie config)

Offline AntoniS

  • Wiadomości: 81
    • Zobacz profil
  • Otrzymane polubienia: 16
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #5 dnia: 29 Grudnia 2019, 20:31:14 »
Dzięki za informację. Właśnie tak mi się kojarzyło, że coś kiedyś o tym czytałem, ale zupełnie o tym nie pamiętałem, po drugie nie mogłem skojarzyć, czy to były dyskusje przed wprowadzeniem tych zmian, czy już efekty ich wprowadzenia a poza tym, to właśnie... opis w maszynowej wiki, która w obecnym stanie jest jednym z najlepszych źródeł (ale jednak typu kompedium a nie pełnej dokumentacji) nie wynika wprost czy użycie tego parametru przesuwa odpowiednio w czasie wykonywanie event launcherów, czy tylko rozkładów jazdy... Stąd moje ówczesne wątpliwości, brak stosowania i w efekcie "niepotrzebna" robota na piechotę...

Swoją drogą, to doskonale sobie zdaję sprawę i zgadzam się z tym, co ktoś kiedyś w jakiejś dyskusji na tym forum powiedział... że wobec masy niedoróbek, rzeczy, które trzeba poprawić albo wprowadzić oraz ciągłej ewolucji symulatora (wskutek jego rozwoju i coraz pełniejszej i lepszej jakości) trudno jest na bieżąco tworzyć pełna dokumentację i lepiej jest czas poświęcać na rozwój i ulepszanie samego symulatora. Jednak gdyby taką dokumentację tworzyć na bieżąco, potem w razie potrzeby ją modyfikując lub uzupełniając, to nie byłoby trzeba aż tyle pracy, a byłaby to ogromna pomoc dla takich jak ja - co coś chcą zrobić, ale ich wiedza nt.możliwości, sposobów  i działania symulatora jest nikła i podstawowa.
Pozdrawiam,

Antoni Ślebodziński

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Zmiana rozkładu jazdy.
« Odpowiedź #6 dnia: 29 Grudnia 2019, 20:45:18 »
Staramy się ale widzisz jak jest. Wiki akurat może modyfikować każdy. Kwestia śledzić rozwój i pamiętać wszędzie dopisać co trzeba.
Mój kanał youtube