/* * PumpCommand.hpp * * Created on: Jul 27, 2021 * Author: Andreas Berthoud */ #ifndef PUMPCOMMAND_HPP_ #define PUMPCOMMAND_HPP_ #include "Request.hpp" #include "Response.hpp" class PumpResponse : public Response { public: PumpResponse(com_channel_type_t com_channel_type, uint16_t response_identifier, bool was_successful, bool is_on); CommandId get_command_id() override { return COMMAND_PUMP_RESPONSE; } private: bool was_successful = false; bool is_on = false; }; class PumpRequest : public Request { public: PumpRequest(com_channel_type_t com_channel_type, uint8_t * payload_ptr, uint16_t size); PumpResponse * execute_request(com_channel_type_t com_channel_type, uint16_t response_identifier) override; CommandId get_command_id() override { return COMMAND_PUMP_REQUEST; } private: enum PumpCommand { pump_command_turn_on, pump_command_turn_off, pump_command_get_state, pump_command_max, }; bool has_error = false; PumpCommand pump_command = pump_command_turn_off; uint16_t timeout; /* timeout in seconds until the pump is turned off again */ }; #endif /* PUMPCOMMAND_HPP_ */