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

Материал из Онлайн справочника
Версия от 12:18, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


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

См.также

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