Aufgabe:
Entwickle ein GUI-Tool, um Bionx-eBikes über den CAN-Bus anzusteuern. Es soll
- die typischen Parameter wie Ladezustand, Höchstgeschwindigkeit etc. auslesen,
- übersichtlich darstellen
- über den CAN-Bus zurückschreiben
- portabel programmiert sein
- mit der native TinyCan-Treiber von MHS-Elektronik arbeiten
- auch auf einem Raspberry Pi Zero 2 laufen
Umsetzung:
Die Einstellungen des Bikes werden tabellarisch dargestellt, für jedes ‚Device‘ (Console, Motor, Akku) gibt es eine eigene View. Für diejenigen Werte, die änderbar sind, wird in einem Mini-Progressbar der Einstellungswert noch anteilig angezeigt.
Mit dem ‚Reload‘-Button werden die aktuellen Einstellungen vom eBike über den TinyCan-Adapter eingelesen. Es wird die native Treiber-API verwendet, die Qt CAN-Bus API würde vermutlich auch funktionieren.
Nach dem Programmstart wird erstmal ein Pseudo-Treiber verwendet, der Zufallswerte sendet. Durch Klick auf den Connect-Button wird versucht, den ‚echten‘ Treiber zu laden und eine Verbindung zu Steuerkonsole des Bikes aufzubauen.
Die Kommunikation mit der Hardware ist von der GUI über einen Worker-Thread entkoppelt, die Synchronisation erfolgt die über den SIGNAL/SLOT Mechanismus der Qt-Bibliothek.
Status:
Experimentell. Fehlerbehandlung ist etwas rudimentär, teilweise noch Darstellungsfehler im Edit-Mode. Einstellungen überprüfen und zurückschreiben fehlt noch. Der aktuelle Stand liegt unter gitea.sourceworx.org/chris/BionxControl
Technologie-Stack
- Sprachen: C (Treiber) und c++23 / Qt6
- Zielsystem: Raspberry Pi (auch Zero 2W)
- Entwicklungssystem: Linux x64, Windows
- Quellcode: gitea.sourceworx.org/chris/BionxControl