- Symulator MaSzyna -

Symulator EU07 (i nie tylko) => Pomoc w tworzeniu => Wątek zaczęty przez: HTD w 01 Czerwca 2015, 23:25:46

Tytuł: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 01 Czerwca 2015, 23:25:46
W mojej modyfikacji (zwierzyniec_htd_ed72_6.01) mam dynamiczny rozkład jazdy i komunikat odjazdu. Problem jest taki, że kiedy stoję na przystanku, mija oznaczona w rozkładzie godzina - rozkład przechodzi na wyświetlanie kolejnej stacji, ale sygnał odjazdu słyszę dopiero jak otwiera się semafor WJAZDOWY na kolejną stację, co jest IMHO błędem. Ten sygnał powinien być zależny od sygnalizacji semafora wyjazdowego (przed którym stoję), a nie wjazdowego z następnej stacji.

Problem pojawił się od wersji 15.04, wcześniej sceneria działała prawidłowo.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 01 Czerwca 2015, 23:44:53
Podaj wpis W4 i odległość między nim a nieszczęsnym wjazdowym. AI nie rozumie kontekstu semafora. Jeśli po odhaczeniu W4 skanuje sygnał zabraniający i p8 W4 jest nieparzyste, będzie czekać na zmianę sygnału. Zmieniłem komentarze w incu w4n by odzwierciedlały zachowanie na aktualnych exe. Warto poczytać, albo zerknąć na wiki Ra.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 02 Czerwca 2015, 00:34:53
include ip/pkp/w4n.inc Chomikowo#01 904.467 0.984 -3970.39 -160.148 0.0 0.0 0 2 endSemafor (o ile dobrze pamiętam) to "psiary_zagroda_p" (-1263, -2582) a W4 to "Chomikowo#01" (-905, -3966) czyli odległość w linii prostej to 1430m, czyli dość daleko (po drodze jest jeszcze TO). Jutro przejadę trasę jeszcze raz i zapiszę sobie na kartce gdzie jest nie tak. Być może źle ustawiłem parametry W4i, zgodnie z jakąś starszą dokumentacją.
No i jest tak, dostaję wyjazdowy z Chomikowa (odległość około 2m przed czołem pociągu), nic się jeszcze nie dzieje. Mija rozkładowa godzina odjazdu - rozkład przeskakuje na następną stację. Sygnału odjazdu brak. Ruszam, jadę, po kilku (-nastu) sekundach słyszę "wjazd podany" i jednocześnie "odjazd", na TO widzę wjazd.

Wg komentarza w pliku w4n.inc p8 to "track number". Pytałem się kiedyś na forum do czego się tego używa i otrzymałem odpowiedź, że na razie nieużywane i może być 0. Z poprzednią wersją exe było to zgodne i działało właściwie, w nowej wersji ten parametr chyba nabrał znaczenia, bo część w4n.inc nie działa mi prawidłowo. Domyślam się, że jak zmienię p8 z 0 na 1 to powinno pomóc?

W mojej modyfikacji wszystkie p8 dla w4n.inc są ustawione na 0. Zero jest parzyste, więc z tego co piszesz nie powinno być oczekiwania na zmianę sygnału. Chyba, że jest odwrotnie.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 02 Czerwca 2015, 00:49:35
Teraz komentarz brzmi następująco:
Cytuj
p1=nazwa stacji jak w rozkładzie z unikalnym członem za #; p2,p3,p4=translacja; p6,p5,p7=rotacja; p8=Zachowanie AI po odjeździe. Dla parzystych dojazd do semafora, dla nieparzystych oczekiwanie na sygnał zezwalający na semaforze w zasięgu skanowania. W przyszłości sugerowany punkt zatrzymania; p9=Długość peronu (zaokrąglona do dziesiątek metrow), ostatnia cyfra: strona otwarcia drzwi (1:lewa, 2:prawa, 3:obie)
Zmiena weszła w exe 467. Tu masz opis autora http://rainsted.com/pl/Symulator/MaSzyna/EU07.EXE_469#Poprawione_zatrzymywanie_na_W4_.28467.29
TO zazwyczaj są nieprzypisane. Odległość skanowania przy postoju nie wiem ile wynosi, ale może to być i 1,5 km. Jeśli po zniknięciu "Chomikowo#01" skanuje "psiary_zagroda_p" to łapie i tyle. Może jest jakiś błąd w tym mechanizmie, może zero nie jest traktowane jako parzysta.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 03 Czerwca 2015, 08:12:55
OK, 3 razy przejechałem trasę testowo z różnymi ustawieniami P8 dla W4. Niestety to chyba w ogóle nie działa.
Tzn brak sygnału odjazdu dla P8 = (0, 1, 2). Domyślam się, że w scenerii jest nieprawidłowo przypisany semafor wyjazdowy z Chomikowa, dlatego jako pierwszy skanowany jest "psiary_zagroda_p_seminfo". Ale mniejsza o to, nie powinno mieć znaczenia dla P8 ustawionego na wartość parzystą, prawda? Powinienem dostać odjazd nawet jak mam S1 na wyjazdowym, prawda?

Na podglądzie wygląda to tak - stoję w Chomikowie przed planowym odjazdem - w tabeli skanowania mam "chomikowo#01_stopinfo". Mija godzina odjazdu - w tabeli skanowania widać kilka kolejnych torów, na końcu listy jest "psiary_zagroda_p_seminfo". I sygnału odjazdu brak. Pojawia się, jak wjazdowy w Psiarach poda S10.

Niestety wygląda na to, jakby przedostatni parametr dla w4n.inc był zupełnie ignorowany. Tak na marginesie, jeśli chodzi o parzystość, to w kodzie pewnie jest (p % 2), co dla 0 także zwraca 0, tak samo jak dla każdej innej parzystej, więc 0 powinno wg dokumentacji i na zdrowy chłopski rozum powodować, że sygnał odjazdu nie oczekuje na semafor w ogóle, ergo w kodzie symka jest błąd powodujący, że nie zachowuje się zgodnie z dokumentacją. Rozumiem, że trzeba prawidłowo przypisać wyjazdowy i problem zniknie, ale chyba opcja parzysta była pomyślana właśnie na takie okazje, gdzie mamy stare scenerie (tia, praktycznie wszystkie) i nowy rozkład może sobie śmigać prawidłowo, na nowych, zrobionych porządnie będzie tam wartość nieparzysta i kierpoć inteligentny, nie da odjazdu jak na wyjazdowym S1.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 03 Czerwca 2015, 09:16:13
Raczej było to pomyślane na przystanki osobowe bez semaforów przed grupą towarową, niż źle napisane scenerie. Ra takimi rzeczami raczej się nie przejmował. ;)
Tu się zaczyna obsługa rozkładu jazdy. Rozumiem co trzecią funkcję, więc lepiej sam to przeanalizuj. https://github.com/eu07/maszyna/blob/dp/Driver.cpp#L506
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 03 Czerwca 2015, 09:48:33
W masterze znajduje się od linijki 648 a ma lepsze formatowanie ;)
Jeszcze trzeba sprawdzić jak wygląda ładowanie samego eventu bo tu też może być problem.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 03 Czerwca 2015, 10:13:26
Ale 470 jest z DP, a może przy przepisywaniu ktoś coś niechcący poprawił. :D
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 03 Czerwca 2015, 10:17:58
470 jest z mastera. 471 też, gdyż to jest branch z mastera z nałożonymi ręcznie poprawkami wynikającymi z brancha robionego w 2013 r.

  Dodano: 03 Czerwca 2015, 16:05:39
Przyglądam się rozwiązaniu i do tej pory mnie zastanawia po co elementy związane z rozkładem jazdy są wrzucane do tabelki z ograniczeniami prędkości.
W ogóle wszystko trafia do tej tabelki. Nie dziwi mnie, że to czasami nie działa.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 03 Czerwca 2015, 16:25:36
W4 przed odhaczeniem działa jak semafor, więc jak bez trafiania do tabelki miałby działać?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 03 Czerwca 2015, 18:33:23
Powinny być trzy tabelki. Prędkości rozkładowe, ograniczenia związane ze znakami, ograniczenia związane z sygnałami. W tej chwili patrzymy tylko do przodu a każda następna zmiana nadpisuje tą poprzednią. Do tego mieszają się jak to z W4. Bardzo podoba mi się ten kawałek, szczególnie komentarze:
    else if (command == cm_PassengerStopPoint) // nie ma dostępu do rozkładu
    { // przystanek, najwyżej AI zignoruje przy analizie tabelki
        if ((iFlags & 0x400) == 0)
            fVelNext = 0.0; // TrainParams->IsStop()?0.0:-1.0; //na razie tak
        iFlags |= 0x400; // niestety nie da się w tym miejscu współpracować z rozkładem
to jest z Driver::TSpeedPos::CommandCheck

  Dodano: 03 Czerwca 2015, 23:14:25
Parametr p9 w ogóle nie jest zapisywany do eventu. Nie mam bladego pojęcia w jaki sposób mają otwierać się drzwi po odpowiedniej stronie.
Jednak jest. Źle policzyłem parametry. Szukam dalej.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Siecool w 04 Czerwca 2015, 13:23:25
TO zazwyczaj są nieprzypisane. Odległość skanowania przy postoju nie wiem ile wynosi, ale może to być i 1,5 km. Jeśli po zniknięciu "Chomikowo#01" skanuje "psiary_zagroda_p" to łapie i tyle. Może jest jakiś błąd w tym mechanizmie, może zero nie jest traktowane jako parzysta.
Odległość skanowania to 2,5 km - mam taki sam problem z semaforem oddalonym o ok. 2200 m od przystanku osobowego.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 08:58:08
Znalazłem bug-a. W tej chwili na każdym postoju z W4 będzie czekał na sygnał jeśli znajdzie semafor (oprócz miejsc gdzie ma się bawić w manewry). Zaraz będę robił poprawkę i wrzucę do testów.

  Dodano: 05 Czerwca 2015, 09:12:15
Bez obsługi pythona. Odpowiednią wersję zrobię po pomyślnych testach.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 10:16:42
Niestety - nie działa. Dla parzystych i nieparzystych wartości P8 dalej brak sygnału odjazdu.

Scenariusz testowy: http://eu07.pl/userfiles/23309/priv-zwierzyniec_htd_en57-2009_12.01.7z (http://eu07.pl/userfiles/23309/priv-zwierzyniec_htd_en57-2009_12.01.7z)

Pierwszy przystanek w Kociarach - odjazd poprawny. Drugi przystanek w Chomikowie - brak sygnału.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 14:35:55
Wszystko zaczyna się od tego, że masz nieprzypisane semafory do torów. Ten w kociarach (wjeżdżamy na bok z v=65, zwrotnica tez nie ma ograniczenia i nie wiem czemu). Potem wjazdowy na chomikowo (hamuje zaraz przed zwrotnicą) oraz na wyjeździe. Jak dałem opcję p8 = 1 to sobie stoję i czekam na semafor w psiarach zagroda. To jest w innym miejscu niż myślałem. Kwestia tego, że najbliższy semafor jest nieprzypisany powoduje, że widzi ten dalszy. Najlepsze jest, że jeśli ustawids opcję na 0 i nie podasz sygnału w chomikowie to też pojedzie :D
Muszę poszukać w procedurze odpowiedzialnej za wywołanie dźwięku kierpocia, żeby w wersjach z opcją parzystą dawał wyjazd zaraz po minięciu godziny.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 14:42:06
Na samym początku pisałem, że semafory pewnie są nieprzypisane. Nie dotykałem ich (są z oryginalnego scenariusza bez modyfikacji). OK, poprawię jak znajdę chwilę czasu.
BTW, zero jako P8 miało być takim rozwiązaniem przejściowym, żeby na szybko zrobić (dynamiczny) rozkład do starej scenerii bez całej masy czasochłonnych poprawek.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 15:06:00
No i tak działa. Tylko masz kierpocia w niewłaściwym miejscu. Jeszcze nie znalazłem, ale myślę, że to znajdę i poprawię do jutra. Dzięki za testowy plik, będzie łatwiej testować.

  Dodano: 05 Czerwca 2015, 18:46:09
Już raz zadziałał. Teraz sprawdzam jeszcze czy poprawiłem w dobrym miejscu, czy może także zepsułem sam sobie w innym. Jak będę wiedział to wystawię do testów.

  Dodano: 05 Czerwca 2015, 18:59:34
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 22:02:06
Kurczę, co robię nie tak?!
Chcę przypisać ten nieszczęsny semafor chomikowo_d do toru. Do którego toru i jak? Przyglądałem się, jak inne są przypisane, i domyśliłem się, że trzeba dla toru przy którym stoi semafor (albo pociąg przed semaforem) wysłać event _sem_info. Na wszelki wypadek wysłałem od razu do trzech:

node -1 0 t110 track normal 59.682056 1.435 0.25 25 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
926.82 0.2 -3927.28 0
-8.85986 0 -17.8083
6.78918 0 18.696
903.589 0.2 -3982.24 0
0
event2 chomikowo_d_sem_info
endtrack

node -1 0 dekoracja_27 track normal 99.995568 1.435 0.25 25 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
859.217 0.2 -4104.43 0
0 0 0
0 0 0
893.349 0.2 -4010.44 0
0
event2 chomikowo_d_sem_info
endtrack

include zwrp34r300.inc chomikowo_zwr04 962.858 0.0 -3833.68 199.958 zwrot34r300pods-oil1 end
node -1 0 dekoracja_27_398 track normal 30.001627 1.435 0.25 25 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
893.349 0.2 -4010.44 0
0 0 0
0 0 0
903.589 0.2 -3982.24 0
0
event2 chomikowo_d_sem_info
endtrack

I nic. Kompletna olewka. Na podglądzie 2xF2 nie dostaję nic. Ani nazw tych torów, ani nazwy eventu. Ani przy wjeżdżaniu na te tory, ani przy zatrzymaniu, ani po zapaleniu S10 na semaforze chomikowo_d, ani po upłynięciu godziny odjazdu. Kiedy mija godzina odjazdu dostaje za to psiary_zagroda_p_sem_info! Dlaczego tak się dzieje? Jak prawidłowo przypisać ten semafor?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 05 Czerwca 2015, 22:25:31
Do tego pierwszego toru, daj event1 zamiast event2, tak przynajmniej wynika z jakies starej mapy Zwierzynca, ktora posiadam.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 22:29:35
Czyli w kierunku przeciwnym do jazdy pociągu? Od semafora, a nie do semafora? Ok, już sprawdzam...
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 05 Czerwca 2015, 22:35:17
Nie w kierunku przeciwnym. Z mapy wynika, ze semafor jest obrocony w taka strone, ze, aby miec go zwroconego przodem, musisz wjechac na ten tor od punktu p2 toru w kierunku p1 toru.

  Dodano: 05 Czerwca 2015, 22:44:09
Obrazek: zolty palaczek semafor, zolty tor, ten o ktorym mowa
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 22:52:47
Czyli za pierwszym razem chyba było dobrze - jadę na północ (w górę mapy), semafor jest na północ od mojej pozycji. Tory do których przypisuję event są ustawione 1S->2N. Wszystkie. Czyli powinienem ustawić event2, bo jadę z punktu 1 do 2 i semafor mam przed sobą (od strony punktu 2).

Niestety - próbowałem ustawiać zarówno event2 jak i event1, łącznie pół godziny testów - efekt ten sam. Te eventy nie pokazują mi się w ogóle w tabeli skanowania. Symulator je ignoruje. Czy coś jeszcze musi być ustawione?

1 przejechałem trasę z ustawionymi event2. Nic. Drugi raz zamieniłem wszystkie trzy event2 na event1, dojechałem do Chomikowa i to samo.

Oto zdarzenia z pliku ctr:
event zschomwyj multiple 60 none chomikowo_d_s10 endevent // TU MI ZAPALA S10! Dlaczego nie mogę jechać?!
event psiarywjedz multiple 5 none p5_zamykaj psiary_zagroda_p_s13 anglik_test3450bc wjazd_podany1 endevent // Dlaczego ten event daje mi ODJAZD Z CHOMIKOWA?!
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 05 Czerwca 2015, 22:56:46
Ja Tobie pokazalem na mapie co mam. Wynika z tego obrazku, to co napisalem. Nigdy nie mialem problemow z sem-info.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 23:07:14
Podgląd w mapy w Rainsted pokazuje odwrotnie p1 i p2 na torach.
Jest jakiś problem z uwzględnianiem pierwszego semafora jeśli jest blisko przy peronie. To jest grubsza sprawa i trzeba będzie się przyjrzeć aktualizacji tabelki prędkości.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 23:08:28
A do którego dokładnie toru powinienem przypisać event sem_info: do tego przy którym stoję, do toru przed semaforem czy do toru za semaforem? Być może przypisanie zdarzenia do więcej niż jednego toru jest błędem, przez który mi to nie działa?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 05 Czerwca 2015, 23:13:28
Tak to u mnie wyglada w MaSzynie
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 23:21:16
Chyba zauważyłem mój błąd w odczycie mapy. W Rainsted mam tak: tor przed W4 (dekoracja_27_398) 1S2N, tor zaczynający się kawałeczek przed W4 i kończący za nim (t110) 1N2S (czyli jest odwrotnie niż poprzedni). Czyli dla tego pierwszego toru 1S2N powinienem przyjąć kierunek N (bo jadę na północ), czyli ustawić event2. Dla tego drugiego (t110) ustawić event1, bo końcówka p1 wskazuje północ, dobrze rozumiem, czy odwrotnie?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 23:24:29
Spróbowałem przypisać kociary_posterunek_e do toru i:
- event podczas jazdy pociągu został wywołany
- nie został dodany do tabelki
No to teraz już zostaje tylko grzebanie czemu tak się dzieje.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 05 Czerwca 2015, 23:29:17
HDT, moje wspolrzedne pierwszego toru podanego przez Ciebie, pokrywaja sie dokladnie z twoimi. Reszty torow nie analizowalem.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 05 Czerwca 2015, 23:37:02
Jednak przypisał się do tabelki. Miałem małą literówkę we wpisie. Pozostaje kwestia pierwszego semafora zaraz za przystankiem z W4.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 05 Czerwca 2015, 23:44:19
Hm, jest tak - po wgraniu poprawki w exe przystanki działają prawidłowo. Więc można powiedzieć, że exe jest przetestowany. Niestety z tym przypisywaniem semafora do toru będę musiał jeszcze powalczyć, bo coś robię z tym nie tak.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 06 Czerwca 2015, 00:20:57
Semafor należy przypisać tylko do jednego toru w obrębie scenerii i powinien być to odcinek koło semafora. Komórka jest rzutowana na trajektorię, więc dokładne punkty końców nie mają znaczenia. Grzesiu, jak tam dłubiesz, to pomyśl jeszcze dlaczego często kierpoć nie gwizda na stacji początkowej.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 06 Czerwca 2015, 00:29:29
OK, więc widzę już tylko jedno prawidłowe przypisanie:
Semafor znajduje się przy torze "t110". Skład najpierw minie punkt 2 tego toru, potem punkt 1. Semafor skierowany jest oczywiście w stronę punktu 2.
Więc: znajduję tor "t110" (przy którym stoi semafor), ustawiam mu "event1 chomikowo_d_sem_info" (bo w kierunku punktu 1 jadę). Zgadza się?
Jeśli to nie zadziała, to w czym jeszcze może leżeć problem? Semafor "psiary_zagroda_p" działa prawidłowo. Ale sygnał na nim pojawia się, kiedy jadę. Kiedy dostaję S10 na "chomikowo_d" - stoję przed W4. W tabeli skanowania mam tylko "Chomikowo#01_stopinfo". Może to jakoś blokuje odebranie sygnału semafora?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 06 Czerwca 2015, 00:35:50
Problem dojsc do tego metoda eliminacji?
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 06 Czerwca 2015, 00:56:14
Tabelka blokuje się na pierwszym ograniczeniu. Po odhaczeniu Chomikowo#01_stopinfo powinien wskoczyć chomikowo_d ze swoim sygnałem (o ile jest różny od vel=-1).
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: firleju w 06 Czerwca 2015, 10:44:25
Komórka jest rzutowana na trajektorię[...]
Nie jest to prawdą do końca. Dzisiaj rano zrobiłem mały eksperyment i przypisałem najpierw semafor a na następnym torze w4, które stoi przed nim i wg tabelki semafor stał przed w4.
Nie wiem czemu on nieprawidłowo zczytuje tory po stanięciu. Jak usunąłem blokadę czytania następnych torów po vel=0 to ładnie semafor odczytuje. Więc ten problem jest już rozwiązany.
Teraz muszę jeszcze dojść do tego jak zrobić, aby jeśli widzi dwa semafory to uwzględniał ten bardziej znaczący.

  Dodano: 06 Czerwca 2015, 10:48:46
Tabelka blokuje się na pierwszym ograniczeniu. Po odhaczeniu Chomikowo#01_stopinfo powinien wskoczyć chomikowo_d ze swoim sygnałem (o ile jest różny od vel=-1).
Do tabelki wrzuca także semafory z v=-1.

  Dodano: 06 Czerwca 2015, 10:53:10
Semafor należy przypisać tylko do jednego toru w obrębie scenerii i powinien być to odcinek koło semafora.
Nie ma znaczenia do ilu torów jest przypisany dany semafor. Może byc nawet przypisany do iluś tam. Liczy się pierwsze zczytanie. Potem jest sprawdzane czy event jest już w tabelce i jeśli jest to odczyt jest ignorowany.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 06 Czerwca 2015, 13:10:51
Zebrałem wystarczające dane, żeby zrobić automatyczne przypisywanie semaforów.

Algorytm jest prosty: weź listę semaforów, dla każdego semafora sprawdzaj czy w odległości x metrów po lewej stronie semafora znajduje się tor. Jeśli tak, przypisz "nazwa_semafora" + "_sem_info" jako event1 lub event2 w zależności od zwrotu toru względem zwrotu semafora.
Te właściwości są statyczne, niezależne od stanu symulacji i innych elementów. Wszystkie semafory da się tak przypisać. Sama operacja jest trywialna obliczeniowo. Założę się, że to już nawet jest zrobione w testowym Rainsted, ja teraz będę to dokładał do swojego edytora. Wcześniej muszę tylko rozwiązać problem konwersji zmian mapy w pamięci do mapy w plikach.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 06 Czerwca 2015, 13:33:39
Tylko uwazaj, aby nie przypisywac, gdy semafor jest tylem do kieruku jazdy. BTW, takie przypisywanie juz dawno zrobilem w swoim edytorze. Troche inaczej dziala, niz twoja propozycja. Dodalem, takze S1 (wygaszanie), SHp i inne takie tam. Dla wygaszania, nalezy znalezc tor za semaforem uwzgledniajac kierunek jazdy (za torem, do ktorego przypisany zostal sem-info). Sprawa sie komplikuje, jesli dany event jest juz w torze zajety. Ja zrobilem automatyczne dodawanie multiple, ale to jest passe. W takich przypadkach nalezy dzielic tor na dwa wg obecnych wytycznych.

  Dodano: 06 Czerwca 2015, 14:01:25
No i jeszcze, jesli twoje x bedzie odpowiednio duze, to moze pojawic sie wiecej niz jeden tor.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 06 Czerwca 2015, 15:09:23
Jeśli złapię więcej niż 1 tor, mogę wybrać tor, który jest bliżej lewej strony semafora. 2 tory nie mogą znajdować się w równej odległości od lewej strony semafora, bo musiały się przecinać dokładnie w miejscu ustawienia semafora, a takich semaforów nie stosuje się na kolei.

Co do kierunku jazdy - sprawę załatwia LEWA strona semafora (patrząc na jego przód). To określa jednoznacznie kwestię kierunku jazdy, gdyż tylko jeden tor będzie pasował do 1 semafora (jeśli ze względu na zakres odległości wpadną 2, zostanie wybrany bliższy).

Co do odległości - tu są 2 sposoby - interpolacja odległości od łuku (wolne) lub obliczenie odległości punktu od odcinka (interpolacja 1 odcinkiem - szybkie). Biorąc pod uwagę dość spore promienie łuków i długość odcinków na łukach - sposób szybszy będzie zapewne zupełnie wystarczający.

Aha, tak przy okazji: czy można ufać wartościom promienia w definicjach torów? Bo jeśli można, to liczenie odległości od łuku może być prawie równie szybkie jak liczenie odległości od odcinka. Jeśli nie, to trzeba by najpierw te promienie przeliczyć z Bezierów, pytanie czy jest sens się w takie cuda bawić.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Stele w 06 Czerwca 2015, 15:13:03
Pamiętaj, że niekiedy semafor stoi po lewej, a sblka zawsze, więc nie może to być pełen automat.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 06 Czerwca 2015, 15:16:28
Czy każdy semafor może stać po lewej? Bo SBL-ki da się odróżnić od reszty. OK, w takim razie najlepiej zrobić listę propozycji i ręczne zatwierdzanie każdego przypisania z wskazaniem na mapie.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: Mariusz1970 w 06 Czerwca 2015, 15:20:26
Jesli patrzy sie na przod semafora, to ok, ale o tym chyba nie wspomniales. Co do wiecej niz jednego toru, sytuacja gdy semafor lezy na grancy pomiedzy koncem jednego toru a koncem drugiego toru. Obydwa tory beda mialy semafor po prawej stronie i odleglosci do semafora jednakowe.
Tytuł: Odp: Sygnał odjazdu błędnie wyzwalany semaforem wjazdowym
Wiadomość wysłana przez: HTD w 06 Czerwca 2015, 15:55:22
Racja. Zdecydowanie - pół automat. Ale zawsze lepszy półautomat niż ręczne przypisywanie.