Symulator EU07 (i nie tylko) > Na warsztacie
Sterowanie ruchem przez zewnętrzną aplikację
Milek7:
--- Cytat: Paul w 03 Marca 2017, 17:36:55 ---Może lepiej serwer w EU07, a SCS jako klient - żeby można było połączyć więcej niż jedną aplikację z EU07, np. dwa stanowiska SCS, różne systemy sterowania dla różnych stacji itp. Ogólnie dobrze byłoby wpasować to do jakiejś przyszłościowej koncepcji symulacji sieciowej z wieloma maszynistami.
--- Koniec cytatu ---
Właśnie ja myślałem że scs powinien być serwerem żeby można było w przyszłości podłączyć więcej symulatorów do jednej nastawni.
Ale jeżeli wchodzimy w takie połączenia multi-symulator - multi-nastawnia, to może faktycznie warto wykorzystać ZeroMQ, tak jak firleju proponował.
Jak już zmieniamy na coś porządniejszego to trzeba się też zastanowić czy dalej zostajemy na takiej serializacji adhoc w kodzie, czy może np. użyć protobuf3.
Ze źródłami mi chodzi o to, że jeżeli scs miałby być kiedyś wykorzystany jako zamiennik eventów przy tworzeniu scenerii, to imo raczej wymogiem jest żeby wszystkie komponenty dostarczane z maszyną były otwartoźródłowe. Dopiero co otworzone zostały źródła eu07 i są prace nad wieloplatformatyzacją kodu, więc wracanie do zamkniętych blobów to moim zdaniem krok wstecz.
Paul:
--- Cytat: tmj w 03 Marca 2017, 18:46:32 ---Jesli to nie problem, czy mozesz dolaczyc tutaj wersje SCS, ktora komunikuje sie z klasa GLFW30? Moge wtedy sprawdzic czy jakiekolwiek komunikaty przychodza z SCS.
--- Koniec cytatu ---
W załączniku. Teraz wysyła do GLFW30, ale nie wygląda na to żeby EU07 na to reagował. Przy czym SCS czeka na komunikat gotowości od EU07, i dopiero potem sam zaczyna wysyłać komunikaty, w pierwszej kolejności żądanie stanu odcinków. Dorobiony został przycisk ODBL udający zgłoszenie gotowości, po jego kliknięciu można przez kilkanaście sekund próbować coś wysyłać (aż SCS nie wykryje oszustwa i ponownie się nie zablokuje). Jak jest potrzeba, to przygotuję prosty program do testowania wysyłania komunikatów WM_COPYDATA bez takich kombinacji.
--- Cytat: Milek7 w 03 Marca 2017, 18:54:34 ---Właśnie ja myślałem że scs powinien być serwerem żeby można było w przyszłości podłączyć więcej symulatorów do jednej nastawni.
--- Koniec cytatu ---
W takim razie w miejsce SCS w tej koncepcji potrzebny jest serwer, do którego podłączać będą się klienci: EU07, właściwy SCS i opcjonalnie inne programy. W takim układzie EU07 może być klientem TCP/IP. Nie wiem jak tu w przyszłości wcisnąć innych klientów EU07 dla multiplayera - całość wymaga dokładniejszego przemyślenia, chyba że traktujemy to rozwiązanie jako "tymczasowe".
--- Cytat: Milek7 w 03 Marca 2017, 18:54:34 ---Ze źródłami mi chodzi o to, że jeżeli scs miałby być kiedyś wykorzystany jako zamiennik eventów przy tworzeniu scenerii, to imo raczej wymogiem jest żeby wszystkie komponenty dostarczane z maszyną były otwartoźródłowe. Dopiero co otworzone zostały źródła eu07 i są prace nad wieloplatformatyzacją kodu, więc wracanie do zamkniętych blobów to moim zdaniem krok wstecz.
--- Koniec cytatu ---
SCS nie jest elementem Maszyny, tylko oddzielnym projektem, łączy się z Maszyną dynamicznie. Niezależnie używany jest w TD2 oraz jednym komercyjnym projekcie. Nie wydaje mi się, żeby przez dostosowanie do Maszyny przechodziła na niego licencja kodu Maszyny. Chyba że to wymóg dla wszystkiego co włączane ma być do paczki z Maszyną - w takim razie SCS będzie musiał być udostępniony oddzielnie.
tmj:
OK, chyba udalo mi sie przywrocic komunikacje, ale nie wiem czy na 100% -- programy lacza sie, stan zajetosci torow jest uaktualniany, i rozkazy takie jak ustawianie zwrotnic czy kontrola przejazdow dzialaja, ale kazda proba ustawienia przebiegu konczy sie komunikatem "Nie mozna ustawic przebiegu" bez proby wyslania komunikatu przez SCS. Byc moze robie tutaj cos zle.
Dolaczone uaktualnione exe, jesli mozesz, sprawdz czy bedziesz mial wiecej szczescia.
Paul:
Odczytywanie zajętości i sterowanie poszczególnymi obiektami wskazuje że sama komunikacja jest ok. "Nie można ustawić przebiegu" oznacza raczej jakiś problem po stronie SCS, a nie w komunikacji, chyba że np. któreś odcinki błędnie wykazują zajętość.
Ale na razie chyba nie sprawdzę, załączone exe eu07++170304 wysypuje się po zakończeniu ładowania scenerii - "Nazwa modułu z błędem: ig4icd32.dll". Przesłać .dmp w wątku exe, czy to jakiś znany problem i coś pominąłem? Wersja eu07++170301.exe mi się uruchamiała.
tmj:
Podeslij jesli mozesz, to sie raczej nie powinno zdarzyc, nie zmienialem w kodzie nic szczegolnego.
jesli google nie klamie, to ten .dll to sterownik graficzny dla kart intela :< jesli poprzednio uzywales 170301, to podejrzewam ze posypal sie na zmianie nieba na VBO ktore nastapilo w 170302, byc moze za stary na to jest.
Nawigacja
[#] Następna strona
Idź do wersji pełnej