diff --git a/lib/Hoymiles/src/HoymilesRadio.cpp b/lib/Hoymiles/src/HoymilesRadio.cpp index 1e9f84e9..ceab39d7 100644 --- a/lib/Hoymiles/src/HoymilesRadio.cpp +++ b/lib/Hoymiles/src/HoymilesRadio.cpp @@ -233,7 +233,9 @@ void HoymilesRadio::sendEsbPacket(CommandAbstract* cmd) openWritingPipe(s); _radio->setRetries(3, 15); - Serial.print(F("TX Channel: ")); + Serial.print(F("TX ")); + Serial.print(cmd->getCommandName()); + Serial.print(F(" Channel: ")); Serial.print(_radio->getChannel()); Serial.print(F(" --> ")); cmd->dumpDataPayload(Serial); diff --git a/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp b/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp index 88ddc03d..9c004087 100644 --- a/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp +++ b/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp @@ -20,6 +20,11 @@ ActivePowerControlCommand::ActivePowerControlCommand(uint64_t target_address, ui setTimeout(2000); } +String ActivePowerControlCommand::getCommandName() +{ + return "ActivePowerControl"; +} + void ActivePowerControlCommand::setActivePowerLimit(float limit, PowerLimitControlType type) { uint16_t l = limit * 10; diff --git a/lib/Hoymiles/src/commands/ActivePowerControlCommand.h b/lib/Hoymiles/src/commands/ActivePowerControlCommand.h index ebcf71b4..67a1c5df 100644 --- a/lib/Hoymiles/src/commands/ActivePowerControlCommand.h +++ b/lib/Hoymiles/src/commands/ActivePowerControlCommand.h @@ -12,6 +12,9 @@ typedef enum { // ToDo: to be verified by field tests class ActivePowerControlCommand : public DevControlCommand { public: explicit ActivePowerControlCommand(uint64_t target_address = 0, uint64_t router_address = 0); + + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); virtual void gotTimeout(InverterAbstract* inverter); diff --git a/lib/Hoymiles/src/commands/AlarmDataCommand.cpp b/lib/Hoymiles/src/commands/AlarmDataCommand.cpp index bdb83a7a..28633dba 100644 --- a/lib/Hoymiles/src/commands/AlarmDataCommand.cpp +++ b/lib/Hoymiles/src/commands/AlarmDataCommand.cpp @@ -9,6 +9,11 @@ AlarmDataCommand::AlarmDataCommand(uint64_t target_address, uint64_t router_addr setTimeout(500); } +String AlarmDataCommand::getCommandName() +{ + return "AlarmData"; +} + bool AlarmDataCommand::handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id) { // Check CRC of whole payload diff --git a/lib/Hoymiles/src/commands/AlarmDataCommand.h b/lib/Hoymiles/src/commands/AlarmDataCommand.h index 8821eb9c..09664817 100644 --- a/lib/Hoymiles/src/commands/AlarmDataCommand.h +++ b/lib/Hoymiles/src/commands/AlarmDataCommand.h @@ -6,6 +6,8 @@ class AlarmDataCommand : public MultiDataCommand { public: explicit AlarmDataCommand(uint64_t target_address = 0, uint64_t router_address = 0, time_t time = 0); + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); virtual void gotTimeout(InverterAbstract* inverter); }; \ No newline at end of file diff --git a/lib/Hoymiles/src/commands/CommandAbstract.h b/lib/Hoymiles/src/commands/CommandAbstract.h index e26f0480..8dd658c7 100644 --- a/lib/Hoymiles/src/commands/CommandAbstract.h +++ b/lib/Hoymiles/src/commands/CommandAbstract.h @@ -27,6 +27,8 @@ public: void setTimeout(uint32_t timeout); uint32_t getTimeout(); + virtual String getCommandName() = 0; + void setSendCount(uint8_t count); uint8_t getSendCount(); uint8_t incrementSendCount(); diff --git a/lib/Hoymiles/src/commands/DevInfoAllCommand.cpp b/lib/Hoymiles/src/commands/DevInfoAllCommand.cpp index 0b2099de..3a397e8d 100644 --- a/lib/Hoymiles/src/commands/DevInfoAllCommand.cpp +++ b/lib/Hoymiles/src/commands/DevInfoAllCommand.cpp @@ -9,6 +9,11 @@ DevInfoAllCommand::DevInfoAllCommand(uint64_t target_address, uint64_t router_ad setTimeout(200); } +String DevInfoAllCommand::getCommandName() +{ + return "DevInfoAll"; +} + bool DevInfoAllCommand::handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id) { // Check CRC of whole payload diff --git a/lib/Hoymiles/src/commands/DevInfoAllCommand.h b/lib/Hoymiles/src/commands/DevInfoAllCommand.h index 964ffaf0..17974051 100644 --- a/lib/Hoymiles/src/commands/DevInfoAllCommand.h +++ b/lib/Hoymiles/src/commands/DevInfoAllCommand.h @@ -6,5 +6,7 @@ class DevInfoAllCommand : public MultiDataCommand { public: explicit DevInfoAllCommand(uint64_t target_address = 0, uint64_t router_address = 0, time_t time = 0); + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); }; \ No newline at end of file diff --git a/lib/Hoymiles/src/commands/DevInfoSimpleCommand.cpp b/lib/Hoymiles/src/commands/DevInfoSimpleCommand.cpp index ef232e2b..dd935e94 100644 --- a/lib/Hoymiles/src/commands/DevInfoSimpleCommand.cpp +++ b/lib/Hoymiles/src/commands/DevInfoSimpleCommand.cpp @@ -9,6 +9,11 @@ DevInfoSimpleCommand::DevInfoSimpleCommand(uint64_t target_address, uint64_t rou setTimeout(200); } +String DevInfoSimpleCommand::getCommandName() +{ + return "DevInfoSimple"; +} + bool DevInfoSimpleCommand::handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id) { // Check CRC of whole payload diff --git a/lib/Hoymiles/src/commands/DevInfoSimpleCommand.h b/lib/Hoymiles/src/commands/DevInfoSimpleCommand.h index cd0dd952..8c46ced7 100644 --- a/lib/Hoymiles/src/commands/DevInfoSimpleCommand.h +++ b/lib/Hoymiles/src/commands/DevInfoSimpleCommand.h @@ -6,5 +6,7 @@ class DevInfoSimpleCommand : public MultiDataCommand { public: explicit DevInfoSimpleCommand(uint64_t target_address = 0, uint64_t router_address = 0, time_t time = 0); + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); }; \ No newline at end of file diff --git a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp index 79c66b9c..314e4c0e 100644 --- a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp +++ b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp @@ -9,6 +9,11 @@ RealTimeRunDataCommand::RealTimeRunDataCommand(uint64_t target_address, uint64_t setTimeout(200); } +String RealTimeRunDataCommand::getCommandName() +{ + return "RealTimeRunData"; +} + bool RealTimeRunDataCommand::handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id) { // Check CRC of whole payload diff --git a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.h b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.h index ff150cb7..ebbde456 100644 --- a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.h +++ b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.h @@ -6,6 +6,8 @@ class RealTimeRunDataCommand : public MultiDataCommand { public: explicit RealTimeRunDataCommand(uint64_t target_address = 0, uint64_t router_address = 0, time_t time = 0); + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); virtual void gotTimeout(InverterAbstract* inverter); }; \ No newline at end of file diff --git a/lib/Hoymiles/src/commands/RequestFrameCommand.cpp b/lib/Hoymiles/src/commands/RequestFrameCommand.cpp index d0e10254..570f03a4 100644 --- a/lib/Hoymiles/src/commands/RequestFrameCommand.cpp +++ b/lib/Hoymiles/src/commands/RequestFrameCommand.cpp @@ -10,6 +10,11 @@ RequestFrameCommand::RequestFrameCommand(uint64_t target_address, uint64_t route _payload_size = 10; } +String RequestFrameCommand::getCommandName() +{ + return "RequestFrame"; +} + void RequestFrameCommand::setFrameNo(uint8_t frame_no) { _payload[9] = frame_no | 0x80; diff --git a/lib/Hoymiles/src/commands/RequestFrameCommand.h b/lib/Hoymiles/src/commands/RequestFrameCommand.h index aebf9483..7c3e70e3 100644 --- a/lib/Hoymiles/src/commands/RequestFrameCommand.h +++ b/lib/Hoymiles/src/commands/RequestFrameCommand.h @@ -6,6 +6,8 @@ class RequestFrameCommand : public SingleDataCommand { public: explicit RequestFrameCommand(uint64_t target_address = 0, uint64_t router_address = 0, uint8_t frame_no = 0); + virtual String getCommandName(); + void setFrameNo(uint8_t frame_no); uint8_t getFrameNo(); diff --git a/lib/Hoymiles/src/commands/SystemConfigParaCommand.cpp b/lib/Hoymiles/src/commands/SystemConfigParaCommand.cpp index b7b59d3e..07c69cdd 100644 --- a/lib/Hoymiles/src/commands/SystemConfigParaCommand.cpp +++ b/lib/Hoymiles/src/commands/SystemConfigParaCommand.cpp @@ -9,6 +9,11 @@ SystemConfigParaCommand::SystemConfigParaCommand(uint64_t target_address, uint64 setTimeout(200); } +String SystemConfigParaCommand::getCommandName() +{ + return "SystemConfigPara"; +} + bool SystemConfigParaCommand::handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id) { // Check CRC of whole payload diff --git a/lib/Hoymiles/src/commands/SystemConfigParaCommand.h b/lib/Hoymiles/src/commands/SystemConfigParaCommand.h index 1ff43a0e..d84d2913 100644 --- a/lib/Hoymiles/src/commands/SystemConfigParaCommand.h +++ b/lib/Hoymiles/src/commands/SystemConfigParaCommand.h @@ -6,6 +6,8 @@ class SystemConfigParaCommand : public MultiDataCommand { public: explicit SystemConfigParaCommand(uint64_t target_address = 0, uint64_t router_address = 0, time_t time = 0); + virtual String getCommandName(); + virtual bool handleResponse(InverterAbstract* inverter, fragment_t fragment[], uint8_t max_fragment_id); virtual void gotTimeout(InverterAbstract* inverter); }; \ No newline at end of file