да. я про это и говорю. парсер тут не нужен :) struct message { uint8_t message_type; uint8_t pin; uint8_t state; uint8_t delay; uint8_t crc8; }; вот такие пакеты шли из питона. и читай в МК напрямую в структуру. можно для надёжности добавить байты начал датаграммы
Комментарии: 16
Anonim
из питона структуры можно слать? неразу неделал
Cyberzx
да, конечно
Cyberzx
https://docs.python.org/3/library/struct.html
Anonim
года 4 на птоне работаю )) не разу подобным не балывался)) но я маленько другое пишу в основном))
Tiny
а паддинга структуры не будет случайно?
Cyberzx
будет. надо либо его выключить. либо читать не sizeof структуры, а только полезные данные
Anonim
это как это про что ?
Tiny
я про то лишь бы memcpy нормально сработал
Anonim
он может не сработать ?
Tiny
может, если компилятор раскидает поля в памяти по своему
Cyberzx
не совсем так
Tiny
я понимаю что он может в конец структуры падить но это специфика компилятора если не ошибаюсь не помню такого в стандарте, поэтому и предположил что небезопасно (я хз какая версия компилятора как будет падить)
Cyberzx
В языке Си, поля в структурах компилятор может выравнивать по размеру этих полей. Выравнивает он вставляя пустые байты между полями.
Tiny
верно
Cyberzx
Поэтому если ты читаешь в структуру из бинарного потока данных или пишешь в этот поток из структуры, надо паддинг отключать
Tiny
более того, он может мерждить даже поля (например биты если структура хранит вроде) ну это если есть доступ к записи в поток