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, различающим, что является переменным, а что нет. Может ли кто-нибудь порекомендовать способ справиться с этим? Как бы вы это задокументировали?

Я бы предпочел не делиться своими неудачными попытками задокументировать это. Любая помощь хороша!

0 ответов

Другие вопросы по тегам