Table of Contents
Nabaztag vers Serveur
Le Nabaztag communique avec son serveur uniquement en HTTP. Cela diminue les pré-requis pour monter un serveur V1. Seulement, le Nabaztag ne travaille pas par noms d'hôtes (via la directive HTTP “Host: URL” ) mais par IP, il est donc assez improbable de pouvoir l'utiliser sur des hébergeurs gratuits…
Type d'URL appelée par le Nabaztag: /vl/FR/p3.jsp?sn=MAC_ADDRESS&ex=000000000000&v=20&st=01&tc=00000001
Les différents arguments peuvent changer suivant les actions mais en fixes restent:
- sn Cela correspond à l'adresse MAC du Nabaztag
- v Version du firmware installé sur sur le Nabaztag (Je pense qu'on ne peut pas changer ce firmware là sans reprogrammer le PIC présent sur le PCB via le connecteur ICSP)
- ex Toujours null pour mon lapin, utilité inconnue
On peut trouver d'autres arguments suivant les actions effectuées:
- ts
- tn <note tip>A étudier et compléter</note>
Les arguments utiles sont décrits plus en détail à la suite
Argument st
Il peut prendre deux valeurs
- 00 Première requête
- 01 Par la suite
Cet argument permet de déterminer si le lapin vient juste de (re)booter ou pas. A part ça, je ne lui vois pas d'autre utilité
Argument sd
C'est l'argument que je trouve le plus utile, il permet de déterminer quels événements ont été déclenchés ou terminés sur le lapin
- 0001 Double clic
- 0002 Événement terminé (type lecture de fichier Audio, permet de revenir sur le bytecode général)
- 0003 Simple clic
- 0004 Clic Long
- 8XXX ou 9XXX Mouvement manuel des oreilles
Serveur vers Nabaztag
Après avoir reçu une requête de la part du Nabaztag le serveur doit répondre avec une trame si il y a une action à effectuer, sinon, une page vide suffit à contenter le Nabaztag.
<note important>Ces trames sont ici détaillées en Hexadécimal (type hexdump
), mais il faut les convertir en octets avant de l'afficher pour le Nabaztag, (envoyer la trame en texte ne fonctionnera pas)</note>
Trame type 03
Cette trame permet de régler le délai d'attente entre deux requêtes (aussi désignées par PING) du Nabaztag vers le Serveur.
Une trame 03 complète est 7F0300000101FF
En détail:
7F
Header
03
Type
000001
Longueur du message
01
Valeur
FF
Fin du message
La valeur est donnée en dizaines de secondes ( 01 = 10s, 02 = 20s …). La valeur par défaut est 03. A confirmer
Trame type 04
Cette trame permet d'activer les différents services du bytecode en fonctionnement sur le Nabaztag. C'est la trame la plus courante pour les opérations simples.
Voir la page dédiée Les services lumineux du V1
Trame type 05
Cette trame permet d'envoyer un nouveau bytecode au Nabaztag, remplacant le bytecode en fonctionnement, sans reboot du Nabaztag.
Ces trames sont de la forme 7F05000040616D626572000000010100000029000101FFA80105030404A7458004A0001B7E04000301FFA80105030404A7458004A0002E7E049C001100000000506D696E64
En détail
7F
Header
05
Type
000040
Longueur de la trame type 05
616D626572
amber
00000001
Trame ID
01
Flag de Transition (01: transition immédiate)
00000029
Taille du programme/bytecode
00......11
Programme assemblé
00000000
Nombre de fichiers audio inclus
......
Ensuite vont les données des fichiers audio, il n'y en a pas sur cet exemple
50
Checksum de la Trame 05
6D696E64
mind
FF
Fin de la Trame
Il est possible avant le FF
final d'ajouter des trames d'autres types (sans les 7F
initiaux et FF
finaux)
Trame type 06
<note tip>A confirmer et compléter</note>
Cette trame permet de répéter le dernier message envoyé au Nabaztag. Sur un firmware version 20, elle ne semble pas nécessaire pour les Trames, peut-être pour les fichiers Audio.
Une trame 06 complète est: 7F060000047FFFFFFFFF
En détail:
7F
Header
06
Type
000004
Longueur du message
7FFFFFFF
Valeur
FF
Fin du message