L'objet UClient possède une méthode send qui fonctionne comme printf:
client->send("motor on;");
for (float val=0; val<=1; val+=0.05)
client->send("neck'n = %f;wait (%d);", val, 50);
Vous pouvez également utiliser votre objet-client comme un flux si vous préférez cette manière typiquement C++:
client << "headPan = " << 12 << ";";
Il existe également une manière très pratique d'envoyer des blocs entiers de code URBI depuis votre programme C++, grâce à la macro URBI((...)):
URBI((
headPan = 12,
echo "salut" | speaker.play("test.wav") & leds = 1
));
Le texte brut entre les doubles parenthèses sera envoyé directement au premier client créé par votre programme, par défaut. Cela peut se régler en appelant urbi::connect(...). La première possibilité que nous avons abordée, celle employant la méthode send, est plus appropriée dans la plupart des cas et la macro URBI ne devrait servir qu'à envoyer des scripts d'initialisation en début de programme ou pour prototyper.
Gardez à l'esprit que vous pouvez toujours faire repartir votre robot sur des bases neuves (reboot virtuel) en lui envoyant la commande reset. Cela vous évitera les définitions multiples à chaque nouvelle exécution de votre client. Voilà pourquoi de nombreux programmes principaux débutent par client->send("reset;");.