IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Utilisation de fichier .FIT de Garmin [WD20]


Sujet :

WinDev

  1. #1
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 766
    Points
    1 766
    Par défaut Utilisation de fichier .FIT de Garmin
    Bonjour,

    Je voudrais lire les fichiers .FIT de Garmin avec Windev.
    J’ai trouvé des ressources ici : http://www.thisisant.com/resources/fit
    Parmi ces ressources il y a Fit.DLL un assemblage .NET et un exemple pour décoder les fichiers .FIT en C# DecodeDemo.cs
    Vous pouvez récupérer ces fichiers ici :
    Fit.DLL : http://www.cjoint.com/doc/15_08/EHuwDdnyou2_Fit.dll
    DecodeDemo.cs : http://www.cjoint.com/doc/15_08/EHuw..._DecodeDemo.cs
    Exemple de fichier .FIT : http://www.cjoint.com/doc/15_08/EHuw...0-09-29-20.fit

    J’ai importé l’assemblage .NET à un projet test. Jusqu’à là pas de problème, j’y vois les classes utilisées dans le fichier DecodeDemo.cs

    Mon problème c’est que je n’ai pas de connaissance en C#
    J’essaie de traduire le code de DecodeDemo.cs en Windev mais je dois faire plein d’erreur de syntaxe. Je bataille depuis plusieurs jours, mais je n’arrive à rien à part m’arracher les cheveux…

    Si certains d’entre vous sont intéressés par le projet d’utiliser des fichiers .FIT dans une application Windev ou bien sont à même de pouvoir m'apporter une quelconque aide ou conseil, je suis preneur…

    En vous remerciant d’avance.
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    Hello Laurent,
    vu ce qui est utilisé dans ton fichier csharp DecodeDemo.cs la conversion en windev risque d'être très difficile voir impossible . Ce qui pose problème : le MesgBroadcaster avec ses événements (il faudra utiliser des dotnetdélégués) et surtout l'instruction du style foreach (KeyValuePair<ushort, int> pair in mesgCounts) qui fait appel à du générique.
    J'ai peut-être une solution à ton problème, tout dépend ce que tu veux faire exactement avec le fichier fit. Si c'est simplement récupérer les données telles que DecodeDemo les affichent, tu peux utiliser ma classe cconsole (voir la rubrique contribuez) et récupérer ce qui est envoyé par le programme décode.exe (exécutable de DecodeDemo.cs). J'ai testé mais j'ai du faire une petite modif dans le DecodeDemo.cs pour éviter un plantage à la fin sur le Console.ReadKey(); (mis en commentaire). Dans un champ de saisie Multiligne j'affiche le résultat de ce que renvoie Decode.exe avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MaConsole est une cConsole
    MaConsole:SetCmd("Decode.exe example.fit")
    MaConsole:ExécuterCmd()
    Decode_Fit = MaConsole:SortieAnsi()
    Cela met 14 secondes à décoder sur mon ordinateur. Se mettre en mode asynchrone si on veut éviter le blocage pendant le décodage.
    En pièce jointe le Decode.exe compilé (en 32 bits) avec un fichier fit . Mettre les fichiers dans le répertoire EXE du projet windev.

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    hello,
    il y a aussi une autre possibilité, c'est d'utiliser l'utilitaire FitToCSV (qui se trouve dans le répertoire java du SDK) et exploiter les fichiers CSV générés.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 766
    Points
    1 766
    Par défaut
    Bonjour JP,

    Tu as bien compris, je veux juste récupérer les données qui sont dans le fichier .FIT

    J'ai essayé ta 1ère solution en utilisant ta classe cconsole et décode.exe sur plusieurs fichiers .FIT et ça marche bien.
    Je vois de manière claires les données qui sont dans les fichiers.

    L'inconvénient c'est que c'est très verbeux et que pour récupérer les données qui m'intéressent ça peut se faire mais ça pourrait être plus simple...
    Si j'ai bien compris la mise en forme des données retournées se fait dans DecodeDemo.cs. Donc c'est là qu'il me faut agir pour récupérer les données que je veux au format que je veux (proche du csv)

    La 2ème solution que tu me proposes en utilisant la solution java du SDK permet de retourner les données au format CSV ce qui m'intéresse fortement.
    Je vois qu'il y 4 fichiers .bat
    - FitToCSV-session.bat -> les cumuls de la sortie
    - FitToCSV-lap.bat -> les cumuls de chaque tour
    - FitToCSV-record.bat -> le détail des données
    - FitToCSV.bat -> je suppose toutes les données
    Je vois que les 4 .bat utilisent FitCSVTool.jar
    J'ai placé les 4 .bat et FitCSVTool.jar dans le répertoire EXE du projet windev et j'ai essayé d'utilisé FitToCSV.bat avec ta classe cconsole mais ça ne donne rien

    Comment dois je procéder pour utilisé FitToCSV ?

    Un grand JP pour ton aide, grâce à toi je commence à entrevoir une solution...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    hello Laurent,
    FitToCsv ça ne renvoie rien à l'écran, ça génère un fichier csv. Bien sur il faut avoir java installé pour pouvoir l'utiliser.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 766
    Points
    1 766
    Par défaut
    Finalement j'ai choisi de modifier le code de la demo en C# pour générer du .CSV
    J'utilise l'exe généré avec ta classe cconsole et ça fonctionne très bien...

    Encore un grand merci JP
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Suite de ce message
    Citation Envoyé par jurassic pork Voir le message
    Hello Laurent,
    vu ce qui est utilisé dans ton fichier csharp DecodeDemo.cs la conversion en windev risque d'être très difficile voir impossible . Ce qui pose problème : le MesgBroadcaster avec ses événements (il faudra utiliser des dotnetdélégués) et surtout l'instruction du style foreach (KeyValuePair<ushort, int> pair in mesgCounts) qui fait appel à du générique.
    J'ai peut-être une solution à ton problème, tout dépend ce que tu veux faire exactement avec le fichier fit. Si c'est simplement récupérer les données telles que DecodeDemo les affichent, tu peux utiliser ma classe cconsole (voir la rubrique contribuez) et récupérer ce qui est envoyé par le programme décode.exe (exécutable de DecodeDemo.cs). J'ai testé mais j'ai du faire une petite modif dans le DecodeDemo.cs pour éviter un plantage à la fin sur le Console.ReadKey(); (mis en commentaire). Dans un champ de saisie Multiligne j'affiche le résultat de ce que renvoie Decode.exe avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MaConsole est une cConsole
    MaConsole:SetCmd("Decode.exe example.fit")
    MaConsole:ExécuterCmd()
    Decode_Fit = MaConsole:SortieAnsi()
    Cela met 14 secondes à décoder sur mon ordinateur. Se mettre en mode asynchrone si on veut éviter le blocage pendant le décodage.
    En pièce jointe le Decode.exe compilé (en 32 bits) avec un fichier fit . Mettre les fichiers dans le répertoire EXE du projet windev.

    Ami calmant, J.P
    Bonjour,
    Voudriez-vous me faire parvenir votre programme "Decode.exe", car je recherche à intégrer un lecteur de fichier "Garmin .FIT" dans une application Windev pour le convertir en fichier GPX.
    Merci d'avance.

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Le lien est en bas du post
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Utiliser un fichier udl
    Par HULK dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/12/2004, 12h14
  2. [NASM] Utiliser des fichiers ressources
    Par trax44 dans le forum Assembleur
    Réponses: 8
    Dernier message: 26/09/2004, 19h42
  3. Utilisation de fichiers batch
    Par shifty.net dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 01/08/2004, 17h31
  4. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 18h02
  5. [Turbo Pascal] Utiliser un fichier Excel
    Par Lady dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 09/03/2003, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo