Autor Wątek:  Sterowanie ruchem z Rainsted  (Przeczytany 7007 razy)

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

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Sterowanie ruchem z Rainsted
« dnia: 10 Marca 2015, 07:58:26 »
Po wstępnym dostosowaniu Linii 61 zabrałem się za naprawianie sterowania ruchem z Rainsted. Było to zaczęte w 2010 roku i poprawiane w 2011, ale potem leżało odłogiem.

Co jest potrzebne

1. Dwa komputery w sieci TCP/IP, w tym jeden ze stałym IP (może być lokalne), najlepiej z Windows. Można też testować na jednym komputerze, ale jest to uciążliwe. Podejrzewam, że obecnie to już chyba każdy ma jakiś drugi komputer, używany kilka lat wcześniej. Ten gorszy można użyć jako serwer ruchu (ze stałym IP), bo ma mniejsze wymagania sprzętowe.

2. Paczka MaSzyna 15.02 z wgraną ostatnią łatką, dostępną pod adresem eu07.pl/daily. Na komputerze z serwerem ruchu dobrze by przynajmniej było mieć zaktualizowany katalog scenery z paczki.

3. Zaktualizowany Rainsted, najlepiej w trybie dla trasopisarzy (od razu wczytuje wszystkie include bez parametrów i łączy tory przy wejściu na Podgląd terenu).

4. Plik scenerii bez zbędnych rzeczy, z którego będzie można utworzyć RSF dla serwera ruchu. Przykładowy plik dla Linii 61:
Kod: ("linia61.scn") [Zaznacz]
include linia61/l61_tory.scm end
include linia61/l61_sygnalizacja.scm end
include linia61/l61_drogi.scm end
include linia61/l61_hekto.scm end
Po wybraniu takiego pliku w Rainsted trzeba albo wczytać wszystkie include bez parametrów, połączyć tory i dowiązać semafory, albo włączyć tryb dla trasopisarzy i otworzyć Podgląd terenu, która to operacja wykona automatycznie wcześniej wypisane. Następnie należy wyeksportować scenerię do RSF. Dla poprawy prędkości wczytywania RSF dobrze by było jeszcze otworzyć edytor, wybrać utworzony plik RSF i zapisać go. Dzięki temu zostanie uaktualniony do najnowszej wersji struktury i nie będzie ta operacja powtarzana przy każdym uruchomieniu serwera (eksport zapisuje nieco starszą wersję niż edytor). Plik ten trzeba przekopiować albo utworzyć na komputerze z serwerem ruchu. Ja aktualnie testuję Linię 61, inne scenerie mogą wymagać pewnych drobnych zmian (np. nazwania wszystkich torów, przypisania semaforów, itp.). Nie zamieszczę gotowego pliku RSF, ponieważ na dniach mam zamiar wymienić nazwy rozjazdów i semaforów na zgodne ze schematami i po tej operacji trzeba będzie zrobić nowy RSF. Więc najlepiej zrobić sobie samodzielnie z ostatnio pobranej nakładki na paczkę i w razie pobrania nowszej nakładki powtórzyć tworzenie RSF.

Procedura uruchomienia

5. Na komputerze przeznaczonym na serwer ruchu uruchamiamy najnowszy Rainsted i z zakładki Ustawienia uruchamiamy serwer ruchu guzikiem po prawej. W otwartym oknie możemy wybrać zrobiony wcześniej plik RSF dla scenerii oraz zmienić port z domyślnego 42400 na inny. Następnie użyć przycisku Uruchom serwer. Serwer ma dwa tryby pracy, o czym poniżej — można wybrać tylko jeden.

6. Na komputerze z symulacją wybieramy scenerię — jeśli RSF będzie utworzony z Linii 61 w sposób opisany powyżej, to można wybrać dowolny z 8 scenariuszy. Co do innych scenerii, to nie mogę zagwarantować, że będą współpracować. Scenerię uruchamiamy bez wyłączania Rainsted. Po wczytaniu scenerii używamy przycisku Multiplayer na dole okna Rainsted i wpisujemy IP serwera oraz numer portu. Wpisane dane powinno dać się zapisać i wtedy nie będzie potrzeby ich ponownego wpisywania przy kolejnym uruchomieniu. Login i hasło są obecnie bez znaczenia. Istotny jest ptaszek przy Ponawiaj, ponieważ w razie błędu połączenia bądź rozłączenia z poziomu serwera wykona ponowne zalogowanie. W momencie logowania zapamiętywany jest numer okna symulatora — gdyby tam nadal było 0, to oznacza jakiś problem z oknami.

Dwa tryby pracy

Wspomniałem wcześniej o dwóch trybach pracy. Różnią się one sposobem współpracy z symulacją, a główną cechą jest liczba jednocześnie podłączonych użytkowników.

Pierwszy nazwałem Instruktor i jest tryb, w którym można uruchamiać normalne scenariusze. Na podglądzie serwera ruchu powinny być widoczne zajętości odcinków (tory rysowane kolorem czerwonym) oraz stany semaforów. Osoba obsługująca serwer ruchu może ingerować w działanie scenariusza — gasić semafory, zmieniać drogę przebiegu, podawać inne sygnały. Należy jednak znać działanie scenariusza i dokonywać zmian dopiero po tym, gdy uruchomią się mechanizmy scenariusza (inaczej to scenariusz poustawia rozjazdy i semafory). Ten tryb pozwala obsłużyć tylko jednego podłączonego użytkownika, ponieważ niemożliwy byłby jednoczesny podgląd stanu scenerii u wielu użytkowników na raz. Oprócz zabawy w dwie osoby tryb ten może być przydatny do eksperymentowania z modyfikowaniem scenariuszy, a także testowania scenariuszy w trakcie ich tworzenia.

Drugi tryb nazwałem Dyżurny i jest on przeznaczony do synchronizacji stanu urządzeń u wielu użytkowników. Używane scenerie powinny być raczej pozbawione scenariuszy, ponieważ mogą one wprowadzać chaos. W tym przypadku to osoba obsługująca serwer ruchu decyduje i ustawia rozjazdy oraz semafory. Zmieniony stan jest rozsyłany do wszystkich użytkowników i do czasu potwierdzenia urządzenie migocze kolorem białym ("brak kontroli", czyli u każdego użytkownika może być inny stan). Nowy użytkownik dostaje po zalogowaniu eventy przestawiające urządzenia, które są w stanie innym niż podstawowy (zakłada się, że po wczytaniu scenerii zwrotnice są na wprost, a semafory i tarcze zabraniają jazdy — z wyjątkiem SBL). Serwer ruchu pozwala synchronizować scenerie w zakresie urządzeń, czyli dany użytkownik jeździ jednym pociągiem, a pozostałe są prowadzone przez AI. Nie ma synchronizacji pozycji pojazdów, więc nie są możliwe interakcje pomiędzy użytkownikami (np. popych).

Z czasem pewnie będzie to ewoluować, być może nawet oba tryby da się połączyć w jeden (tzn. będzie podgląd stanu scenerii wybranego użytkownika). Być może z czasem dojdzie synchronizacja położenia pojazdów czy sterowania. Ale póki co do rozwiązania jest wiele innych problemów.

Offline Niebugoclaw

  • Wiadomości: 1215
    • Zobacz profil
  • Otrzymane polubienia: 4
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #1 dnia: 10 Marca 2015, 16:22:29 »
@Ra myślałeś o nawiązaniu współpracy z @Paulem? On obecnie prowafzi działania mające na celu połączenie Isdra i Maszyny.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #2 dnia: 10 Marca 2015, 21:13:05 »
Zapomniałem o ważnej rzeczy. W pliku eu07.ini trzeba ręcznie zmienić parametr multiplayer na 1 albo 2. Dla wartości 1 blokowana jest pauza, ponieważ w trybie jazdy wieloosobowej nie ma to sensu, żeby któryś z uczestników sobie zatrzymał symulację. W przyszłych wersjach EU07.EXE będzie to zamienione.

Nie kontaktowałem się z Paulem w tej sprawie, ale z założenia sterowanie z Rainsted ma być prostsze niż symulowanie nastawni.

Offline galaga_14

  • Wiadomości: 35
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #3 dnia: 10 Marca 2015, 22:21:07 »
A z wifi może być jako ten drugi ?

Offline Paczkuś

  • Wiadomości: 433
  • Mój nick się odmienia przez przypadki.
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #4 dnia: 11 Marca 2015, 13:01:13 »
Naturalnie.
Solo oración!

Offline maciekos1000

  • Wiadomości: 1
    • Zobacz profil
  • Otrzymane polubienia: 0
Sterowanie ruchem z Rainsted
« Odpowiedź #5 dnia: 21 Lipca 2015, 15:44:48 »
Witam, otóż mam problem przy próbie logowania na serwer ruchu wyskakuje error  "Socket Error #1061 connection refused". Co zrobić aby poprawnie zalogować się na serwer ruchu><?

Reg. zakazy 10.
Pisz poprawnie.
Benek
« Ostatnia zmiana: 21 Lipca 2015, 18:04:51 wysłana przez Benek »

Online Pitek

  • Wiadomości: 122
    • Zobacz profil
    • pitek.rp1.pl
  • Otrzymane polubienia: 14
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #6 dnia: 31 Lipca 2015, 23:47:42 »
Komuś udało się uruchomić i wszystko działało? Stawiając wszystko na jednym kompie, jedyne co mogę zrobić z poziomu serwera, to obserwować zajętość toru. Gdy próbuję zmieniać rozjazdy i stawiać sygnały na semaforach, nie ma żadnego efektu w symulacji. Tak jak były rozjazdy i sygnały, tak są ułożone, ani drgną. Kiedy klikam, aby pobrał listę pojazdów, również nie ma żadnego efektu. Testowałem na linii 61 oraz na odcinku testowym.
« Ostatnia zmiana: 31 Lipca 2015, 23:49:44 wysłana przez Pitek »

Offline Jubelox

  • Wiadomości: 1
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Sterowanie ruchem z Rainsted
« Odpowiedź #7 dnia: 06 Listopada 2015, 16:58:19 »
Czy da się usunąć scenariusz z danej scenerii. Mam na myśli skopiowanie pliku ze scenerią i usunięcie scenariuszy aby można było swobodnie jeździć zgodnie z semaforami ustawionymi przez serwer.
Cytuj
Witam, otóż mam problem przy próbie logowania na serwer ruchu wyskakuje error  "Socket Error #1061 connection refused". Co zrobić aby poprawnie zalogować się na serwer ruchu><?
Mam również to samo. Czy można zmienić IP serwera ruchu? Bo gdy próbuję zmienić to w ogóle nic nie mogę zrobić.
@edit
Właśnie rozwiązałem problem. A raczej kombinowałem :3 Aby grać normalnie wpisujemy IP komputera z serwerem.
« Ostatnia zmiana: 11 Listopada 2015, 16:27:25 wysłana przez Jubelox »

 

Maszyna - Symulator PojazdĂłw Szynowych