en to fr translation catalogue (22 entries)

note: type: Title-text
en: Remote control #2
fr: Télécommande #2

note: type: Resume-text
en: Remote control a robot using an information exchange post, so it will pass over the 6 blue waypoints.
fr: Télécommandez un robot par le biais d'une station relais.

note: type: ScriptName-text
en: remote
fr: Remote

note: type: \b; header
en: Exercise
fr: Exercice

note: type: Plain text
en: Remote control a robot using an <a object|exchange>information exchange post</a>, so it will pass over the 6 blue waypoints.
    The main actors of this exercise are:
fr: Télécommandez un robot par le biais d'une <a object|exchange>station relais</a> pour qu'il passe par les 6 croix bleues. Les 3 acteurs principaux de cet exercice sont:

note: type: Bullet: '1)'
en: A <a object|botgr>wheeled grabber</a> robot without an energy cell. This is the master you have to program.
fr: Un <a object|botgr>robot préhenseur</a> sans batterie, donc immobile. C'est lui l'émetteur que vous devez programmer.

note: type: Bullet: '2)'
en: An <a object|exchange>information exchange post</a> that receives information from the master and then transmits it to the slave.
fr: Une <a object|exchange>station relais</a> qui reçoit des informations de l'émetteur puis les transmet au récepteur.

note: type: Bullet: '3)'
en: A <a object|bottr>practice bot</a> which waits for orders from the exchange post. This robot has already been programmed.
fr: Un <a object|bottr>robot d'entraînement</a> qui attend les ordres de la station. Ce robot est déjà programmé.

note: type: Plain text
en: An information exchange post stores "name/value" couples. To control the "slave" robot we use two couples:
fr: Une station relais stocke des couples "nom/valeur". Pour commander le robot esclave, nous avons choisi d'utiliser deux couples:

note: type: Bullet: '1)'
en: name="order", value=order number
fr: nom="order", valeur=numéro de l'opération à effectuer

note: type: Bullet: '2)'
en: nom="param", valuer=parameter  for the operation
fr: nom="param", valeur=paramètre de l'opération

note: type: Plain text
en: Order  #1 means "move" and order #2 means "turn". The parameter is the distance to move or the turning angle. For example to make the slave move 20 meters write:
    <c/><s/>	<a cbot|send>send</a>("order",  1, 100);  // order "move"
fr: L'ordre #1 signifie "move" et l'ordre #2 signifie "turn". Le paramètre est la distance à avancer ou l'angle à tourner. Par exemple, pour demander au robot esclave d'avancer de 20 mètres, il faut écrire:
    <c/><s/>	send("order",  1, 100);  // ordre "move"

note: type: Source code
en: 	<a cbot|send>send</a>("param", 20, 100);  // distance 20 meters
fr: 	send("param", 20, 100);  // distance de 20 mètres

note: type: Plain text
en: These two instruction send following 2 pieces of information to the exchange post:
    <c/>    order=1
        param=20
fr: Ces deux instructions <code><a cbot|send>send</a></code> envoient les deux informations suivantes dans la station relais:
    <c/>    order=1
        param=20

note: type: Plain text
en: The slave robot waits for an order and executes it. Once the order has been executed by the slave, it removes the order from the exchange post. Once an order has been sent, the master must wait for the slave finishing the order before sending the next order. This is done by testing if the order is still inside the exchange post. Just write:
    <c/><s/>	while ( <a cbot|testinfo>testinfo</a>("order", 100) )  // wait for end of work
fr: Le robot esclave attend un ordre puis l'exécute. Lorsque l'exécution est terminée, il supprime l'ordre de la station relais. Après avoir envoyé un ordre, le robot émetteur doit donc attendre la disparition de l'ordre dans la station relais, signe que l'esclave a terminé sa tâche. Cela s'écrit ainsi, avec l'instruction <code><a cbot|testinfo>testinfo</a></code>:
    <c/><s/>	while ( testinfo("order", 100) )  // attendre la fin du travail

note: type: Plain text
en: As we must give more than one order its most convenient to write a <a cbot|function>function</a> <code>SendToPost</code>, that sends the order and wait for its completion:
    <c/><s/>void object::SendToPost(float order, float param)
fr: Comme il faudra donner plusieurs ordres, il est plus simple de créer une <a cbot|function>fonction</a> <code>SendToPost</code> qui se charge d'envoyer un ordre puis d'attendre son exécution:
    <c/><s/>void object::SendToPost(float order, float param)

note: type: Source code
en: {
    	send("param", param, 100);  // send the parameter
    	send("order", order, 100);  // send the order
    
    	while ( testinfo("order", 100) )  // wait for end of work
    	{
    		wait(1);
    	}
    }
fr: {
    	send("param", param, 100);  // envoyer le paramètre
    	send("order", order, 100);  // envoyer l'ordre
    
    	while ( testinfo("order", 100) )  // attendre la fin du travail
    	{
    		wait(1);
    	}
    }

note: type: Plain text
en: To move forward by 20 meters, you must write in the main program:
    <c/><s/>	SendToPost(1, 20);  // move(20);
fr: Pour donner l'ordre d'avancer de 20 mètres, il suffit alors d'écrire, dans le programme principal:
    <c/><s/>	SendToPost(1, 20);  // move(20);

note: type: Plain text
en: This is the route the robot must travel through:
fr: Voilà le parcours que le robot esclave doit effectuer:

note: type: Plain text
en: It's up to you to finish the programming.
fr: A vous de terminer le programme ...

note: type: \t; header
en: See also
fr: Voir aussi

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
fr: <a tpyta>Exercice précédent</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>.
