... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Exportierte FIT-Datei (Route) für Garmin nicht lesbar
#1
Hallo,

ich habe einen vorhandenen GPX-Track einerseits mit dem RouteConverter geöffnet und als FIT-Datei gespeichert, gleiches mit dem Onlinedienst https://fit-route.pyrites.org.uk bzw. zuvor GPSies.com

In den letztgenannten Fällen konnte ich die generierte FIT-Datei problemlos als Route im Garmin Forerunner nutzen, bei der Version aus RouteConverter gibt es jedoch einen Fehler beim Upload.

Nachfolgend habe ich beide Dateien mit dem FitCSVTool von Thisisant mal in CSV-Dateien konvertiert, Anders als die ursprünglichen FIT-Dateien unterscheiden sich die dekodierten CSVs deutlich in der Größe. Beim genaueren Blick fällt auf das die online konvertierte Datei u.a. das Stichwort "course", sowie den Namen der Strecke enthält. Zudem haben die Koordinaten jeweils zusätzlich Zeitstempel und Entfernungsangaben. Vermutlich fehlen also (mindestens) diese Elemente in der von RC exportierten FIT-Datei.

Lässt sich der Export hier irgendwie verbessern bzw. diese Funktion noch nachrüsten?

Danke
Andreas


Attached Files
.zip   Heide.zip (Size: 19.97 KB / Downloads: 16)
Reply
#2
(15.02.2021, 21:36)a_kemper Wrote: Lässt sich der Export hier irgendwie verbessern bzw. diese Funktion noch nachrüsten?

Hallo Andreas,

beim FIT-Format ist es wie bei allen Garmin-Formaten: es gibt viel Interpretationsspielraum. Zuletzt habe ich im letzten Juli dran geschraubt.

Die CSV-Dateien habe ich mir gar nicht angeschaut – um das Problem mit Deinem Garmin Forerunner zu lösen, bräuchte ich die Originaldateien: die die funktionieren, die von RouteConverter erzeugte und den GPX-Track.
--
Christian
Reply
#3
(17.02.2021, 10:26)routeconverter Wrote:
(15.02.2021, 21:36)a_kemper Wrote: Lässt sich der Export hier irgendwie verbessern bzw. diese Funktion noch nachrüsten?

Hallo Andreas,

beim FIT-Format ist es wie bei allen Garmin-Formaten: es gibt viel Interpretationsspielraum. Zuletzt habe ich im letzten Juli dran geschraubt.

Die CSV-Dateien habe ich mir gar nicht angeschaut – um das Problem mit Deinem Garmin Forerunner zu lösen, bräuchte ich die Originaldateien: die die funktionieren, die von RouteConverter erzeugte und den GPX-Track.

Hallo Christian,

daran soll es nicht scheitern. Die Originaldatei findet sich online. Zusammen mit den beiden FIT-Dateien habe ich diese als Archiv angefügt. HeideOnlline.fit ist die funktionierende Version, HeideRC.fit die aus dem RouteConverter.

Bedankt,
Andreas


Attached Files
.zip   Heide.zip (Size: 17.58 KB / Downloads: 10)
Reply
#4
(17.02.2021, 10:53)a_kemper Wrote: HeideOnlline.fit ist die funktionierende Version, HeideRC.fit die aus dem RouteConverter.

Hallo Andreas,

die HeideOnline.fit hat so einiges mehr an Daten – irgendetwas davon scheint Dein Garmin Forerunner zu benötigen:

Quote:INFO: Mesg: file_id Num: 0
INFO: Field: type value: 6
INFO: Field: time_created value: 982489696
INFO: Mesg: course Num: 31
INFO: Field: name value: HeideOnline
INFO: Mesg: lap Num: 19
INFO: Field: timestamp value: 982489655
INFO: Field: start_time value: 982489655
INFO: Field: start_position_lat value: 606443417
INFO: Field: start_position_long value: 85342957
INFO: Field: end_position_lat value: 606443417
INFO: Field: end_position_long value: 85343124
INFO: Field: total_timer_time value: 1766.667
INFO: Field: total_distance value: 7953.38
INFO: Field: total_ascent value: 182
INFO: Field: total_descent value: 182
INFO: Mesg: event Num: 21
INFO: Field: timestamp value: 982489655
INFO: Field: event value: 0
INFO: Field: event_type value: 0
INFO: Field: event_group value: 0

INFO: Mesg: record Num: 20
INFO: Field: timestamp value: 982489655
INFO: Field: position_lat value: 606443417
INFO: Field: position_long value: 85342957
INFO: Field: altitude value: 128.0
INFO: Field: distance value: 0.0
INFO: Field: enhanced_altitude value: 128.0

Zum Vergleich was RouteConverter schreibt:

Quote:INFO: Mesg: file_id Num: 0
INFO: Field: product_name value: RouteConverter 2.30-SNAPSHOT-145
INFO: Field: time_created value: 982489850
INFO: Mesg: record Num: 20
INFO: Field: position_long value: 85342968
INFO: Field: position_lat value: 606443369
INFO: Field: altitude value: 128.0
INFO: Field: enhanced_altitude value: 128.0

Alles, was fett ist, steht zusätzlich in der Datei von HeideOnline. Ich habe jetzt RouteConverter mal die "distance" für records wie HeideOnline schreiben lassen. Kann Dein Garmin Forerunner eine der angehängten Dateien lesen?


Attached Files
.zip   Versuch1.zip (Size: 15.12 KB / Downloads: 12)
--
Christian
Reply
#5
(17.02.2021, 15:28)routeconverter Wrote:
(17.02.2021, 10:53)a_kemper Wrote: HeideOnlline.fit ist die funktionierende Version, HeideRC.fit die aus dem RouteConverter.

Hallo Andreas,

die HeideOnline.fit hat so einiges mehr an Daten – irgendetwas davon scheint Dein Garmin Forerunner zu benötigen:

Quote:INFO: Mesg: file_id Num: 0
INFO: Field: type value: 6
INFO: Field: time_created value: 982489696
INFO: Mesg: course Num: 31
INFO: Field: name value: HeideOnline
INFO: Mesg: lap Num: 19
INFO: Field: timestamp value: 982489655
INFO: Field: start_time value: 982489655
INFO: Field: start_position_lat value: 606443417
INFO: Field: start_position_long value: 85342957
INFO: Field: end_position_lat value: 606443417
INFO: Field: end_position_long value: 85343124
INFO: Field: total_timer_time value: 1766.667
INFO: Field: total_distance value: 7953.38
INFO: Field: total_ascent value: 182
INFO: Field: total_descent value: 182
INFO: Mesg: event Num: 21
INFO: Field: timestamp value: 982489655
INFO: Field: event value: 0
INFO: Field: event_type value: 0
INFO: Field: event_group value: 0

INFO: Mesg: record Num: 20
INFO: Field: timestamp value: 982489655
INFO: Field: position_lat value: 606443417
INFO: Field: position_long value: 85342957
INFO: Field: altitude value: 128.0
INFO: Field: distance value: 0.0
INFO: Field: enhanced_altitude value: 128.0

Zum Vergleich was RouteConverter schreibt:

Quote:INFO: Mesg: file_id Num: 0
INFO: Field: product_name value: RouteConverter 2.30-SNAPSHOT-145
INFO: Field: time_created value: 982489850
INFO: Mesg: record Num: 20
INFO: Field: position_long value: 85342968
INFO: Field: position_lat value: 606443369
INFO: Field: altitude value: 128.0
INFO: Field: enhanced_altitude value: 128.0

Alles, was fett ist, steht zusätzlich in der Datei von HeideOnline. Ich habe jetzt RouteConverter mal die "distance" für records wie HeideOnline schreiben lassen. Kann Dein Garmin Forerunner eine der angehängten Dateien lesen?

Hallo Christian,

leider konnte der FR 910 keine der angefügten Dateien lesen. Ich habe daher mal die funktionierende FIT-Datei in CSV konvertiert, dann schrittweise Nachrichten inkl. darin enthaltener Felder entfernt und anschließend zurück in eine neue FIT-Datei gewandelt.
Neben den bisherigen Angaben benötigt der FR demnach offensichtlich vor allem die Nachricht "course" mit dem Feld "name":

INFO: Mesg: course Num: 31
INFO: Field: name value: HeideOnline

Das ist auch insofern plausibel, da der Name der Strecke im Display angezeigt wird, während die interne Kopie der FIT-Datei keine Rückschlüsse darauf zulässt.

In den übertragenen Koordinaten (INFO: Mesg: record) sind demgegenüber die Felder "timestamp" und "distance" wie in dem ursprünglichen Export scheinbar nicht zwangsweise nötig. Offensichtlich kann dann der FR keine Schätzung zur verbleibenden Streckenzeit abgeben, was aber zumindest die Darstellung des Verlaufs nicht behindern sollte.


Attached Files
.zip   Heide.zip (Size: 11.11 KB / Downloads: 12)
Reply
#6
(17.02.2021, 23:37)a_kemper Wrote: Neben den bisherigen Angaben benötigt der FR demnach offensichtlich vor allem die Nachricht "course" mit dem Feld "name":

INFO: Mesg: course Num: 31
INFO: Field: name value: HeideOnline

Das ist auch insofern plausibel, da der Name der Strecke im Display angezeigt wird, während die interne Kopie der FIT-Datei keine Rückschlüsse darauf zulässt.

Hallo Andreas,

ich habe dem Format jetzt die course Nachricht hinzugefügt. Klappt es jetzt?


Attached Files
.zip   Versuch2.zip (Size: 4.38 KB / Downloads: 14)
--
Christian
Reply
#7
(18.02.2021, 17:50)routeconverter Wrote:
(17.02.2021, 23:37)a_kemper Wrote: Neben den bisherigen Angaben benötigt der FR demnach offensichtlich vor allem die Nachricht "course" mit dem Feld "name":

INFO: Mesg: course Num: 31
INFO: Field: name value: HeideOnline

Das ist auch insofern plausibel, da der Name der Strecke im Display angezeigt wird, während die interne Kopie der FIT-Datei keine Rückschlüsse darauf zulässt.

Hallo Andreas,

ich habe dem Format jetzt die course Nachricht hinzugefügt. Klappt es jetzt?


Hallo Christian,

anders als gedacht leider nein. Vermutlich ist es einfacher, wenn ich mal eine funktionierende FIT-Datei nach CSV konvertiere, darin schrittweise Felder weglasse und anschließend daraus jeweils eine "reduzierte" FIT-Datei zum testen generiere.

Unabhängig davon ist mir gerade bei all deinen exportierten FIT-Dateien noch aufgefallen, dass die "Local Number" (im konvertierten CSV) nicht hochgezählt wird. Damit werden nach meinem Verständnis die verschiedenen Messages inkl. nachfolgender Parameter voneinander separiert. Ich weiß nicht was da genau in der FIT-Datei fehlt, allerdings zählt der Konverter zumindest nicht die LN hoch.

Schönen Restsonntag
Andreas
Reply
#8
(21.02.2021, 15:31)a_kemper Wrote: anders als gedacht leider nein. Vermutlich ist es einfacher, wenn ich mal eine funktionierende FIT-Datei nach CSV konvertiere, darin schrittweise Felder weglasse und anschließend daraus jeweils eine "reduzierte" FIT-Datei zum testen generiere.

Das ist eine gute Idee.

(21.02.2021, 15:31)a_kemper Wrote: Ich weiß nicht was da genau in der FIT-Datei fehlt, allerdings zählt der Konverter zumindest nicht die LN hoch.

Ich verwende das SDK von Garmin und folge den Code-Beispielen von Garmin - da passiert nichts mit der LocalNum. Und im Sourcecode der com.garmin.fit.Mesg wird eine Exception geworfen, wenn LocalNum größer als 16 ist. Das sieht mir nicht nach einem Zähler aus.
--
Christian
Reply
#9
Hallo Christian,

ich habe gestern Abend eine Weile herumprobiert und dabei ein paar Dinge geklärt.

Hauptproblem der letzten "Heide4.fit" war die inkorrekte, erste file_id-Nachricht. Entsprechend habe ich die wieder mit dem FitCSVTool nach CSV konvertiert und die entsprechenden Felder in den ersten beiden Zeilen korrigiert. Nach dem zurückkonvertieren konnte ich die "Heide4_fixed.fit" problemlos hochladen, auch wenn es darin noch ein paar Unstimmigkeiten bei der Definition der records gibt (Zeile 6).

Zudem habe ich auf https://developer.garmin.com/fit/file-types/course/ gefunden welche Parameter formal in einer Course-FIT-Datei enthalten sein müssen. Daraufhin habe ich mit dem Onlinetool einen einfachen Track "Testlauf.gpx" nach FIT konvertiert, diesen anschließend wieder in CSV gewandelt und darin vor dem rückkonvertieren in FIT alle nicht verpflichtenden Parameter entfernt. Das Ergebnis dieses ersten Reduzierschrittes findet sich in "Testlauf.fit". Im zweiten Schritt habe ich die FIT-Datei weiter geschrumpft und dabei zusätzlich alle Nachrichten und Parameter weggelassen, die der Forerunner nicht zwangsläufig braucht, vgl. "Testlauf_minimal.fit".

Für meine Zwecke würde also eine deutlich reduzierte Version der Datei reichen. Soll der Export möglichst kompatibel sein wäre es sinnvoll die Nachrichten "lap" und "event" ebenfalls mit zu exportieren. Definitiv sinnvoll erscheint es auch die Parameter "record:timestamp" und "record:distance" zu exportieren, da sonst ein Teil der ursprünglichen Trackinformation verloren geht. Ferner hatte ich im "Testlauf" den Parameter "file_id:time_created" zwischenzeitlich mal gelöscht, wobei es sicher auch nicht schadet den drin zu lassen.

Danke
Andreas


Attached Files
.zip   Testlauf.zip (Size: 24.95 KB / Downloads: 10)
Reply
#10
Hallo Andreas,

ich habe eine neue Vorabversion hochgeladen, die jetzt eine file_id / type Nachricht enthält, ansonsten aber eher Testlauf_minimal.fit ähnelt.
RouteConverter Tracks werden dabei zu FIT Activity, Routes zu Course, Waypoints zu Workout

Bitte teste und berichte!
--
Christian
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)