en to ru translation catalogue (18 entries)

note: type: Title-text
en: Remote control #2
ru: Дистанционное управление #2

note: type: Resume-text
en: Remote control a robot using an information exchange post, so it will pass over the 6 blue waypoints.
ru: Написать программу для бота так, чтобы он проехаться по 6 синим отметкам, используя для этого пост обмена информацией как пульт дистанционного управления.

note: type: \b; header
en: Exercise
ru: Упражнение

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:
ru: Написать программу для бота так, чтобы он проехаться по 6 синим отметкам, используя для этого <a object|exchange>пост обмена информацией</a> как пульт дистанционного управления.
    Что потребуется:

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.
ru: <a object|botgr>Колесный сборщик</a> без батареи.

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.
ru: <a object|exchange>Пост обмена информацией</a> - для приема и передачи информации.

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.
ru: <a object|bottr>Тренировочный бот</a>, который будет ждать комманды от поста. Бот уже заранее запрограммирован.

note: type: Plain text
en: An information exchange post stores "name/value" couples. To control the "slave" robot we use two couples:
ru: Пост обмена информацией хранит данные в виде "name/value"(имя/значение) только парами. Для управления ботом нам потребуется две таких пары :

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"
ru: Параметр #1 будет "двигать", а параметр #2 будет "поворачивать". Параметром(#2) будут являться расстояние или угол поворота. Для примера продвинемся на 20 метров вперед:
    <c/><s/>	<a cbot|send>send</a>("order",  1, 100);  // даем команду "двигаться"

note: type: Source code
en: 	<a cbot|send>send</a>("param", 20, 100);  // distance 20 meters
ru: 	<a cbot|send>send</a>("param", 20, 100);  // расстояние 20 метров

note: type: Plain text
en: These two instruction send following 2 pieces of information to the exchange post:
    <c/>    order=1
        param=20
ru: Эти две инструкции необходимо передать на пост последними:
    <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
ru: Бот получает информацию и выполняет программу. Как только данные были получены, он удаляется от поста. После того, как программа начала выполняться главный бот будет ждать, пока управляемый бот не завершит задания. Только после этого он отправит ему другую информуцию. Это делается путем тестирования.
    Просто напишите:
    <c/><s/>	while ( <a cbot|testinfo>testinfo</a>("order", 100) )  // ждать, пока работа закончится

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)
ru: Для наиболее удобной записи <a cbot|function>функции</a> <code>SendToPost</code>, можно применить такую программу:
    <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);
    	}
    }
ru: {
    	send("param", param, 100);  // Отправить параметр
    	send("order", order, 100);  // Отправить приказ
    
    	while ( testinfo("order", 100) )  // wait for end of work
    	{
    		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);
ru: Для движения на 20 метров вперед, вы должны написать в главной программе вот это:
    <c/><s/>	SendToPost(1, 20);  // move(20);

note: type: Plain text
en: This is the route the robot must travel through:
ru: Этот маршрут робот должен пройти так:

note: type: \t; header
en: See also
ru: Смотри также

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
ru: <a cbot>Язык CBOT</a>, <a cbot|type>Переменные</a> и <a cbot|category>Категории</a>.
