Outils pour utilisateurs

Outils du site


divers:nabaztag:protocole_version_http

Protocole version HTTP

<note warning> Le Lapin étudié est un Nabaztag:Tag : version avec le nombril (micro et lecteur RFID).

Le bytecode utilisé est celui du projet OpenNab. Ce n'est pas la dernière version éditée par Violet puisqu'on ne veut pas bosser avec XMPP, mais avec HTTP seulement. Il s'agit de celui du projet OpenNab. Ce bytecode a été modifier pour utiliser des URLs adaptées au projet OpenNab qui utilise PHP:

  • /locate.php
  • /vl/p4.php
  • /vl/record.php
  • /vl/rfid.php

</note>

NabazTag to Server

Les Connexions

Chargement du bytecode

Après allumage, le lapin se connecte pour charger son Bytecode, au serveur dont l'adresse est renseignée dans la configuration du Lapin.

http://adresse.configuration/bc.jsp

"GET /vl/bc.jsp?v=0.0.0.10&m=00:21:85:ba:61:95&l=00:00:00:00:00:00&p=00:00:00:00:00:00&h=4 HTTP/1.0"
  • m (xx.xx.xx.xx.xx.xx): Adresse MAC (Ethernet) du Lapin.
  • v (n.n.n.n): version du Firmware ?
  • h (n): version du Hardware ?
  • l (xx.xx.xx.xx.xx.xx): ?
  • p (xx.xx.xx.xx.xx.xx): ?

En réponse on envoie au Lapin le Bytecode que le Lapin doit exécuter.

Obtention de l'adresse du terrier

La seconde connexion du Lapin lui sert à retrouver l'adresse de son terrier.

http://adresse.configuration/locate.jsp

"GET /vl/locate.php?sn=002185ba6195&h=4 HTTP/1.0"
  • sn (xxxxxxxxxxxx): Numéro de série du Lapin, en fait c'est l'adresse MAC sans les ':'.
  • h (n): version du Hardware ?

En réponse on envoie les adresses du serveur “Ping” et du serveur “Broad”.

ping 192.168.1.38:80
broad 192.168.1.38:80

Battements de coeur

http://adresse.du.terrier/p4.jsp

"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=0&h=4 HTTP/1.0" 200 54
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4 HTTP/1.0" 200 35
  • sn (xxxxxxxxxxxx): Numéro de série du Lapin, en fait c'est l'adresse MAC sans les ':'.
  • h (n): version du Hardware ?
  • v (n): version du Bytecode téléchargé.
  • st:
  • sd: Un événement a surgi sur le Lapin:
    • sd=0 : Lapin sonne son serveur
    • sd=1 : clic double du bouton
    • sd=3 : clic simple du bouton
    • sd>=8000: mouvement d'oreilles
  • tc: L'IDentifiant du programme (message) en cours. L'ID est encodé en Hexa (ex: tc=12d13c), alors que dans le message (programme) il était en décimal (ex: ID 1233212;).

Peut-être:

Comment reconnaitre le 1er Ping après allumage ?

Est-ce que la requête avec sd=0 et tc=0 peut-être considérée comme le 1er ping après allumage et les ping suivants avec sd=0 et tc=7fffffff ?

Connexion "rfid"

Connexion "record"

On peut enregistrer du son grâce au micro de Lapin.

"POST /vl/record.php?sn=002185ba6195&v=65808&h=4&m=0 HTTP/1.0"

Exemples

"GET /vl/bc.jsp?v=0.0.0.10&m=00:21:85:ba:61:95&l=00:00:00:00:00:00&p=00:00:00:00:00:00&h=4 HTTP/1.0" 200 51145
"GET /vl/locate.php?sn=002185ba6195&h=4 HTTP/1.0" 200 47
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=0&h=4 HTTP/1.0" 200 54
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4 HTTP/1.0" 200 35
"GET /vl/api.php?sn=002185ba6195&play=1 HTTP/1.0" 200 47
"POST /vl/api_demo/index.php HTTP/1.1" 200 2882
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4 HTTP/1.0" 200 97
"GET /broad/simpleplay/0/0/0/0/1.mp3 HTTP/1.0" 404 305
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=2&tc=1&h=4 HTTP/1.0" 200 54
"GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4 HTTP/1.0" 200 35

Server to NabazTag

Les Messages

Interval de communication (type=0x03)

[03,1]78

Ambience (type=0x04)

Leds, Ears, Service

[04,23]7fffffff00000000000000000000000000000000000000

Download Message (type=0x05)

Reboot (type=0x09)

Message (type=0x0a)

Exemples

1er Ping après allumage :

/vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=0&h=4
packetHead: 7f
block[1]: [MessageBlock,0a,15]ID 2147483647;
block[2]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
block[3]: [Block,03,1]0a
packetTail: ff0a
/vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4
packetHead: 7f
block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
block[2]: [Block,03,1]0a
block[3]: [MessageBlock,0a,0]

Weather (1) to Storm (5):

AbientBlock->SetServiceValue() Override ambient 1 to 5
block[1]: [AmbientBlock,04,23]7fffffff01050000000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,0]

Weather (1) to Storm (5) and Market (2) to Neutral (3):

AbientBlock->SetServiceValue() Override ambient 1 to 5
AbientBlock->SetServiceValue() Override ambient 2 to 3
block[1]: [AmbientBlock,04,23]7fffffff01050203000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,0]

Market (2) to Neutral (3):

AbientBlock->SetServiceValue() Override ambient 2 to 3
block[1]: [AmbientBlock,04,23]7fffffff02030000000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,0]

Taichi

AbientBlock->SetServiceValue() Override ambient 14 to 255
block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,0]

Play Dice:

GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=3&tc=7fffffff&h=4
 addToLog(4) >>> dice: set state [message]
 addToLog(3) >>> dice: rolling dice and getting 2
 block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
 block[2]: [Block,03,1]78
 block[3]: [MessageBlock,0a,108]ID 1233212;MU broadcast/vl/plugins/dice/files/fr/get.mp3;MW;MU broadcast/vl/plugins/dice/files/fr/2.mp3;MW;
GET /vl/plugins/dice/files/fr/get.mp3
GET /vl/plugins/dice/files/fr/2.mp3
GET /vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=2&tc=12d13c&h=4
 addToLog(4) >>> dice: set state [message]
 addToLog(3) >>> dice: end of message ; waiting for another one
 block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
 block[2]: [Block,03,1]78
 block[3]: [MessageBlock,0a,15]ID 2147483647;

Play a MP3 URL:

simpleplay: ping type=0
simpleplay: ping CurrentID=2147483647
simpleplay: media reference=4792979
simpleplay: now playing http://192.168.1.38:81/vl/plugins/dice/files/en/4.mp3
/vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=0&tc=7fffffff&h=4
block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,77]ID 4792979;ST http://192.168.1.38:81/vl/plugins/dice/files/en/4.mp3;PL 1;MW;

simpleplay: ping type=2
simpleplay: ping CurrentID=4792979
simpleplay: media reference=4792979
simpleplay: http://192.168.1.38:81/vl/plugins/dice/files/en/4.mp3 reached the end ; back to default state
/vl/p4.php?sn=002185ba6195&v=65808&st=1&sd=2&tc=492293&h=4
block[1]: [AmbientBlock,04,23]7fffffff0eff0000000000000000000000000000000000
block[2]: [Block,03,1]78
block[3]: [MessageBlock,0a,15]ID 2147483647;
divers/nabaztag/protocole_version_http.txt · Dernière modification: 19/05/2012 00:18 (modification externe)