Arduino:Библиотеки/Bridge/Класс Bridge/transfer(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{#setlogo:ArduinoCommunityLogo.png}}
 
{{Arduino панель перехода}}
{{Arduino панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}

Версия от 11:10, 8 июля 2023

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


Функция 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 полон.

См.также

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