Мы используем файлы cookie

и системы аналитики для улучшения работы сайта

  • БЛОГ
  • УЧЕБНИКИ
    • Электронные версии УМК по робототехнике
    • ОСНОВЫ РОБОТОТЕХНИКИ 5-6 КЛАСС
  • КВЕСТЫ
  • ПРОЕКТЫ
    • Подпроект 1
    • Подпроект 2
    • Подпроект 3
  • ЗАНЯТИЯ
  • НАПИСАТЬ АДМИНУ
  • ТУРНИРЫ
    • Junior Skills
    • Шагающие роботы
    • WRO-2016
    • Танковый биатлон
    • Кубок Губернатора
  • РАСПИСАНИЕ
  • Главная
    /
  • Решаем задачи
    /
  • /

(RobotC)

Рассмотроим пример передачи данных по сети между двумя контроллерами. Потребуется написать две программы: передатчик и приемник сообщений. Отправляющая программа передает значение датчика расстояния в принимающую программу со скоростью 10 отсчетов в секунду. Программа-приемник обрабатывает значения со скоростью 20 отсчетов в секунду. Поскольку сообщения обрабатываются более быстрыми темпами, чем они передаются, часть очереди сообщений будет пустой. Программа-получатель использует метод bQueuedMsgAvailable(), чтобы увидеть, когда появилось новое сообщение. Если сообщения нет, то она ничего не передает. Если есть сообщение, данные доступны в массиве messageParm[], а затем удаляются при помощи функции ClearMessage().

Программа-передатчик

# pragma config ( Sensor , S1 , Sonar , sensorSONAR )
task main () {             // основная зачада
int x1 , x2 , x3;
x2 =0;
x3 =0;
while ( true ) {
x1 = SensorValue [ Sonar ];         // запись значения датчика в переменную
sendMessageWithParms (x1 ,x2 ,x3 );         // отправка сообщения
wait1Msec (100);                 // задержка времени перед отправкой следующего сообщения
}
}

Программа-приемник

task main () {              // основная зачада
while ( true ) {
if ( bQueuedMsgAvailable () ) {              // если пришло новое сообщение
eraseDisplay ();                                      // очистить экран
nxtDisplayCenteredTextLine (3,"%d", messageParm [0]);   // вывод сообщения на экран
ClearMessage ();                                     // удаление сообщения
}
wait1Msec (50);         //   задержка времени перед обработкой следующего сообщения
}
}

Отметим, что в отправляющей программе x2 и х3 - фиктивные переменные. В данном конкретном случае только одно из трех доступных целых чисел необходимо. Мы установили два других параметра в ноль и игнорируем их.

 

(NXT-G)

На языке  NXT-G программа-передатчик не требует дополнительных параметров. Можно передавать только то значение, которое планируется использовать в дальнейшем.

Программа-приемник может выглядеть следующим образом.

Для вывода сообщения на экран оно переводится в текстовый формат, поскольку изначально передавалось число - значение расстояния с датчика.

    Отзывы
    08.01.2015
    Veanna
         
    What a great reoursce this text is.
    Добавить отзыв/Оставить заявку
         
    Заполните обязательное поле
    Введите код с картинки
    Необходимо согласие на обработку персональных данных
    Повторная отправка формы через:
    • БЛОГ
    • УЧЕБНИКИ
    • КВЕСТЫ
    • ПРОЕКТЫ
    • ЗАНЯТИЯ
    • НАПИСАТЬ АДМИНУ
    • ТУРНИРЫ
    • РАСПИСАНИЕ
    ×Убрать копирайт

    Сайт создан на 1C-UMI

    Работает на UMI.CMS

    Политика конфиденциальности

    Поделиться с друзьями: