Aktionen
Feature #158
geschlossen
JH
AntInterface: Version muss zur ErControl-Version passen
Feature #158:
AntInterface: Version muss zur ErControl-Version passen
Beginn:
12.10.2026
Abgabedatum:
12.10.2026
% erledigt:
100%
Geschätzter Aufwand:
Gefunden in Version:
Beschreibung
Problem¶
ErControl und AntInterface teilen sich seit #93 dieselbe Versionsnummer, ErControl prüfte beim Verbinden aber nur die Protokollversion. Eine AntInterface mit gleichem Protokoll, aber anderer Programmversion oder anderem Build (unvollständiges Update, manuell hinterlegter Pfad) wurde stillschweigend akzeptiert.
Zusätzlich bleibt nach einem ErControl-Absturz ein verwaister AntInterface-Prozess bestehen, der den ANT-Stick blockiert (die Pipe-Namen sind pro Start eindeutig, der Altprozess wird also nicht verbunden, hält aber den Stick).
Lösung¶
Schritt 1: Versions- und Commit-Prüfung¶
HelloMessagebekommtAppVersion(Programmversion derAntInterface.exe) undCommit(Git-Kennung, aus der sie gebaut wurde).- ErControl vergleicht beides nach dem Verbinden mit den eigenen Werten. Bei Abweichung oder fehlenden Angaben (ältere AntInterface) wird ein fataler Fehler gemeldet und der eigene AntInterface-Prozess beendet. Die Meldung nennt Version und Commit beider Seiten und wird in Verbinden-Dialog, Verbindungstest und Gerätesuche statt des Stick-Hinweises angezeigt (diese Stellen zeigten für jeden fatalen Fehler den Hinweis, den ANT+-Stick anzustecken).
- Die Commit-Kennung wird nur verglichen, wenn beide Seiten eine echte kennen (Build ohne .git liefert
unknown). - Dadurch fallen auch mehrere Builds mit gleicher Versionsnummer auf.
Schritt 2: Verwaiste Prozesse¶
- Vor dem Start verwaiste
AntInterface.exe-Prozesse beenden (Elternprozess existiert nicht mehr, gleicher Pfad). - Kindprozess einem Windows Job Object mit
KILL_ON_JOB_CLOSEzuweisen, damit nach einem Absturz keine Verwaisten mehr entstehen.
Aktionen