#ifndef TRANSMIT_MESSAGE_H_ #define TRANSMIT_MESSAGE_H_ #include #include "icsneo/communication/message/message.h" #include "icsneo/api/eventmanager.h" namespace icsneo { struct TransmitMessage { static std::vector EncodeFromMessage(std::shared_ptr message, uint32_t client_id, const device_eventhandler_t& report); constexpr static size_t messageOptionsOffset = 0; constexpr static size_t messageOptionsSize = 20; // todo determine max constexpr static size_t messageCommonHeaderOffset = messageOptionsOffset + messageOptionsSize; constexpr static size_t messageCommonHeaderSize = 28; // CoreminiMsgExtendedHdr #pragma pack(push,1) struct { uint32_t clientId; uint32_t networkId; uint32_t reserved[3]; // set to 0 } options; uint8_t commonHeader[messageCommonHeaderSize]; #pragma pack(pop) }; } // namespace icsneo #endif // TRANSMIT_MESSAGE_H_