Написать Struct, используя библиотеку ArduinoBLE

bluetooth ble

Здравствуйте, я пытаюсь отправить несколько структур, таких как:

typedef struct __attribute__ ((__packed__)) myohw_command_set_mode {
    myohw_command_header_t header; ///< команда == myohw_command_set_mode. размер полезной нагрузки = 3.
    uint8_t emg_mode;              ///< Режим датчика ЭМГ. См. myohw_emg_mode_t.
    uint8_t imu_mode;              ///< режим ИМУ. См. myohw_imu_mode_t.
    uint8_t classifier_mode;       ///< Режим классификатора. См. myohw_classifier_mode_t.
} myohw_command_set_mode_t;

На другое устройство через BLE с помощью библиотеки Arduino BLE. У меня сервисы и характеристики все настроены правильно. Моя проблема в том, что функция Arduino BLE .writeValue() ожидает некоторые определенные форматы, и я не совсем уверен, что это лучший способ преобразовать эту структуру в один из них.

  int writeValue(const uint8_t value[], int length);
  int writeValue(const void* value, int length);
  int writeValue(const char* value);
  int writeValue(uint8_t value);
  int writeValue(int8_t value);
  int writeValue(uint16_t value);
  int writeValue(int16_t value);
  int writeValue(uint32_t value);
  int writeValue(int32_t value);

Какой формат следует использовать? И как лучше всего преобразовать Struct в формат?

Спасибо,

, 👍0

1 ответ


Лучший ответ:

0

Какой формат следует использовать?

int writeValue(const uint8_t value[], int length);

Как лучше преобразовать Struct в формат?

writeValue((uint8_t *)&myStruct, sizeof(myStruct));
,