Guide du développeur movescount / Suunto Ambit

Voilà près de 20 ans que je développe des programmes en tout genre et sur tout type de supports : ordinateurs bien sûr, mais aussi smartphone, télévision, et principalement des gros serveurs pour faire des sites web. Je ne parle même pas de mon expérience sur la programmation des Legos :). Tout ça pour vous dire qu’au delà de mon métier, le développement et la programmation font partie de mes passions.

Suunto en ouvrant sa montre au développeur externe permet à tous les développeurs d’ajouter des fonctionnalités à la Suunto Ambit (aussi bien la version 1 que la version 2S ou 2). Dans la tête d’un développeur, se dire qu’il peut écrire son propre programme donne une envie de créer et d’ajouter des fonctions qui manque à cette montre. Cette montre devient donc vite une montre dont les limites sont dictées uniquement par votre imagination… C’est donc en tant qu’utilisateur mais aussi développeur que j’explore les capacités de cette montre.

Après plusieurs applications créées et de nombreux tests, j’essaye de vous livrer un petit guide des possibilités en terme de développement sur cette montre.

Le principe

Suunto vous donne la possibilité d’afficher une donnée par application en plus des données disponibles. Vous pouvez donc créer une nouvelle vue avec une donnée calculée par votre programme. Cette nouvelle donnée est une calcul (soit simple soit complexe) à partir des données fournies par la montre.

En mode simple vous pouvez faire des calculs. Par exemple, calculer le temps restant pour finir le kilomètre en cours en fonction de votre vitesse instantanée ou avoir le temps final à l’arrivée de votre marathon en tenant compte de votre vitesse moyenne depuis le départ. Cela reste des multiplications, des divisions des variables disponibles sur la montre.

En mode avancé, vous pouvez rajouter des conditions (voir un peu plus loin) et faire des actions sur la montre : Faire un beep ou même allumer la lumière de la montre. Votre programme est appelé toutes les secondes et vous devez donner une valeur de retour qui sera affiché à l’écran.

L’affichage

Pour afficher des éléments sur l’écran de la montre il faudra installer votre application dans un mode sport et l’afficher sur une vue. C’est classique si vous utilisez l’App Zone, vous en avez l’habitude et cliquez sur le bouton « Enregistrer l’application ». Par contre, les applications que vous développez sont automatiquement enregistrer dans les paramètres de la montre.

A la base vous pouvez afficher 4 éléments : un entier, un nombre à virgule avec un chiffre après la virgule, un nombre à virgule avec deux chiffres après la virgule ou un temps.

Ensuite vous avez le droit à 6 caractères avant ou après la donnée que vous voulez afficher. 6 avant et rien après par exemple. Dans l’exemple, j’ai ajouté PRE avant et POS après mais vous auriez pu mettre PREFIX avant et rien après.

Quand vous êtes en mode avancée, il faut qu’à la fin de votre programme 3 variables soit positionnées :

  • RESULT : pour la données à afficher (vous ne pouvez pas changer le format en cours de programme donc c’est dans la création de l’application qu’il faut déterminer le type d’affichage de la donnée centrale)
  • prefix : la chaine de caractère qui s’affiche avant la donnée
  • postfix : la chaine de caractère qui s’affiche après la donnée

Donc notre exemple, ci-dessus notre programme se résumerait à

RESULT = 8.5 ;

prefix = « PRE »;

postfix = « POS »;

Portée et déclaration des variables

En plus des nombreuses variables disponibles SUUNTO_DURATION par exemple pour avoir le chronomètre. Vous pouvez déclarer vos propres variables. Ces variables seront globales mais non modifiables, vous ne pourrez pas faire un compteur par exemple. idéalement si vous voulez faire un programme et le tester plus facilement (un échauffement de 20 minutes c’est un peu long a tester à chaque fois donc je le met en variable et je descend a une minute pour les tests)

Appel des fonctions internes

En plus des nombreuses variables disponibles, vous pouvez appeler un certain nombre de fonction. Ne vous réjouissez pas de trop non plus impossible de récupérer une page sur internet par exemple. C’est des fonctions très basiques comme les fonctions trigonométriques ou mathématiques : puissance, racine carré, modulo, … Elles sont sockés dans un objet Suunto. Pour appeler, il faut demander Suunto.nom_fonction(); avec les différents paramètres.

RESULT = Suunto.mod(SUUNTO_DURATION,2); vous affichera 0 ou 1 si le nombre de secondes écoulées et paire ou impaire.

Et vous pouvez appeler Suunto.alarmBeep() pour faire sonner la montre et Suunto.light() pour allumer la lumière sur l’écran.

Gestion des conditions

Grand classique de la programmation le « If else » est repris dans la montre. Pour utiliser cette fonction, il faut juste avoir un peu de notion de logique, c’est souvent très basique.

Dans cette exemple, je mets un affiche de type temps et je change juste le prefix en mettant « Echauf  » pour les vingt premières minutes et ensuite j’affiche « Course ».

SUUNTO_DURATION donne le nombre de secondes depuis le lancement du chrono, si le nombre de secondes est plus petit que 1200 secondes (20 minutes) alors je mets « Echauf » sur l’écran sinon (1200 secondes ou plus) j’affiche « Course »

Si vous avez des questions, des problèmes n’hésitez pas à mettre un commentaire sur cet article. J’essayerai de vous répondre.

Guide Suunto