Feature #93
geschlossenANTInterface immer mitinstallieren – ANT+-Gerätetest ohne Handgriff möglich machen
0%
Beschreibung
Ziel¶
Ein Benutzer mit einem ANT+-Ergometer (FE-C) oder einem ANT+-Pulsgurt soll nach der
Installation von ErControl ohne weitere Schritte testen können, ob ErControl mit seinem
Gerät funktioniert.
Vorher ging das nicht: AntInterface.exe wurde nicht mitinstalliert, und der Pfad zur Datei
war in den Einstellungen standardmäßig leer. Prefs.AntInterfaceReady prüfte nur
File.Exists auf diesem leeren Pfad und war damit false. Die Testknöpfe in der
Geräteverwaltung brachen deshalb mit "AntInterface ist nicht konfiguriert" ab – unabhängig
davon, ob ein funktionierendes ANT+-Gerät angeschlossen war.
Entscheidung¶
AntInterface wird immer installiert. Keine Checkbox, keine Komponente, kein Opt-in.
Begründung:
- Die Datei ist inert: kein Treiber, kein Dienst, keine Registry-Einträge, kein Autostart.
Sie startet ausschließlich, wenn ErControl sie mit einem Pfad explizit aufruft. Sie kann
also keine Fehlwirkung verursachen – sie kann nur fehlen. - Der Nutzer, der den Test braucht, weiß in der Regel nicht, was "AntInterface" ist. Eine
abgewählte Komponente hätte exakt das alte Problem reproduziert: Datei fehlt, Testknopf tot. - Kosten: 21,7 MB im Archiv – gegenüber ErControl (205,8 MB) vertretbar.
Umsetzung¶
-
Installer (
Misc/Setup/ErControl.iss):Release\AntInterface\*wird nach{app}\AntInterface
kopiert, ohne Checkbox und ohne Komponente. Eigenes Unterverzeichnis, weil die
x86-Selbstpublish-Version rund 100 Laufzeit-DLLs mitbringt, die sonst im Anwendungsordner
nebenErControl.WPF.exelägen.THIRD-PARTY-NOTICES.txtwird an dieser Stelle
ausgeschlossen, da ErControl die Datei bereits nach{app}installiert (in den
Release-Ständen vom 14.09. fehlte sie noch, das korrigiert der nächste Build mit). -
Pfadauflösung (
Prefs.AntInterfaceExePath): liefert die mitinstallierte Datei, sobald sie
vorhanden ist, sonst den hinterlegten Override (AntInterfaceExePathOverride, gleicher
Preferences-KeyAntPowerBridge|ExePathwie bisher). Die Reihenfolge ist bewusst so: ein
früher von Hand eingetragener Pfad würde nach einem Update sonst unbemerkt weiter auf eine
veraltete AntInterface zeigen – so gewinnt immer die Version, die mit diesem ErControl
ausgeliefert und mit ihm getestet wurde. Im Debug-Build liefertAntInterfaceBundledper
#if DEBUGpauschalfalse, dort liegt die exe nicht neben der Anwendung und der Pfad
muss weiterhin von Hand gesetzt werden. -
Einstellungen (
PreferencesView/PreferencesViewModel): Das Feld zeigt den Pfad, den
ErControl tatsächlich startet, und ist gesperrt (Browse-Button ausgeblendet), solange die
mitinstallierte Datei gewinnt – eine Eingabe würde ohnehin ignoriert. Die bisherige
Sichtbarkeitslogik für die ganze Zeile entfällt dadurch. -
Neu
AntInterface/ANT-Stick.txt: kurzer Hinweistext für Anwender (Voraussetzungen,
Testknopf, Logpfad) mit dem ausdrücklichen Hinweis, dass der 32-Bit-Treiber für den
ANT-Stick nicht mitgeliefert wird, sondern vom Hersteller des Sticks stammt – ohne
diesen Hinweis wäre ein neues "warum geht das nicht" zu erwarten gewesen. -
Versionierung: ErControl und AntInterface teilen sich jetzt eine Versionsnummer, die nur
noch inDirectory.Build.propssteht (3.1.1.0 auf 3.1.2.0 angehoben).
AntInterface.csprojpflegt keine eigene<Version>mehr, sondern erbt sie und
überschreibt projektlokal nur<Product>(damit die exe in den Dateieigenschaften nicht
"ErControl" heißt). Grund: AntInterface gehört jetzt zum Auslieferungsumfang des Setups,
ein eigener Versionsstrang hätte zwei Nummern für eine einzige Lieferung erzeugt. Bump auf
3.1.2 statt 3.1.1, weil 3.1.1 bereits am 24.09. ohne mitgelieferte AntInterface erschienen
ist. Die Testwerkzeuge (AntFecTester, BleFtmsTester, BleFtmsReceiver, SerialTester)
behalten bewusst eigene Versionen – eigenständige Downloads mit eigener Redmine-Version. -
Protokoll-Datei (
AntInterface/Program.cs,ConfigureLogging): landet jetzt im selben
Ordner wie das ErControl-Protokoll (%LOCALAPPDATA%\ErControl3\logs\) statt in einem
eigenenAntInterface-Ordner. AntInterface wird seit diesem Ticket nur noch über den
Testknopf in der Geräteverwaltung gestartet, ein zweiter Log-Ordner hätte die Fehlersuche
unnötig auf zwei Orte verteilt.ANT-Stick.txtundAntInterface/README.mdsind auf den
neuen Pfad angepasst.
Frühere offene Frage – jetzt entschieden¶
Die Einstellung "Pfad zur AntInterface.exe" wurde nicht entfernt: Der Override bleibt als
Notnagel für den Entwicklungsbetrieb (Debug-Build, dort liegt die exe nicht neben
ErControl.WPF.exe) und für eine unvollständige Installation erhalten, ist im Feld aber
gesperrt/ausgeblendet, solange die mitinstallierte Datei automatisch gewinnt.
Nicht Bestandteil¶
- Kein Ausbau des Testwerkzeugs
AntFecTester, kein zusätzlicher Testdialog, keine
Schnittstellenänderung. Der Knopf "Testen" in der Geräteverwaltung deckt FE-C und
ANT+-Puls ab und bleibt der Weg für Anwender. - Keine Änderung am Pipe-Protokoll (
ErControl.AntProtocol,ProtocolVersion = 1).
Geprüft / nicht geprüft¶
Geprüft: dotnet build (Debug und Release) mit 0 Warnungen/0 Fehlern, ErControl.Core.Tests
128/128 grün, beide exe melden Version 3.1.2.0.
Nicht geprüft: der Installer-Build selbst (auf dem Entwicklungsrechner ist kein InnoSetup
installiert) und die Wirkung nach einer echten Installation ohne angeschlossenes
ANT+-Gerät.