Projekt

Allgemein

Profil

Aktionen

Feature #158

geschlossen
JH

AntInterface: Version muss zur ErControl-Version passen

Feature #158: AntInterface: Version muss zur ErControl-Version passen

Von Julius Haman vor 20 Tagen hinzugefügt. Vor 19 Tagen aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
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

  • HelloMessage bekommt AppVersion (Programmversion der AntInterface.exe) und Commit (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_CLOSE zuweisen, damit nach einem Absturz keine Verwaisten mehr entstehen.

JH Von Julius Haman vor 20 Tagen aktualisiert Aktionen #1

JH Von Julius Haman vor 20 Tagen aktualisiert Aktionen #2

JH Von Julius Haman vor 20 Tagen aktualisiert Aktionen #3

  • Status wurde von Neu zu Erledigt geändert

Umgesetzt in zwei Commits (Versions-/Commit-Prüfung, verwaiste Prozesse und Job Object). Getestet: ErControl im Task-Manager beendet, AntInterface wurde dabei ebenfalls beendet.

JH Von Julius Haman vor 19 Tagen aktualisiert Aktionen #4

  • Abgabedatum wurde auf 12.10.2026 gesetzt
  • Beginn wurde auf 12.10.2026 gesetzt

JH Von Julius Haman vor 19 Tagen aktualisiert Aktionen #5

  • % erledigt wurde von 0 zu 100 geändert
Aktionen

Auch abrufbar als: PDF Atom