Implement property in HoymilesRadio_CMT to set the frequency during runtime
This commit is contained in:
parent
70b85fad6f
commit
5e11f0b854
@ -199,7 +199,7 @@ enumCMTresult HoymilesRadio_CMT::cmtProcess(void)
|
|||||||
cmtRxTimeoutCnt++;
|
cmtRxTimeoutCnt++;
|
||||||
} else {
|
} else {
|
||||||
uint32_t invSerial = cmtTxBuffer[1] << 24 | cmtTxBuffer[2] << 16 | cmtTxBuffer[3] << 8 | cmtTxBuffer[4]; // read inverter serial from last Tx buffer
|
uint32_t invSerial = cmtTxBuffer[1] << 24 | cmtTxBuffer[2] << 16 | cmtTxBuffer[3] << 8 | cmtTxBuffer[4]; // read inverter serial from last Tx buffer
|
||||||
cmtSwitchInvAndDtuFreq(invSerial, HOY_BOOT_FREQ / 1000, HOYMILES_CMT_WORK_FREQ);
|
cmtSwitchInvAndDtuFreq(invSerial, HOY_BOOT_FREQ / 1000, _inverterTargetFrequency);
|
||||||
}
|
}
|
||||||
|
|
||||||
nRes = CMT_RX_TIMEOUT;
|
nRes = CMT_RX_TIMEOUT;
|
||||||
@ -306,7 +306,7 @@ void HoymilesRadio_CMT::init(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int
|
|||||||
|
|
||||||
_radio->begin();
|
_radio->begin();
|
||||||
|
|
||||||
cmtSwitchDtuFreq(HOYMILES_CMT_WORK_FREQ); // start dtu at work freqency, for fast Rx if inverter is already on and frequency switched
|
cmtSwitchDtuFreq(_inverterTargetFrequency); // start dtu at work freqency, for fast Rx if inverter is already on and frequency switched
|
||||||
|
|
||||||
if (_radio->isChipConnected()) {
|
if (_radio->isChipConnected()) {
|
||||||
Hoymiles.getMessageOutput()->println("Connection successful");
|
Hoymiles.getMessageOutput()->println("Connection successful");
|
||||||
@ -436,6 +436,15 @@ void HoymilesRadio_CMT::setPALevel(int8_t paLevel)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HoymilesRadio_CMT::setInverterTargetFrequency(uint32_t frequency)
|
||||||
|
{
|
||||||
|
_inverterTargetFrequency = frequency;
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cmtSwitchDtuFreq(_inverterTargetFrequency);
|
||||||
|
}
|
||||||
|
|
||||||
bool HoymilesRadio_CMT::isConnected()
|
bool HoymilesRadio_CMT::isConnected()
|
||||||
{
|
{
|
||||||
if (!_isInitialized) {
|
if (!_isInitialized) {
|
||||||
|
|||||||
@ -13,6 +13,10 @@
|
|||||||
// number of fragments hold in buffer
|
// number of fragments hold in buffer
|
||||||
#define FRAGMENT_BUFFER_SIZE 30
|
#define FRAGMENT_BUFFER_SIZE 30
|
||||||
|
|
||||||
|
#ifndef HOYMILES_CMT_WORK_FREQ
|
||||||
|
#define HOYMILES_CMT_WORK_FREQ 865000
|
||||||
|
#endif
|
||||||
|
|
||||||
/* CMT states */
|
/* CMT states */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CMT_STATE_IDLE = 0,
|
CMT_STATE_IDLE = 0,
|
||||||
@ -43,6 +47,7 @@ public:
|
|||||||
void init(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int8_t pin_fcs, int8_t pin_gpio2, int8_t pin_gpio3);
|
void init(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int8_t pin_fcs, int8_t pin_gpio2, int8_t pin_gpio3);
|
||||||
void loop();
|
void loop();
|
||||||
void setPALevel(int8_t paLevel);
|
void setPALevel(int8_t paLevel);
|
||||||
|
void setInverterTargetFrequency(uint32_t frequency);
|
||||||
|
|
||||||
bool isConnected();
|
bool isConnected();
|
||||||
|
|
||||||
@ -64,6 +69,8 @@ private:
|
|||||||
TimeoutHelper _rxTimeout;
|
TimeoutHelper _rxTimeout;
|
||||||
TimeoutHelper _txTimeout;
|
TimeoutHelper _txTimeout;
|
||||||
|
|
||||||
|
uint32_t _inverterTargetFrequency = HOYMILES_CMT_WORK_FREQ;
|
||||||
|
|
||||||
String cmtChToFreq(const uint8_t channel);
|
String cmtChToFreq(const uint8_t channel);
|
||||||
void cmtSwitchChannel(const uint8_t channel);
|
void cmtSwitchChannel(const uint8_t channel);
|
||||||
uint8_t cmtFreqToChan(const String& func_name, const String& var_name, const uint32_t freq_kHz);
|
uint8_t cmtFreqToChan(const String& func_name, const String& var_name, const uint32_t freq_kHz);
|
||||||
|
|||||||
@ -56,7 +56,6 @@ build_flags = ${env.build_flags}
|
|||||||
-DHOYMILES_PIN_IRQ=16
|
-DHOYMILES_PIN_IRQ=16
|
||||||
-DHOYMILES_PIN_CE=4
|
-DHOYMILES_PIN_CE=4
|
||||||
-DHOYMILES_PIN_CS=5
|
-DHOYMILES_PIN_CS=5
|
||||||
-DHOYMILES_CMT_WORK_FREQ=865000
|
|
||||||
|
|
||||||
|
|
||||||
[env:olimex_esp32_poe]
|
[env:olimex_esp32_poe]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user