Dans le billet précédant je vous avais déjà parlé du serveur HTTP, c'est la pièce maîtresse du Tuxware, c'est un serveur d'architecture de type REST

Pour l'expérimenter entrez comme URL http://127.0.0.1:270/

http : c'est le protocole

127.0.0.1 : adresse IP de la machine sur laquelle est installé le TuxDroid, 127.0.0.1 c'est pour une utilisation sur la machine locale, mais vous pouvez le piloter à distance en tapant l'adresse IP de la machine.

270 : c'est le numéro du port auquel répond le serveur.

Le navigateur nous renvoie une page d'aide.

Qu'est ce qui c'est passé ?


L'URL à envoyé une requête "NULL" au serveur et le serveur nous à répondu avec un fichier XML sur ses possibilités, c'est le TuxDroid qui nous répond, le serveur est juste la pour nous aider à envoyer des requêtes.

Regardons de plus près le fichier XML retourné :

  • Des ressources.
  • Pour chaque ressource, ses fonctions utilisables.
  • Pour chaque fonction, le niveau requis et ses paramètres si nécessaire.

Par exemple:

Ressource Mouth (Bouche), fonction Open (Ouvre), niveau requis FREE_CLIENT, paramètre aucun

Les ressources disponibles :


  • Access - Accéder à une ressource
  • Attitune - Gestion de la lecture des fichiers attitunes, fonction charger, jouer ...
  • Sound flash - Gestion de la banque de sons internes
  • Spinning - Gestion de la rotation du TuxDroid, fonction tourner vers la droite, tourner vers la gauche ...
  • Status - Gestion des statuts
  • TTS - Gestion du synthétiseur vocal, fonction fixe le locuteur, le pitch, lecture d'un texte ...
  • Tuxup - Gestion du firmware
  • Wav - Gestion de la lecture des fichiers de type wav
  • js - JavaScript ?
  • Client - Gestion des clients du serveur
  • xsl - service xsl
  • Documentation  - log, services
  • Eyes - Gestion des yeux, fonction ouverture, fermeture ...
  • Flippers - Gestion des ailes, fonction lever, baisser ...
  • IR - Gestion de l'émetteur infra-rouge
  • IdleBehavior - Gestion du service IdleBehavior (comportement du TuxDroid quand il est dans état d'attente)
  • Leds - Gestion des leds des yeux, fonction clignotement, allumer, éteindre ...
  • Macro - ?
  • Mouth - Gestion de la bouche, fonction ouvre, ferme ...

En programmation nous utiliserons le même principe "Ressource.Fonction(paramètre)"


Comment écrire une requête ?



URL type :

http://adresse IP de la machine:port/niveau du client/ressource/fonction?paramètre

les paramètres doivent s'écrire sous forme "chaîne de requête" 

      exemple "text=Bonjour le monde" s'écrira "text=Bonjour%20le%20monde"


le niveau du client :
  • CLIENT_LEVEL_ANONYME = -1
  • CLIENT_LEVEL_FREE = 0
  • CLIENT_LEVEL_RESTRICTED = 1
  • CLIENT_LEVEL_ROOT = 2


exemple pour faire dire à Tux, installé sur ma machine locale, "Bonjour le monde"  on utilisera :

Adresse IP et port du serveur : 127.0.0.1:270
N° du client : 0
Ressource : TTS
Fonction : speak
paramètre : text=Bonjour%20le%20monde

URL = http://127.0.0.1:270/0/tts/speak?text=Bonjour%20le%20monde

Bonjour le monde, avec une voix anglaise, ce n'est pas génial

regardons la liste des locuteurs

http://127.0.0.1:270/0/tts/voices?

résultat : Bruno; Julie, Ryan, Heather (si vous avez comme moi les langues française et anglaise de chargées)

comme on veut parler français prenons un locuteur français (Bruno ou Julie)

Je vais prendre julie http://127.0.0.1:270/0/tts/locutor?name=Julie

maintenant si je relance http://127.0.0.1:270/0/tts/speak?text=Bonjour%20le%20monde

c'est Julie qui parle :-)


Type des paramètres :

<int8> entier sur 8 bits 0 à 256
<float> nombre flottant (avec virgule qui sera un point ici)
<string> chaîne de caractère
<True|False> Vrai | Faux

Attention au type Float un nombre entier s'écrit toujours avec une virgule exemple 2 s'écrit 2.0


Javasript


Pour voir l'utilisation du langage Javascript avec le serveur HTTP

http://127.0.0.1:270/mouth/


Liens :

Page du wiki