Montre GPS Garmin Forerunner 735XT et son sdk Connect IQ

J’utilise depuis des années une montre GPS, elle me sert en planche à voile (voir par ici) ou en randonnée (voir par ), j’ai fait le choix de Garmin avec des montres spécialisées pour le triathlon qui sont relativement robustes et surtout bien étanches. J’ai commencé avec le modèle Forerunner 205, que j’ai perdu lors d’une session de planche à voile avec le bracelet qui s’est cassé en navigation, puis je suis passé à la Garmin Forerunner 310XT, ses deux montres se pilotent très bien sous linux (voir cette page). Malheureusement ma dernière montre a pris l’eau lors d’une session récente en planche à voile. Au fil du temps dans l’action l’écran s’est ébréché dans un angle et je pense que l’eau est rentrée par là. Après 7 ans d’utilisation intensive, je considère qu’elle est quand même largement amortie. Du coup j’ai cherché sa remplaçante, en restant fidèle à Garmin et aux montres spécialisées dans le triathlon, je viens d’acheter une Garmin Forerunner 735XT dont on peut trouver un test par .

Par rapport aux précédents modèles, je suis très réservé sur la robustesse et l’aspect solidité, elle est franchement beaucoup plus light, ça ressemble davantage à une montre à mettre tous les jours qu’à une montre sportive. En planche à voile, je pense que je serai obligé de la mettre sous la manche de ma combinaison histoire de la protéger contre les chocs inhérents à toute pratique sportive. En revanche elle présente le gros avantage de disposer d’un SDK qui permet de personnaliser l’affichage, de créer ses widgets et ses champs de données. Une présentation de ce SDK est visible ici (en anglais).

Le SDK repose sur l’environnement de développement Eclipse qu’on installera très simplement sur Mageia en tapant

urpmi eclipse

On installe d’abord le plugin Connect IQ dans Eclipse. On lance d’abord Eclipse et on réalise les opérations suivantes :

  • dans le menu Help, on clique sur Choose Install New Software
  • on clique sur le bouton Add
  • on rajoute l’URL https://developer.garmin.com/downloads/connect-iq/eclipse dans le champ Location et on clique sur Add
  • on coche la case devant Connect IQ puis on clique sur Next
  • on accepte la licence et on clique sur Finish
  • le plugin Connect IQ s’installe et on confirme le reboot de l’application quand la fenêtre popup nous le demande

Un menu Connect IQ fait son apparition dans la barre de menu.

Passons maintenant à l’installation du SDK, on déroule les actions suivantes :

  • dans le menu Connect IQ, on clique Open SDK Manager
  • on choisit un répertoire pour sauvegarder les fichiers du SDK
  • les différentes versions du SDK s’affichent et on clique sur le bouton Download de la version la plus récente, dans le cas présent la version 3.1.9
  • on valide la licence en cliquant sur Agree
  • une fois que le téléchargement du SDK est terminé, on clique sur Yes quand on nous demande d’utiliser le SDK nouvellement téléchargé comme le SDK actif par défaut
  • on peut alors fermer la fenêtre SDK Manager qui reste accessible via les préférences d’Eclipse

Maintenant il y a deux petites manips à faire pour configurer le SDK, il faut notamment veiller à ce que le chemin au SDK soit bien défini dans les préférences dans le champ SDK Root Directory.

Il faut également créer une clé utilisateur à partir des préférences en choisissant l’emplacement puis en cliquant sur le bouton Generate.

Malheureusement le plugin et le SDK Connect IQ sont basés sur des bibliothèques relativement anciennes ce qui pose problème sur des distributions récentes de linux et en particulier pour ma Mageia 7.1. Du coup j’ai dû installer (dans l’ordre) les packages icu58-data-58.2-3.2.mga6, lib64icu58-58.2-3.2.mga6, lib64enchant1 et lib64geoclue0. Ensuite j’ai tapé un rpm -ivh –nodeps * dans un répertoire contenant les packages lib64javascriptcoregtk1.0_0-2.4.10-3.mga6, lib64webkitgtk1.0_0-2.4.10-3.mga6 et webkit1.0-2.4.10-3.mga6. J’ai récupéré les packages de la Mageia 6 sur le site http://fr.rpmfind.net/.

On va créer maintenant notre premier projet Hello world ! On crée le projet en cliquant sur File->New->Project on choisira Connect IQ Project.

A ce stade on va nous demander quel type d’application on veut créer, on a le choix entre :

  • Audio Content Provider Apps : application pour gérer les fournisseurs de contenu audio et personnaliser « l’expérience » audio
  • Data Fields : application pour personnaliser les champs de données
  • Devices App : application qui accède aux senseurs de la montre et qui permet de faire des traitements personnalisés, de se connecter à des services web et d’utiliser les interfaces de connexion
  • Widget : ce sont des applications fournissant une fonctionnalité particulière qui sont accessibles à partir du menu widget de la montre
  • Watch face : personnalisation de l’affichage de la montre

Je choisis une personnalisation de l’affichage de la montre, j’indique le numéro de version de mon programme et la version minimum du SDK (je laisse la version par défaut).

je choisis alors la montre cible, attention si vous avez indiqué précédemment une version trop récente du SDK vous risquez de ne pas avoir accès à tous les types de montre.

On sélectionne ensuite les permissions requises pour l’utilisation de l’application.

Le projet par défaut s’affiche alors dans Eclipse avec un canevas de fichier source, le détail de l’API peut être trouvé et un forum de discussion par ici.

En l’état sans modifier le code, on peut générer le code en cliquant sur le bouton Run As… on choisit Connect IQ App.

Le simulateur se lance alors et une fenêtre popup avec la montre s’affiche avec l’écran personnalisé qui est basique dans le cas présent. Si vous avez une erreur de connexion au simulateur sans que cette fenêtre s’affiche, ça vient d’un problème de version de bibliothèques (voir plus haut).

Allons maintenant plus loin et téléchargeons cet affichage personnalisé directement sur la montre physique. On va d’abord créer l’image en cliquant sur Connect IQ -> Build for Device Wizard… je choisis mon projet, le type de montre, je laisse la version du SDK, je pointe vers la clé développeur (voir plus haut) et j’indique un chemin pour sauvegarder l’image.

Maintenant je branche physiquement ma montre au port USB, je déplace mon image hello-world.prg dans le répertoire GARMIN/APPS je démonte le tout.

et voilà ce que ça donne sur la Garmin, pour revenir en arrière, pas de panique ! Il suffit de rebrancher le Garmin sous Linux et de supprimer le fichier hello-world.prg.

https://olivier.hoarau.org

Voilà, voilà, maintenant y a plus qu’à me remettre à la programmation, j’envisage de rajouter notamment l’affichage de la marée que je récupèrerai par bluetooth. Je compte bien évidemment partager le tout.

Laisser un commentaire