Symulator EU07 (i nie tylko) > Na warsztacie

 Sterowanie ruchem przez zewnętrzną aplikację

<< < (3/14) > >>

El Mecánico:
A czy możliwe było by przypinanie do poszczególnych stacji/podg (a nawet okręgów) osobnych .anp? Bo z tego co mi z tego topic'u wychodzi, to pojawia się możliwość włączenia do symulacji jednocześnie kilku "graczy" na stanowiska dyżurnych ruchu, więc dobrze by było, żeby sobie w paradę nie włazili :D

Paul:
W obecnym rozwiązaniu SCS obsługuje jedno stanowisko operatorskie, więc włączenie kilku dyżurnych ruchu będzie polegać na uruchomieniu kilku niezależnych instancji SCS. Każda oczywiście może mieć własny plik .anp.

Z tym, że Maszyna wymienia komunikaty z jednym zewnętrznym programem. Dla uruchomienia kilku SCS trzeba by dodać do tego prosty serwer uruchamiany wraz z Maszyną, który będzie wymieniał z nią komunikaty WM_COPYDATA i przekazywał je do poszczególnych klientów dyżurnych ruchu np. przez TCP/IP. Rozwiązanie obecnie możliwe i proste do zrobienia, ale będzie miało charakter prowizoryczny - zakłada tylko jedną maszynę z Maszyną, docelowo trzeba by pomyśleć jak w to włączyć innych maszynistów. Ale to już po stronie exe Maszyny.

firleju:
Właśnie dlatego chciałem użyć ZMQ, gdyż można zrobić wtedy prostego hub-a rozsyłającego komunikaty po całej sieci podłączonych klientów i serwerów. Można też użyć jednej z instancji jako exe jako taki hub. W każdym bądź razie w takim układzie i tak koniec końców przy multiplayerze kończymy z TCP, a lokalnie można uruchamiać 3 exeki lub za pomocą zmiennej ustawiać w jakiej konfiguracji uruchamiamy daną sesję.
Jeszcze jest inna kwestia, że taki hub może nam służyć też jako miejsce rozsyłania samego pliku scenerii i scenariusza tak aby wszyscy na pewno mieli tą samą wersję. Mam na myśli same pliki tekstowe.
Myślałeś o tym, żeby rozbić to na wątki na takiej zasadzie, że każda stacja ma własny plik anp na własnym wątku? To ułatwia ewentualne włączenie się do sesji w trakcie jej trwania.

Paul:
Przy założeniu, że dyżurny może włączyć/wyłączyć się z sesji sprawa się trochę komplikuje, wielowątkowość ANP to przy tym mniejszy problem. SCS po uruchomieniu zakłada, że wszystkie urządzenia srk (oprócz odcinków, których status jest przysyłany po starcie) znajdują się w stanie zasadniczym, głównie dotyczy to stanów związanych z realizacją przebiegów (utwierdzone odcinki, zamknięte zwrotnice, podane sygnały).

Możliwość włączania/wyłączania się z trwającej sesji wymagać będzie przechowywania tych stanów na serwerze (w zasadzie na żywo, żeby przypadkowe rozłączenie nie spowodowało ich utraty), realizacji zależności i sterowania przez serwer w czasie, gdy stacja jest bez obsady oraz pobrania stanów przy objęciu sterowania.

W zasadzie w tym przypadku aplikacja sterująca ruchem powinna działać na serwerze, najlepiej pod nadzorem jednego z użytkowników - "dyspozytora sesji", z możliwością objęcia sterowania przez klienta dyżurnego ruchu. Powinna być przy tym możliwość przekazywania uprawnień do sterowania poszczególnymi stacjami, tak aby jeden dyżurny mógł objąć jednocześnie dwie lub więcej stacji na jednym kliencie. Na razie nie przymierzałem się do takiego rozwiązania, zależnie od ilości rzeczy które chcemy osiągnąć będzie to dostosowanie SCS-1 lub stworzenie czegoś od nowa. Dobrze byłoby też przewidzieć możliwość użycia w sesji symulacji innych typów urządzeń, np. przekaźnikowych.

Dla porównania w TD2 zastosowane zostało inne podejście, w którym stacja nie może działać bez zalogowanego dyżurnego ruchu, przy włączeniu do sesji startuje pusta i w stanie zasadniczym, a przy rozłączeniu znika z sesji (razem z maszynistami) - tu SCS może pracować lokalnie, bez zapisywania stanów. Nie polecam jednak tego rozwiązania do Maszyny.

firleju:
Przy założeniu, że mamy hub pośredniczący to jest to dobre miejsce do przechowywania stanów sesji. To można używać niezależnie czy jest to uruchomione tylko lokalnie czy także globalnie (przez sieć). Masz pewność, że dopóki hub się nie wywróci będziesz miał stan w miarę na żywo. Jeśli SCS miałby pracować jako część wykonawcza scenariusza to i tak musisz mieć automatyczne prowadzenie ruchu, czy to w SCS czy w warstwie wyższej. O tym właśnie piszę wcześniej. Może troszkę nie zrozumieliśmy się odnośnie tej kwestii.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod