Arduino:Библиотеки/Bridge/Класс Bridge/transfer(): различия между версиями
Материал из Онлайн справочника
Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} |
Версия от 11:10, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция 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 полон.