Autor Wątek:  Pomoc z Ekranem zewnętrznym EN57AL  (Przeczytany 767 razy)

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

Offline Dew105

  • Wiadomości: 14
  • Członek KNITP. Politechniki Poznańskiej
    • Zobacz profil
  • Otrzymane polubienia: 8
Pomoc z Ekranem zewnętrznym EN57AL
« dnia: 03 Listopada 2022, 16:21:25 »
Witam

Wraz z klubem naukowym PUTcab Politechniki Poznańskiej Potrzebujemy pomocy

Otóż w tym roku zaczynamy pierwsze kroki i budowanie realnej kabiny EN57AL do symulatora szkoleniowego
I tu napotykamy pierwsze problemy.

Mamy problem właściwie zapytanie w jaki sposób Maszyna komunikuje się z skryptem "screen_en57al.py"  Oraz czy dało by sie w tą komunikacją wpiąć tak aby drugi komputer np Raspberry pi z tym oto skryptem pokazywał na osobnym monitorze Ekran EN57AL z nie większym niż 10ms opóźnieniem?

Z góry dziękuję za pomoc

Dew105 Członek PUTcab

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10132
    • Zobacz profil
  • Otrzymane polubienia: 2601
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #1 dnia: 03 Listopada 2022, 16:43:55 »
Jak wątki są synchronizowane to nie powiem. Pierwsze słyszę by ktoś próbował wyciągać ekrany do osobnego komputera. Wszystkie pulpity o jakich mi wiadomo, miały wpięte kilka monitorów do komputera głównego albo komputerki pokładowe na osobnym sofcie, ściągające outputy z maszyny po uart. Wyjście ze skryptu pythona można skopiować do osobnego okna w zadanej rozdzielczości i pozycji na n-ty monitor. Jak chcecie użyć gotowego skryptu, bez rozszerzania funkcjonalności i nie macie czterech monitorów na okna, to bym poszedł tą drogą.
Mój kanał youtube

Offline Hirek

  • Wiadomości: 265
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 171
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #2 dnia: 03 Listopada 2022, 17:28:17 »
Ewentualnie można też pójść drogą naokoło i użyć do dodatkowych monitorów takiego oprogramowania jak na przykład spacedesk :)
Z maszyną od PC 08.13
Tak, to ten furas co wydał MaSzynę xD

Offline Czarodziej

  • Wiadomości: 330
    • Zobacz profil
  • Otrzymane polubienia: 75
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #3 dnia: 03 Listopada 2022, 18:10:52 »
Na początek ostrzegam, nie znam się na kodzie maszyny. Ale się wypowiem.
Z grubsza działa to tak, że programik w pythonie generuje obrazek, który potem jest renderowany jako tekstura (chyba).
Kod uruchamiający skrypt jest w PyInt.cpp, cześć od renderowania w pythonscreenviewer.cpp.

Offline Dew105

  • Wiadomości: 14
  • Członek KNITP. Politechniki Poznańskiej
    • Zobacz profil
  • Otrzymane polubienia: 8
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #4 dnia: 04 Listopada 2022, 21:09:39 »
Ewentualnie można też pójść drogą naokoło i użyć do dodatkowych monitorów takiego oprogramowania jak na przykład spacedesk :)


Jak wiem space desk po prostu tworzy kolejny monitor, więc jak mamy dać ekran kibla za pomocą tego jak na jednym monitorze udającym widok maszynisty a na drugim ekran kontroli kibla?

Offline Dew105

  • Wiadomości: 14
  • Członek KNITP. Politechniki Poznańskiej
    • Zobacz profil
  • Otrzymane polubienia: 8
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #5 dnia: 04 Listopada 2022, 21:12:06 »
bo aby sprecyzować swoje pytanie, chodzi mi o wyciągniecie tego ekranu (Patrz SS) na inny monitor

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10132
    • Zobacz profil
  • Otrzymane polubienia: 2601
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #6 dnia: 04 Listopada 2022, 21:52:20 »
Nie mogę znaleźć dokumentacji do tego. :/
else if (token == "python.viewport")
{
Parser.getTokens(8, false);

pythonviewport_config conf;
Parser >> conf.surface >> conf.monitor;
Parser >> conf.size.x >> conf.size.y;
Parser >> conf.offset.x >> conf.offset.y;
Parser >> conf.scale.x >> conf.scale.y;

python_viewports.push_back(conf);
}
Surface to skrypt/model na który on trafia, monitor to id ekranu w systemie. Reszta oczywista. Wszystko w jednym wersie jako parametry python.viewport. Jakbyś chciał więcej ekraników, to powielasz wpis.
 Youby chyba tego używa w domu, to pewnie ma konfig, tylko musi do tego domu dotrzeć.
« Ostatnia zmiana: 04 Listopada 2022, 21:54:08 wysłana przez Stele »
Mój kanał youtube

Offline youBy

  • Deweloper
  • Wiadomości: 6144
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 838
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #7 dnia: 04 Listopada 2022, 22:52:26 »
Tutaj trzeba doprecyzować parę rzeczy - co dokładnie ma być osiągnięte i jakim nakładem sił/środków.
Na przykład opóźnienia 10 ms nikt nie zagwarantuje, bo przy 60 FPS klatka renderuje się 17 ms, więc potrzebne są monitory oferujące min. 100 Hz. Inna rzecz, że ekrany diagnostyczne odświeżają się z częstotliwością 2 Hz (czyli 500 ms). Wątpliwości są jeszcze w zakresie interakcji - najpierw wspominałeś o komputerze, co sugeruje jeszcze przesyłanie czegoś do symulatora. Wszystkie "moje" ALki mają ekrany niemacane, z przyciskami, więc to by było o tyle łatwiej.

Ja osobiście używam rozwiązania z zapisem wygenerowanego przez python obrazka do pliku na ramdisk i asynchronicznym odczytem tego przez autorski program, który wczytuje to bez ramek i wyświetla. Plusem tego rozwiązania jest możliwość wygaszania ekranów bądź wczytywania innego obrazka na czas ładowania.

Przy okazji - byłem w niedzielę na targach u Was, to była dobra okazja żeby ten temat przegadać.
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 Milek7

  • Administrator ds. Technicznych
  • Wiadomości: 1003
    • Zobacz profil
  • Otrzymane polubienia: 746
Odp: Pomoc z Ekranem zewnętrznym EN57AL
« Odpowiedź #8 dnia: 05 Listopada 2022, 19:40:39 »
python.displaywindows yes // włącznik funkcji
python.viewport dynamic/pkp/e186_v2/traxx_renderer Generic_PnP_Monitor:1024,1080 1024 600 0.12 0.18 1.81 2.4 // konfiguracja ekranu, dostępne nazwy monitora są w logu przy uruchamianiu, dalej wielkość okna, offset, skala tekstury

// optymalne ustawienia zależą od sterownika opengl i fazy księżyca
//python.sharectx no // wyłączenie współdzielenia kontekstu gl z głównym oknem
//python.vsync no // wyłączenie vsync w oknach dodatkowych
//python.fpslimit 5 // jeżeli vsync=no to ustawić limit tutaj
//python.threadedupload no // wyłączenie wysyłania tekstury na główny kontekst na dodatkowym wątku
//python.uploadmain no // wyłączenie wysyłania tekstury na główny kontekst jeżeli nie potrzeba mieć ekranu w oknie symulacji, można zastosować jeżeli sharectx=no