Chapitre 7. Images et sons

Table des matières

Lire une valeur binaire
Affecter une valeur binaire
Attributs associés
Exemples d'opérations binaires

Jusqu'ici, nous n'avons cotoyé que des variables numériques, comme headPan.val. Cela n'est bien sûr pas suffisant pour transmettre images et sons. Certains devices, comme camera, micro ou speaker pour l'Aibo, sont des devices binaires. Dans ce cas, la variable device.val n'est pas une valeur numérique mais une valeur binaire.

Lire une valeur binaire

Vous avez certainement déjà tenté d'évaluer l'une de ces variables binaires:

camera;
[139464:notag] BIN 5347 jpeg 208 160
.................5347 bytes.................

micro;
[139464:notag] BIN 2048 wav 2 16000 16 1
.................2048 bytes.................

URBI préfixe chaque donnée binaire d'un en-tête binaire commençant par le mot-clé BIN, suivi de la taille de la donnée (en octets ou bytes) et un mot-clé indiquant le type de la donnée. Certains paramètres optionnels, comme la taille de l'image, la fréquence d'échantillonnage, le status mono ou stéréo d'un son peuvent suivre. Ensuite, après un retour à la ligne, la donnée binaire en elle-même est retournée (affichée ci-dessus comme une série de points ....), ce qui peut embrouiller un client telnet mais pas un client logiciel URBI [7] .

Ce que l'on appelle un client logiciel est un client ou un composant écrit en C++ ou Java, comme décrit dans le chapitre La liburbi en C++. C'est la manière habituelle de gérer les données binaires quand on souhaite traiter un signal avec URBI.



[7] URBI Remote comprend les en-têtes URBI, affiche les images et lit les sons, en tenant compte du type.