Affichage des articles dont le libellé est v1. Afficher tous les articles
Affichage des articles dont le libellé est v1. Afficher tous les articles

jeudi 31 mai 2012

Nabaztag V1 : Kit serveur


Voici donc un premier kit pour monter un service web (php) de type ping pour les Nabaztag V1 (1ère génération) . Télécharger le Zip

Ce kit me permet de "gérer" actuellement 700 v1.

Pour améliorer le service et créer de nouveaux modules en fonction de vos besoisn, il faudra vous (re)plonger dans l'assembleur pour générer de nouveaux bytecodes. Sur le v1, les bytecodes sont chargeables/déchargeables à la volée pour des besoins ponctuels. Se rapprocher des sources Violet sur le Nabz v2 qui comprennent aussi une partie dédiée aux v1 avec des exemples de fichiers assembleurs (Violet\Serveurs\OS\net\violet\platform\vasm).

La doc d'origine de Violet sur l'assembleur du v1 est incluse dans le zip. Elle est aussi sur Google Drive.

Voir aussi le post sur le Boot du V1.

Tuto rapide :
  • Penser à mettre la redirection /vl/FR/p3.jsp vers le p3.php (dans le setup du v1, la première requête effectuée par le lapin est de la forme GET /vl/FR/p3.jsp?sn=00xxxxxxxxxx&ex=000000000000&v=20&st=00&tc=00000001 HTTP/1.0). La requête se fait sur l'ip du serveur (donc exit les serveurs mutualisés)... Pas de pb pour un serveur local.
  • Dans le fichier config.php, indiquer le chemin du répertoire de base : define('V1_BASE_DIR', '/full_path_to_www_root/');
  • Le coeur du service est le script p3.php (que vous pouvez d'ailleur renommer).
  • Je mets aussi à dispo ma classe php pour v1 qui facilite l'encodage des trames de bytecodes et le chargement à la volée des fichiers sons déjà au format adpcm.
  • Le plus galère, c'est le format des fichiers sons en adpcm (4bits). Je mets à dispo un utilitaire sous Win pour transformer des fichiers wav en adpcm2/4 bits (Convertisseur Wav2Adp). Voir aussi l'article de SpritesMods.com. Les fichiers convertis sont à stocker dans le rép sound. Pour convertir des mp3, les passer d'abord en wav (8ou16khz 8bits) avec un convertisseur standard puis ensuite en adpcm avec le prg joint. Le v1 sait aussi jouer les fichiers midi. On peut aussi se rapprocher de RedoX qui a ré-écrit un convertisseur en C.
  • Dans le rép conf, sont stockés les fichiers de configuration des Lapins, au cas où l'on déciderait de les personnaliser au travers d'un front-office.

Voir aussi le blog sur le boot du v1
Plus d'infos sur le forum Nabaztag.

samedi 4 décembre 2010

Nabaztag V1 : Boot


Nabaztag V1
Contrairement au v2, le Nabaztag V1 n'a pas de "Boot_Code" chargé lors son démarrage. Il reçoit du serveur distant des paquets de type "pseudo assembleur" (bytecode) à intervalles réguliers.

Démarrage du Nabaztag v1 :
Demande (GET HTTP/1.0) du ping à intervalle régulier vers un serveur de type Violet (ici p.nabaztag.com)
GET http://188.165.120.132/vl/FR/p3.jsp?sn=0090xxxxxxxx&ex=000000000000&v=20&st=00&tc=00000001 HTTP/1.0
User-Agent: VIOLET
Pragma: no-cache
Le serveur répond en renvoyant une trame (packets), un ensemble de messages, au format attendu par le v1.
Si la première requête reste sans réponse, la seconde peut avoir le format suivant :
GET http://188.165.120.132/vl/FR/p3.jsp?sn=00904BBDAA81&ex=000000000000&v=20&st=00&ts=00000000&sd=0002&tc=00000001 HTTP/1.0
User-Agent: VIOLET
Pragma: no-cache

  • Paramètres :
sn : S/N du V1 (adresses MAC)
ex : ?
v : version du firmware (souvent 1.4 ou 2.0)
st : 00 lors du boot, 01 ensuite.
sd : statut du Tag (cf instruction vasm SEND r0, r1)
tc : id du bytecode courant (bc msg_type 05)
tn : id du bytecode précédent
ts : copie de tn ?

Note : Malgré avoir indiqué dans son setup le domaine p.nabaztag.com, on s'aperçoit que le V1 tente un get sur l'ip avec /vl/FR/xxx. Cela pose d'emblée un problème pour les hébergements mutualisés... On note l'absence du tag HOST dans la séquence du GET. Si l'on ne dispose pas d'un serveur dédié, la première chose à faire pour les tests est donc de monter un serveur web en local. NginX fera l'affaire.

Toutes ces informations sont le résultats de (longues) heures d'analyse des trames échangées, sans de réelles documentations à disposition... Elles peuvent donc être sujettes à des corrections au fil du temps...

Voir aussi l'Exemple de serveur pour v1

A noter :

Nabaztag v1 vasm
Nabaztag.magicmonkey.org
ploki.info
ADPCM2 en/decoding
Wikipédia