Hooks

Un hook permet à l'utilisateur de définir une commande shell qui sera exécutée à un moment précis du programme.
Ils sont accessibles via le menu Settings.

Voici quels sont les hooks qui seront disponible avec cette première version:

 

Chaque hook est un script shell qui peut-être modifié directement depuis le menu ci-dessus. Certains hooks recoivent un ou plusieurs arguments que vous pouvez utiliser, voir tableau ci-dessous:

Hook Moment de déclenchement Valeur de $1 Exemple d'utilisation
Program startup Lancement de Jarvis    
Start listening Jarvis écoute une commande de l'utilisateur   Allumer une led
Stop listening Jarvis arrête d'écouter (silence entendu, timeout, ...)   Eteindre une led
Listening timeout Jarvis attendait une commande mais rien n'a été entendu    
Entering command mode Hotword entendu, Jarvis entre en mode conversation et va écouter / exécuter une ou plusieurs commandes   Mettre en pause la musique / TV
Start speaking Jarvis commencer à parler Phrase énoncée  
Stop speaking Jarvis a fini de parler    
Exiting command mode Jarvis sort du mode conversation, et se remet en attende du hotword   Remettre la musique / TV
Program exit Jarvis est quité ou si une erreur est rencontrée
Pour quitter Jarvis depuis une commande et déclencher ce hook, utiliser `jv_exit` et non pas `exit`
Code retour  

Utilisation

La grande majorité de ces hooks sont utilisé par le plugin Jarvis-Face qui affiche un visage animé à l'écran en fontion des différents états de Jarvis.

Vous pouvez par exemple utiliser une diode pour indiquer l'état de Jarvis:

image

  • Diode éteinte: Jarvis n'est pas lancé (ou a planté)
  • Diode clignotante: Jarvis attend que le mot clé soit prononcé
  • Diode allumée: Jarvis est en écoute d'une commande

Disons que vous avez un script my_led.sh qui vous permet de contrôler une diode en lui passant off on ou blink en paramètre.

Il suffirait de configurer les hooks suivants:

  • program startup: my_led.sh blink
  • entering command mode: my_led.sh on
  • exiting command mode: my_led.sh blink
  • program exit: my_led.sh off

Ce post explique comment contrôler 3 LED et donner un visage à Jarvis:

Ce post explique comment contrôler la diode d'un Kinect pour indiquer l'état de Jarvis.