diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index c4641ec..68ce797 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -40,13 +40,8 @@ void HoymilesClass::initCMT(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int8 void HoymilesClass::loop() { HOY_SEMAPHORE_TAKE(); - if (_radioNrf->isInitialized()) { - _radioNrf->loop(); - } - - if (_radioCmt->isInitialized()) { - _radioCmt->loop(); - } + _radioNrf->loop(); + _radioCmt->loop(); if (getNumInverters() > 0) { if (millis() - _lastPoll > (_pollInterval * 1000)) { diff --git a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp index 8db734d..e7b245c 100644 --- a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp @@ -357,6 +357,9 @@ void HoymilesRadio_CMT::init(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int void HoymilesRadio_CMT::loop() { + if (!_isInitialized) { + return; + } enumCMTresult mCMTstate = cmtProcess(); if (mCMTstate != CMT_RX_DONE) { // Perform package parsing only if no packages are received @@ -450,6 +453,9 @@ void HoymilesRadio_CMT::loop() bool HoymilesRadio_CMT::isConnected() { + if (!_isInitialized) { + return false; + } return _ChipConnected; } diff --git a/lib/Hoymiles/src/HoymilesRadio_NRF.cpp b/lib/Hoymiles/src/HoymilesRadio_NRF.cpp index 088acbe..03a1d6c 100644 --- a/lib/Hoymiles/src/HoymilesRadio_NRF.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_NRF.cpp @@ -38,6 +38,10 @@ void HoymilesRadio_NRF::init(SPIClass* initialisedSpiBus, uint8_t pinCE, uint8_t void HoymilesRadio_NRF::loop() { + if (!_isInitialized) { + return; + } + EVERY_N_MILLIS(4) { switchRxCh(); @@ -151,22 +155,35 @@ void HoymilesRadio_NRF::loop() void HoymilesRadio_NRF::setPALevel(rf24_pa_dbm_e paLevel) { + if (!_isInitialized) { + return; + } _radio->setPALevel(paLevel); } void HoymilesRadio_NRF::setDtuSerial(uint64_t serial) { HoymilesRadio::setDtuSerial(serial); + + if (!_isInitialized) { + return; + } openReadingPipe(); } bool HoymilesRadio_NRF::isConnected() { + if (!_isInitialized) { + return false; + } return _radio->isChipConnected(); } bool HoymilesRadio_NRF::isPVariant() { + if (!_isInitialized) { + return false; + } return _radio->isPVariant(); } @@ -210,8 +227,6 @@ void HoymilesRadio_NRF::switchRxCh() _radio->startListening(); } - - void HoymilesRadio_NRF::sendEsbPacket(CommandAbstract* cmd) { cmd->incrementSendCount();