/* * LedCommand.hpp * * Created on: Jul 16, 2021 * Author: Andreas Berthoud */ #ifndef LEDCOMMAND_HPP_ #define LEDCOMMAND_HPP_ #include "Request.hpp" #include "Response.hpp" class LedResponse : public Response { public: LedResponse(com_channel_type_t com_channel_type, uint16_t response_identifier, bool was_successful); CommandId get_command_id() override { return COMMAND_LED_RESPONSE; } private: bool was_successful = false; }; class LedRequest : public Request { public: /** * @brief Construct a new Led Request object * * @param payload_ptr * HEADER | led_id | led_command | * | 1 byte | 1 byte | * * led_id * ------- * 0: green * 1: red * 2: blue * * led_command * ----------- * 0: off * 1: on * 2: toggle * * @param size */ LedRequest(com_channel_type_t com_channel_type, uint8_t * payload_ptr, uint16_t size); enum LedID { greed_led, greed_red, greed_blue, led_id_max, }; enum LedCommand { led_off, led_on, led_toggle, led_command_max, }; LedResponse * execute_request(com_channel_type_t com_channel_type, uint16_t response_identifier) override; CommandId get_command_id() override { return COMMAND_LED_REQUEST; } private: bool has_error = false; LedID led_id = greed_led; LedCommand led_command = led_off; }; #endif /* LEDCOMMAND_HPP_ */