|
| constexpr uint32_t | commrat::encode_address (uint8_t type_id, uint8_t system_id, uint8_t instance_id, uint8_t mailbox_index) |
| | Encode full mailbox address Format: [type_id:8][system_id:8][instance_id:8][mailbox_index:8] Example: 0xTTSSIIMM (easy hex debugging)
|
| |
| constexpr uint32_t | commrat::get_base_address (uint8_t type_id, uint8_t system_id, uint8_t instance_id) |
| | Get base address (type/system/instance only, mailbox_index=0)
|
| |
| constexpr uint8_t | commrat::extract_mailbox_index (uint32_t addr) |
| | Extract mailbox index from full address.
|
| |
| constexpr uint8_t | commrat::extract_type_id (uint32_t addr) |
| | Extract type ID from address.
|
| |
| constexpr uint8_t | commrat::extract_system_id (uint32_t addr) |
| | Extract system ID from address.
|
| |
| constexpr uint8_t | commrat::extract_instance_id (uint32_t addr) |
| | Extract instance ID from address.
|
| |
| constexpr uint8_t | commrat::get_data_mbx_base (uint8_t num_outputs) |
| | Get DATA mailbox base index (after all CMD mailboxes)
|
| |
| constexpr uint8_t | commrat::extract_message_type_from_address (uint32_t base_addr) |
| | Extract message type ID from subscriber base address (for backward compatibility) Now just extracts type_id field from new encoding.
|
| |
| template<typename OutputData , typename OutputTypesTuple , typename UserRegistry > |
| static constexpr uint32_t | commrat::calculate_base_address (uint8_t system_id, uint8_t instance_id) |
| | Calculate base mailbox address from output type, system_id, and instance_id New format: [type_id:8][system_id:8][instance_id:8][mailbox_index:8] Returns base address with mailbox_index=0.
|
| |
| template<typename OutputData , typename OutputTypesTuple , typename UserRegistry > |
| static constexpr uint32_t | commrat::get_mailbox_address (uint8_t system_id, uint8_t instance_id, uint8_t mailbox_index) |
| | Get specific mailbox address with index.
|
| |
| template<typename... CommandTypes> |
| static constexpr size_t | commrat::calculate_cmd_mailbox_size () |
| | Calculate CMD mailbox size at compile time Size = max(SystemRegistry messages, Module's Commands<...>)
|
| |
| template<typename InputType > |
| static constexpr size_t | commrat::get_data_mailbox_size () |
| | Calculate DATA mailbox size for specific input type.
|
| |
| static MailboxConfig | commrat::createWorkMailboxConfig (const ModuleConfig &config) |
| | Create work mailbox config (for SystemRegistry messages)
|
| |