diff --git a/lib/CMT2300a/cmt2300wrapper.cpp b/lib/CMT2300a/cmt2300wrapper.cpp index 6bfe7b90..df3fdfbf 100644 --- a/lib/CMT2300a/cmt2300wrapper.cpp +++ b/lib/CMT2300a/cmt2300wrapper.cpp @@ -60,6 +60,16 @@ bool CMT2300A::write(const uint8_t* buf, uint8_t len) return true; } +void CMT2300A::setChannel(uint8_t channel) +{ + CMT2300A_SetFrequencyChannel(channel); +} + +uint8_t CMT2300A::getChannel(void) +{ + return CMT2300A_ReadReg(CMT2300A_CUS_FREQ_CHNL); +} + bool CMT2300A::setPALevel(int8_t level) { uint16_t Tx_dBm_word; diff --git a/lib/CMT2300a/cmt2300wrapper.h b/lib/CMT2300a/cmt2300wrapper.h index 977f2269..6ae68fdc 100644 --- a/lib/CMT2300a/cmt2300wrapper.h +++ b/lib/CMT2300a/cmt2300wrapper.h @@ -21,6 +21,18 @@ public: bool write(const uint8_t* buf, uint8_t len); + /** + * Set RF communication channel. The frequency used by a channel is + * @param channel Which RF channel to communicate on, 0-254 + */ + void setChannel(uint8_t channel); + + /** + * Get RF communication channel + * @return The currently configured RF Channel + */ + uint8_t getChannel(void); + bool setPALevel(int8_t level); private: diff --git a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp index f3870a5a..db377e33 100644 --- a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp @@ -26,9 +26,7 @@ String HoymilesRadio_CMT::cmtChToFreq(const uint8_t channel) void HoymilesRadio_CMT::cmtSwitchChannel(const uint8_t channel) { - yield(); - CMT2300A_SetFrequencyChannel(channel); - yield(); + _radio->setChannel(channel); cmtCurrentCh = channel; }