Projekt

Allgemein

Profil

Aktionen

Fehler #138

geschlossen
JH

ANT+-Trainer (FE-C): Zeit, Strecke, Geschwindigkeit und Puls wurden falsch gelesen; Suche gibt nicht mehr auf

Fehler #138: ANT+-Trainer (FE-C): Zeit, Strecke, Geschwindigkeit und Puls wurden falsch gelesen; Suche gibt nicht mehr auf

Von Julius Haman vor 5 Tagen hinzugefügt. Vor 5 Tagen aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
Beginn:
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:
Gefunden in Version:

Beschreibung

Bei ANT+-Trainern (FE-C) wurden Zeit, Strecke, Geschwindigkeit und Puls aus dem falschen Datenfeld gelesen und waren dadurch falsch. Leistung und Trittfrequenz waren nicht betroffen. Das ist korrigiert. Außerdem gibt die Trainer-Suche im Training nicht mehr nach etwa 25 Sekunden auf, und im Log stehen Verbindungsverlust und Kanal-Ereignisse.

Hinweis zum Test

Nicht an echter Hardware geprüft: Es steht kein ANT+-Trainer (FE-C) zur Verfügung. Die Byte-Zuordnung wurde gegen eine produktiv genutzte Referenz-Implementierung (incyclist/ant-plus, Datei src/sensors/fitness-equipment-sensors.ts; laut Repo-Beschreibung die ANT+-Bibliothek der Incyclist-App) abgeglichen, nicht gegen die offizielle Spec D000001231 (kein Zugriff). Test mit einem Trainer steht aus.

Hintergrund

Folgeticket zu #137 (Pulsgurt). Beim Pulsgurt war der Decoder ebenfalls falsch belegt.

Technische Details

Seite 0x10 (General FE Data), FecControlRole.HandleGeneralFeData und AntFecTester: Die Zuordnung war um ein Byte verschoben, weil der Equipment Type in Byte 1 nicht berücksichtigt war. Korrekt:

Byte Inhalt
1 Equipment Type
2 Elapsed Time (0,25 s)
3 Distance (m)
4/5 Speed (0,001 m/s, 0xFFFF = ungültig)
6 Puls (0xFF = ungültig)
7 Capabilities (Bits 0-3), FE State (Bits 4-6), Lap Toggle (Bit 7)

Vorher wurde Elapsed Time aus Byte 1, Distance aus Byte 2, Speed aus Byte 3/4 und Puls aus Byte 5 gelesen. FE State enthält jetzt nur noch Bits 4-6 (vorher Bits 4-7 inklusive Lap Toggle).

Seite 0x19 (Specific Trainer Data: Kadenz Byte 2, Leistung Byte 5/6 mit 12 Bit) und die Zielleistung 0x31 (Byte 6/7, 0,25 W) stimmen mit der Referenz überein.

FecControlRole, Kanal 1:

  • Search-Timeout und Low-Priority-Search-Timeout auf 255 (unbegrenzt). Ohne diese Einstellung gilt der Standard von 10 (25 Sekunden), danach beendet ANT die Suche und schließt den Kanal (ANT Message Protocol and Usage Rev 5.1, 9.5.2.5). Die Referenz-Implementierung setzt ebenfalls TIMEOUT_NEVER.
  • Kanal-Events werden geloggt (außer RX_FAIL).
  • Die Startzeile zeigt die Rückgabewerte von Search-Timeout, LP-Timeout und openChannel.

Nicht Teil dieses Tickets bzw. unverändert:

  • Die Trainer-Suche (--fec-scan, FecScanRole) wurde in #137 korrigiert (Timeout-Event, Exclude-Liste).
  • Kanalperiode 8192 und Frequenz 57 entsprechen dem Standard bzw. der Referenz-Implementierung.
  • AntFecTester wertet Broadcasts weiterhin über getMessageID() aus (wirft bei erweiterten Nachrichten). Dort wurde nur die Byte-Zuordnung von Seite 0x10 korrigiert. Das Testprogramm schaltet keine erweiterten Nachrichten ein.

Offen: Test mit einem ANT+-Trainer (Suche mit --fec-scan, Betrieb, Werte-Vergleich mit der Trainer-Anzeige, Zielleistung).

JH Von Julius Haman vor 5 Tagen aktualisiert Aktionen #1

  • Thema wurde von ANT+-Trainer (FE-C): Suche gibt nicht mehr nach 30 Sekunden auf, Kanal-Ereignisse im Log zu ANT+-Trainer (FE-C): Zeit, Strecke, Geschwindigkeit und Puls wurden falsch gelesen; Suche gibt nicht mehr auf geändert
  • Beschreibung aktualisiert (Vergleich)

Beschreibung aktualisiert: Decoder-Fehler an Referenz-Implementierung bestätigt und korrigiert.

JH Von Julius Haman vor 5 Tagen aktualisiert Aktionen #2

Quellenangabe zur Referenz-Implementierung korrigiert.

JH Von Julius Haman vor 5 Tagen aktualisiert Aktionen #3

Ergänzt: Spec-Angabe zum Such-Timeout (25 s statt etwa 30 s), Abgrenzung zu #137, offener Punkt AntFecTester.

JH Von Julius Haman vor 5 Tagen aktualisiert Aktionen #4

  • Status wurde von Neu zu Erledigt geändert
Aktionen

Auch abrufbar als: PDF Atom