C/C++, документирование структуры внутри структуры для Doxygen
Я новичок в doxygen. Я пытаюсь задокументировать некоторые библиотеки для нашего модуля Onethinx LoRaWAN. Мы используем структуру внутри структуры внутри объединения для передачи некоторых данных между двумя ядрами (ARM Cortex M4 и M0+). Конструкции упакованы, чтобы использовать как можно меньше места.
typedef union {
struct __attribute__ ((__packed__)) {
struct __attribute__ ((__packed__)) {
bool Confirmed : 1; //!< Conformation of the uplink message
uint8_t : 7; //!< Reserved, do not use
Radio_DataRate_e DataRate : 8; //!< LoRaWAN Send data rate
Radio_TXpower_e Power : 8; //!< LoRaWAN Send output power
uint8_t FPort : 8; //!< Port Field for distinguishing different messages (0 = reserved for MAC commands)
} TX;
struct __attribute__ ((__packed__)) {
LoRaWAN_keys_t * KeysPtr;
Radio_DataRate_e DataRate : 8; //!< LoRaWAN Join Data Rate. Not used for US version (defined by LoRaWAN spec)
Radio_TXpower_e Power : 8; //!< LoRaWAN Join output power
uint8_t MAXTries : 8; //!< Maximum tries before Join fails. Join requests are spaced out according to the LoRaWAN specification.
uint8_t SubBand_1st : 4; //!< LoRaWAN First Sub-Band
uint8_t SubBand_2nd : 4; //!< LoRaWAN Second Sub-Band
} Join;
struct __attribute__ ((__packed__)) {
struct {
IdleMode_e Mode : 2; //!< Set Idle Mode to idleActive, idleSleep or idleDeepSleep
bool BleEcoON : 1; //!< Leaves BLE ECO ON during idle. Consumes additional power, enable only when ECO/BLE functionality is needed
bool DebugON : 1; //!< Leaves Debug Port active during idle. Consumes additional power, enable only for debugging purposes
} Idle;
} System;
};
uint8_t reserved[32];
} coreConfiguration_t;
У меня проблема с doxygen, различающим, что является переменным, а что нет. Может ли кто-нибудь порекомендовать способ справиться с этим? Как бы вы это задокументировали?
Я бы предпочел не делиться своими неудачными попытками задокументировать это. Любая помощь хороша!