Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
v1_communcation_serveur [2012/08/17 00:04]
redoxps créée
v1_communcation_serveur [2019/08/25 13:56] (current)
Line 1: Line 1:
 ====== Nabaztag vers Serveur ====== ====== 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:  Type d'URL appelée par le Nabaztag: 
 ''/vl/FR/p3.jsp?sn=MAC_ADDRESS&ex=000000000000&v=20&st=01&tc=00000001'' ''/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 ===== ===== Argument st =====
-  * **00** Au boot +Il peut prendre deux valeurs 
-  * **01** Après+ 
 +  * **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 ===== ===== 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   * **0001** Double clic
-  * **0002** Evenement terminé+  * **0002** Événement terminé (type lecture de fichier Audio, permet de revenir sur le bytecode général)
   * **0003** Simple clic   * **0003** Simple clic
   * **0004** Clic Long   * **0004** Clic Long
   * **8XXX ou 9XXX** Mouvement manuel des oreilles   * **8XXX ou 9XXX** Mouvement manuel des oreilles
- 
 ====== Serveur vers Nabaztag ====== ====== 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 ===== ===== 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 ===== ===== 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 [[v1_services|Les services lumineux du V1]]
 ===== Trame type 05 ===== ===== 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
 +
 +''7F05000040616D626572000000010100000029000101FFA80105030404A7458004A0001B7E04000301
 +FFA80105030404A7458004A0002E7E049C001100000000506D696E64''
 +
 +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 ===== ===== 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