Arduino:Библиотеки/Bridge/Класс Bridge/transfer()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция transfer()[1]

Передает группу данных и используется другими функциями для коммуникации между микроконтроллером ATmega32U4 и процессором Linux.

Обе стороны Bridge (т.е. Linux и AVR) используют для передачи сообщений друг другу последовательный протокол. Вызов функции Bridge.transfer() отправляет сообщение на Linux, а затем ждет ответа. Кроме того, эта функция проверяет целостность пакета и отбраковывает пакеты, содержащие ошибки.

Также в Bridge.transfer() реализован механизм повторной передачи данных – на тот случай, если Linux не прислал ответ в течение 100 миллисекунд после отправки сообщения или если пакет содержит ошибку.

Повторная передача сообщения будет повторяться, пока Linux не даст ответ.

Синтаксис

Bridge.transfer(buff_1, len_1, buff_2, len_2, buff_3, len_3, rxBuff, rxLen)
Bridge.transfer(buff_1, len_1)
Bridge.transfer(buff_1, len_1, rxBuff, rxLen)
Bridge.transfer(buff_1, len_1, buff_2, len_2, rxBuff, rxLen)

Параметры

buff_N – буфер для массива N, содержащий сообщение, которое вы хотите отправить. Функция Bridge.transfer() поддерживает до трех буферов
len_N – количество элементов, содержащихся в buff_N
rxBuff – вспомогательный буфер, который передается в виде параметра, где будет храниться ответ от Linux
rxLen – размер буфера rxBuff

Что возвращает

Размер буфера, содержащего ответ от Linux. Если rxLen будет короче размера ответа, функция вернет rxLen, чтобы сообщить, что буфер rxBuff полон.

См.также

Внешние ссылки