#ifndef TMTCMESSAGE_H_ #define TMTCMESSAGE_H_ #include #include /** * @brief This message class is used to pass Telecommand and Telemetry * packets between tasks. * @details Within such a packet, nothing is transported but the identifier of * a packet stored in one of the IPC stores (typically a special TM and * a special TC store). This makes passing commands very simple and * efficient. * \ingroup message_queue */ class TmTcMessage : public MessageQueueMessage { protected: /** * @brief This call always returns the same fixed size of the message. * @return Returns HEADER_SIZE + \c sizeof(store_address_t). */ size_t getMinimumMessageSize(); public: /** * @brief In the default constructor, only the message_size is set. */ TmTcMessage(); /** * @brief With this constructor, the passed packet id is directly put * into the message. * @param packet_id The packet id to put into the message. */ TmTcMessage( store_address_t packet_id ); /** * @brief The class's destructor is empty. */ ~TmTcMessage(); /** * @brief This getter returns the packet id in the correct format. * @return Returns the packet id. */ store_address_t getStorageId(); /** * @brief In some cases it might be useful to have a setter for packet id * as well. * @param packet_id The packet id to put into the message. */ void setStorageId( store_address_t packet_id ); }; #endif /* TMTCMESSAGE_H_ */