feat: add irq_status_t structure and update get_irq_status to use it

feat: implement string conversion functions for CommandStatus and ChipMode enums
This commit is contained in:
2025-08-04 15:02:18 +08:00
parent 0653fc2e3d
commit 04efb1e40b
2 changed files with 75 additions and 8 deletions

View File

@ -225,6 +225,27 @@ enum class CommandStatus : uint8_t {
COMMAND_TX_DONE = 0x06, // 0b110
};
inline const char *to_str(const CommandStatus &status) {
switch (status) {
case CommandStatus::RESERVED:
return "RESERVED";
case CommandStatus::RFU:
return "RFU";
case CommandStatus::DATA_AVAILABLE:
return "DATA_AVAILABLE";
case CommandStatus::COMMAND_TIMEOUT:
return "COMMAND_TIMEOUT";
case CommandStatus::COMMAND_PROCESSING_ERROR:
return "COMMAND_PROCESSING_ERROR";
case CommandStatus::FAILURE_TO_EXECUTE_COMMAND:
return "FAILURE_TO_EXECUTE_COMMAND";
case CommandStatus::COMMAND_TX_DONE:
return "COMMAND_TX_DONE";
default:
return "Unknown";
}
}
enum class ChipMode : uint8_t {
UNUSED = 0x00, // 0b000
RFU = 0x01, // 0b001
@ -235,6 +256,27 @@ enum class ChipMode : uint8_t {
TX = 0x06, // 0b110
};
inline const char *to_str(const ChipMode &mode) {
switch (mode) {
case ChipMode::UNUSED:
return "UNUSED";
case ChipMode::RFU:
return "RFU";
case ChipMode::STBY_RC:
return "STBY_RC";
case ChipMode::STBY_XOSC:
return "STBY_XOSC";
case ChipMode::FS:
return "FS";
case ChipMode::RX:
return "RX";
case ChipMode::TX:
return "TX";
default:
return "Unknown";
}
}
struct __attribute__((packed)) status_t {
uint8_t reserved_1 : 1;