BMS Cockpit Extractor / Yet Another YAME

  • Nach ziemlich genau zwei Jahren stop and go bei der Entwicklung, hab ich meine Vorstellung eines MFD-Extractors endlich zu einer gewissen Produktreife gebracht. Da er nicht nur MFDs extrahiert, habe ich ihn sinnvollerweise "BMS Cockpit Extractor" genannt.


    Die ursprüngliche Idee war, einen der vorhandenen Extraktoren das Laufen auf CreditCard sized Devices also RaspberryPi und Konsorten beizubringen. Mit Dot-Net Core auf Windows IOT den bekannten MFDE zum Laufen zu bringen hat sich aber als Sackgasse erwiesen.


    Noch dazu fand ich die Idee sinnvoll, auf Bordmittel von BMS aufzubauen und nicht noch eine weitere Serverkomponente betreiben zu müssen, wie es zum Beispiel auch bei YAME der Fall ist.

    Womit es dann auf eine komlette Neuentwicklung des/der Clients hinausgelaufen ist, die sich dann auch nicht zuletzt durch ein wenig technischer Unterstützung und auch Weiterentwicklung des RTT-Protokolls duch Dunc in die Tat haben umsetzen lassen.


    Da YAME zwischenzeitlich nicht mehr weiterentwickelt wurde, habe ich den Code ab diesem Zeitpunkt immer auch Windows-kompatibel gehalten, sodass mein Extractor heute ganz normal auf Windows laufen kann, um die Instrumente auszugeben.


    Inwiefern es nun Sinn macht, den Windows Client weiter zu entwickeln oder ob ich diesen Aufgrund der Tatsache, dass Dunc wohl die Weiterentwicklung des ursprunglichen YAMEs übernimmt, fallen lasse, ist bei Dunc gerade in Klärung. Ich warte gespannt auf Antwort.


    Jedenfalls habe ich nun das von mir benötige Setup zumindest Software-technisch fertig und habe gleich ein paar Helper dazu entwickelt, damit solche R-Pi Clients für nicht Linux-affine Interessenten einfach aufzusetzen und zu betreiben sind.


    Die Texturen für das CP stammen aus BMS selbst und sind mit einigen Schatteneffekten angereichert worden. Es fehlen noch ein paar Feinheiten wie Flags aber die Grundfunktion ist gegeben:


     


    Während das RWR bereits in einer neueren Version mit Hintergrundtextur verbaut ist,

    habe ich die eingentlichen MFDs noch gar nicht im Cockpit selbts konfiguriert sondern nur in der Teststellung ,da ich hier noch an der Monatge im Cockpit arbeiten muß.



    Mit diesem Tool werden alle Raspberry-PI Devices automatisch im lokalen Netzwerk gefunden und können von hier aus gesteuert werden:


      


    Installation


    Die Software läuft zwar auch auf R-Pi 3, die neueste 4er Verssion ist aber dringend empfohlen, das hier der OpenGL Hardware Renderer des verbauten Chips verwendet werden kann.

    Für die 3er Version fällt die Render-Engine auf die Software-Implementierung zurück, was sich in den Bildwiederholraten bemerkbar machen kann, jenachdem wie groß die Bildschirme und wie hoch dadurch die Auflösung der darzustellenden Elemente ist.

    Was die erforderliche RAM-Größe angeht, so reicht bereits die kleinste Version des R-Pi 4 mit 1GB für die Darstellung der Instrumente aus.


    Nachdem ein Raspberry-PI fertig mit RaspberryPI OS aufgesetzt wurde (siehe hier https://www.raspberrypi.com/software/)


    muß nur ein weiteres Paket auf dem Device installiert werden, welches von den Exportern benötigt wird:

    Code
    1. apt install libsfml-dev

    Die Exporter selbst und die Steuer-Software werden dann durch eine weitere Befehlseingabe auf das Device heruntergeladen und eingerichtet:

    Code
    1. sh -c "$(curl -fsSL https://gtishare.s3.eu-central-1.amazonaws.com/setup_BmsCockpitExtractor.sh)"

    Danach werden diese automatisch von der Administrations-Software gefunden, welche sinnvollerweise auf dem BMS Windows Rechner gestartet wird. Sie kann aber auch auf jedem beliebeigen anderen Gerät im Netzwerk betrieben werden.


    Hierbei ist es egal, welche Komponente zuerst gestartet wir. Man kann die Devices mit zuvor konfigurierten Autostarts auch generell ganz ohne Admin-Software laufen lassen und z.B. zum Umkonfigurieren den Administrator kurz laden und nach der Konfiguration der Devices wieder schließen.


    Die Position der Instrumente wird im Moment durch simple Textfiles, ähnlich der des BMS RTT-Clients konfiguriert. Diese Konfiguration kann dann mit dem Admin-Tool auf das Device geladen werden.

    Einen rudimentären Helper, mit dem man die Kontur des Instruments mit den Pfeiltasten über den Bildschirm bewegen kann um die genaue Position und Größe eines Instruments zu bestimmen, gibt es bereits.


    Eine Windows-Distribution werde ich in den kommenden Tagen paketieren, falls Interesse besteht MFDE oder YAME abzulösen oder auch einfach so :-)


    Gruß

    Joker

  • Grossartig , immer her damit :thumbup:

    Yippieayee...


    Viper
    C/O 47th VFS



    dragonfighters_sig_viper.jpg

    AMD Ryzen™ 7 9800X3D |ASUS ROG STRIX B650E-F Gaming Mainboard | 96 GB DDR5-5600 |ASUS GeForce RTX 5080 TUF Gaming OC | Win 11 Pro |
    Displays: 1x Samsung 40" / 3 x 10" TFT / 1x 4,3" TFT / 1x 7" TFT | HOTAS Cougar FSSB-R1 | Simped Vario Pedals | 9 x Arcaze USB | 2 Arcaze LED Driver | AIC | Arduino Uno | HP Reverb G2

  • Im Rahmen des Updates auf 4.38 habe ich meine Raspberry Pi Display Software etwas weiter feingeschliffen, sodass das Setup nun noch einfacher gelingt.

    Auf einem 4er oder 5er PI benötigt man nun nur noch Pi OS Light und nicht mehr die Version mit der kompletten Desktopumgebung welche 1GB unnötig auf dem PI verschwendet.


    Wenn man sich anschließend per SSH auf seinem PI anmeldet, muss man genau 2 Befehle eingeben und die Kiste läuft.


    Die Distributionsplattform für Installation und Updates registrieren:

    Code
    1. sudo curl -fsSL https://raw.githubusercontent.com/hangar47/BmsCockpitSetup/refs/heads/main/install-repo.sh | bash


    Die Erforderlichen Pakete runterladen, welche danach und bei jedem PI Neustart automatisch starten:


    Für Display Extraktion:

    Code
    1. sudo apt install bms-cockpit-displays bms-cockpit-control


    Für Instrumente ala YAME oder MFDE:

    Code
    1. sudo apt install bms-cockpit-gauges bms-cockpit-control


    Auf dem Raspberry PI befindet sich nach der Installation unter /var/lib/bms-cockpit für jeden der beiden Extraktoren eine Konfig-Datei in welcher man definieren kann welche Displays bzw. Instrumente man wo sehen will.

    bms-cockpit-gauges.conf

    bms-cockpit-displays.conf:


    Über den weiter oben abgebildeten CockpitHub können die einzelnen Raspberry PIs im Netzwerk gefunden, fernkonfiguriert und ein/ausgeschaltet werden. Eine genauere Beschreibung zum Hub plus Download-Link liefere ich noch nach.


    Beide Programme benötigen den bei BMS mitgelieferten RTT Server. Dis Displays benötigen den normalen RTT Export. Die Instrumente bekommen ihre Daten über das leitgewichtigere UDP Multicast auf.

    5 Mal editiert, zuletzt von Joker () aus folgendem Grund: Fehlerkorrektur: Speicherort der Konfigdateien

  • Hey Joker,

    ich habe mal versucht Deine Software zu installieren.

    Ich stoße da aber auf Probleme. Ich habe vor 8 Jahren mal mit einen Raspberry herumprobiert und seither nicht mehr. Daher war schon das Setup des Raspberry eine Herausforderung.

    ich habe es nun aber geschafft das Betriebssystem auf meinem alten Pi 3 zu installieren, das Netzwerk einzurichten und nun auch Deine Software über die beiden Befehle, die Du genannt hast, zu installieren.

    Das hat auch ohne weitere Fehlermeldungen geklappt.


    Bei der Konfiguration scheitere ich nun aber - der Ordner /var/opt/ ist auf meinem Pi leer.

    Dafür habe ich aber im Ordner /opt/ einen Unterordner namens "bms-cockpit-control". Aber darin finde ich die config-Dateien nicht, mit denen ich die weiteren Anpassungen vornehmen soll.


    Wie kann ich hier weiter vorgehen? Braucht Deine Software in zwischen mindestens einen Pi 4?