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%20mondeBonjour 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=Juliemaintenant si je relance
http://127.0.0.1:270/0/tts/speak?text=Bonjour%20le%20mondec'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
JavasriptPour voir l'utilisation du langage Javascript avec le serveur HTTP
http://127.0.0.1:270/mouth/Liens :Page du wiki