/* * Command.hpp * * Created on: Jul 8, 2021 * Author: Andreas Berthoud */ #ifndef SRC_COMMAND_H_ #define SRC_COMMAND_H_ #include extern "C" void pop_and_execute_commands(); typedef enum : uint8_t { COMMAND_NONE = 0, COMMAND_LOG = 0xff, } CommandId; class Command { public: CommandId id; Command(CommandId command_id); virtual ~Command() {}; virtual bool execute() = 0; protected: uint8_t data[512]; uint8_t * payload_ptr; const int max_payload_length = 507; void set_payload_length(uint16_t length); uint16_t get_payload_length(); private: uint16_t payload_length; }; void push_command(Command * command); #endif /* SRC_COMMAND_H_ */