ColinPitrat / kalenji-gps-watch-reader

A tool to import data from some Kalenji running watches
GNU General Public License v3.0
30 stars 11 forks source link

OnMove200 - laps & cardio support #55

Open dinbo31 opened 8 years ago

dinbo31 commented 8 years ago

Bonjour Colin,

Tout d'abord, je tiens à te remercier pour ce programme qui m'a permis de récupérer mes traces sur ma montre OnMove200.

La OnMove200 permet de faire des laps manuels, et aussi des fractionnés au temps. Je ne connaissais pas la programmation en c++, mais j'ai suivi quelques cours de programmation en c il y a une dizaine d'années, je connaissais donc un peu l'architecture de ce type de programme. En me basant sur le code de la OnMove710, j'ai modifié le code de la OnMove200, et il me génère maintenant les laps quand je lance le programme. Le nouveau code n'est sans doute pas conforme à la norme de ce type de programme, mais je retrouve les bonnes distances et les bons temps (les points ne s'affichent par contre pas au bon endroit sur une carte). Certains laps s'affichent sans distance, ni vitesse, mais avec le filtre "EmptyLaps" permet de résoudre ce problème. Je n'ai pas de cardio, donc je n'ai pas pu fixer le cardio dans le programme, mais c'est assez simple à rajouter si l'emplacement des bytes du cardio sont identifés.

J'ai mis deux fichiers omd et omh en pièces jointes pour faire les tests, ainsi que la composition du fichier omd que j'ai trouvé.

Je vais continuer à travailler sur le fichier pour essayer de ficher la vitesse max, ce qui doit être possible par lap, et essayer de faire en sorte que les points de départs et d'arrivées des laps correspondent à la réalité (la distance et le temps collent parfaitement).

Les laps sont identifiés sur le fichier omd par l'affichage de 3 points identiques pour la lap manuel, et par deux points identiques pour le lap du fractionné.

Je te laisse regarder mes modifications et revenir vers moi si nécessaire,

Cordialement,

Thomas

omd.txt 20160831_124700.gpx.txt 20160903_220600.gpx.txt ACT_0000.OMD.txt ACT_0000.OMH.txt ACT_0002.OMD.txt ACT_0002.OMH.txt

OnMove200.cc.txt

ColinPitrat commented 8 years ago

Super ! Cette contribution m'intéresse.

Si je comprends bien, chaque point contient l'information du temps courant (que je décodais déjà), du temps de début du lap (bytes 32 et 33) et de temps du fin du lap (bytes 52 et 53) c'est ça ?

J'ai l'impression que tu n'es pas parti de la dernière version du code (repository git) car il manque le support du cardio. Ce n'est pas gênant car c'est très localisé. Mais si tu fais la modif en partant du repository git, tu peux ensuite soumettre une pull-request qui me facilite le travail pour l'integration et facilite aussi les commentaires.

Le code me semble bon, et ne casse pas les tests existant (enfin, il y a l'information de lap en plus avec 1 seul lap ce qui est attendu). Il va falloir que j'ajoute un test avec tes fichiers pour tester plusieurs laps. Ou si ça t'intéresse et que tu veux faire une pull-request, tu peux écrire le test toi même en t'inspirant de ce qui est fait dans le sous répertoire test/integrated.

Quelques remarques sur le format:

Quelques remarques sur le contenu:

Encore merci pour cette contribution.

ColinPitrat commented 8 years ago

Il y avait un autre problème dans le test que j'ai oublié de mentionner: l'altitude apparaissait avec la valeur 0. C'est simplement que le FieldUndef correspondant à l'altitude avait été remplacé par 0 dans le new Point. Ou alors c'est peut être lié au fait que la version de départ du code était ancienne.

ColinPitrat commented 8 years ago

Le résultat des tests ne semble pas bon. Par example, dans 20160831_124700.gpx:

La distance semble cohérente si les laps ont été réglés pour être pris automatiquement tous les km. Elle vaut en général ~9500.

Serait-il possible d'avoir les fichiers obtenus avec le logiciel 'officiel' pour comparer ?

microwan commented 8 years ago

Bonjour Colin ,

Voici mes fichiers, j'ai le meme souci que dinbo31 La dernière coordonnée se retrouve au pole nord

(cf attachement)

 <trkpt lat="71.502537" lon="0.000588" >

    <time>2016-09-06T10:56:00.000Z</time>
    <extensions>
      <gpxdata:hr>0</gpxdata:hr>
    </extensions>
  </trkpt>

20160906_125600_kalenjireader.gpx.txt 20160906_125600_mygeonaute.gpx.txt

        Cordialement

                     Erwan

PS :+1: bravo pour ton outil ;-)

microwan commented 8 years ago

Bonjour Colin ,

Voici mes fichiers, j'ai le meme souci que dinbo31 encore bravo pour ton outil ;-) La dernière coordonnée se retrouve au pole nord

(cf attachement)

 <trkpt lat="71.502537" lon="0.000588" >

    <time>2016-09-06T10:56:00.000Z</time>
    <extensions>
      <gpxdata:hr>0</gpxdata:hr>
    </extensions>
  </trkpt>

        Cordialement

                     Erwan

2016-09-07 13:09 GMT+02:00 Colin Pitrat notifications@github.com:

Hmm, le problème pourrait être lié au fait que le nombre de point est calculé en divisant par 30 alors que la longueur d'un point est de 20.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ColinPitrat/kalenji-gps-watch-reader/issues/55#issuecomment-245248578, or mute the thread https://github.com/notifications/unsubscribe-auth/ACnXO7FLnrKgNChgWSS5X1oK9Exb-K_Aks5qnptggaJpZM4J2QmW .

ColinPitrat commented 7 years ago

Le problème du dernier point devrait maintenant être rêglé.