да. я про это и говорю. парсер тут не нужен :) struct message { uint8_t message_type; uint8_t pin; uint8_t state; uint8_t delay; uint8_t crc8; }; вот такие пакеты шли из питона. и читай в МК напрямую в структуру. можно для надёжности добавить байты начал датаграммы

Комментарии: 16

  1. Anonim

    из питона структуры можно слать? неразу неделал

  2. Tiny

    а паддинга структуры не будет случайно?

    • Cyberzx

      будет. надо либо его выключить. либо читать не sizeof структуры, а только полезные данные

      • Anonim

        это как это про что ?

      • Tiny

        я про то лишь бы memcpy нормально сработал

        • Anonim

          он может не сработать ?

          • Tiny

            может, если компилятор раскидает поля в памяти по своему

            • Cyberzx

              не совсем так

              • Tiny

                я понимаю что он может в конец структуры падить но это специфика компилятора если не ошибаюсь не помню такого в стандарте, поэтому и предположил что небезопасно (я хз какая версия компилятора как будет падить)

                • Cyberzx

                  В языке Си, поля в структурах компилятор может выравнивать по размеру этих полей. Выравнивает он вставляя пустые байты между полями.

                  • Tiny

                    верно

                    • Cyberzx

                      Поэтому если ты читаешь в структуру из бинарного потока данных или пишешь в этот поток из структуры, надо паддинг отключать

                      • Tiny

                        более того, он может мерждить даже поля (например биты если структура хранит вроде) ну это если есть доступ к записи в поток

Не нашли ответ?

Вам также может быть интересно