Если я хочу отправить данные в Arduino через последовательный порт, должен ли я отправить длинную строку сразу или отправить каждую переменную отдельно? - PullRequest
1 голос
/ 17 января 2020

Я хочу отправить разные типы данных на мой Arduino через последовательное соединение, используя python. Мне уже удалось отправить простые данные, такие как строки, по последовательной линии, и я анализирую данные в своем коде Arduino, но теперь я хочу отправить нечто похожее на структуру, содержащую два целых числа и строку.

I думал, что мне нужно просто собрать данные, которые я хочу отправить в виде строк, объединить их с токеном-разделителем и проанализировать эту длинную строку в моем коде arduino. Это обычный способ отправлять больше типов данных одновременно или лучше отправлять переменные отдельно?

1 Ответ

1 голос
/ 19 января 2020

Да, всегда есть риск потери байтов.

Но то, как вы это делаете, полностью зависит от того, какие данные вы отправляете. Например, если значения, которые вы отправляете, находятся в диапазоне от 0 до 255. Вы можете отправить значение одним байтом.

Если, с другой стороны, вы отправляете несколько значений или строк, то хорошей практикой является использование управляющие символы в таблице ASCII для обозначения начала последовательности, разделения и идентификации значений. Например, STX "value_id1" US "value" RS "value_id2" US "value" ... ETX

Если целостность значений очень важна, вы можете рассчитать контрольную сумму "CR C" для отправки по сообщению, чтобы получатель мог проверить ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...