From f3942bb647785ab6c757e8054aa68241dda29f6f Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 13 Apr 2023 19:11:18 +0200 Subject: [PATCH] Fix: Set correct frequency when changing it via web ui Previously it could happen that the frequency was changed between saving old and recovering new frequency. Therefor an invalid frequency was saved in the CMT module --- lib/Hoymiles/src/HoymilesRadio_CMT.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp index fe32afc..4ca70cc 100644 --- a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp @@ -267,8 +267,6 @@ void HoymilesRadio_CMT::sendEsbPacket(CommandAbstract* cmd) _radio->stopListening(); - uint8_t oldChannel; - oldChannel = _radio->getChannel(); if (cmd->getDataPayload()[0] == 0x56) { // @todo(tbnobody) Bad hack to identify ChannelChange Command cmtSwitchDtuFreq(HOY_BOOT_FREQ / 1000); } @@ -280,7 +278,7 @@ void HoymilesRadio_CMT::sendEsbPacket(CommandAbstract* cmd) if (!_radio->write(cmd->getDataPayload(), cmd->getDataSize())) { Hoymiles.getMessageOutput()->println("TX SPI Timeout"); } - _radio->setChannel(oldChannel); + cmtSwitchDtuFreq(_inverterTargetFrequency); _radio->startListening(); _busyFlag = true; _rxTimeout.set(cmd->getTimeout());