Fix crash if radio settings where changed while the radio was not initialized
This commit is contained in:
parent
de2b7ab2d2
commit
83c623708f
@ -40,13 +40,8 @@ void HoymilesClass::initCMT(int8_t pin_sdio, int8_t pin_clk, int8_t pin_cs, int8
|
|||||||
void HoymilesClass::loop()
|
void HoymilesClass::loop()
|
||||||
{
|
{
|
||||||
HOY_SEMAPHORE_TAKE();
|
HOY_SEMAPHORE_TAKE();
|
||||||
if (_radioNrf->isInitialized()) {
|
|
||||||
_radioNrf->loop();
|
_radioNrf->loop();
|
||||||
}
|
|
||||||
|
|
||||||
if (_radioCmt->isInitialized()) {
|
|
||||||
_radioCmt->loop();
|
_radioCmt->loop();
|
||||||
}
|
|
||||||
|
|
||||||
if (getNumInverters() > 0) {
|
if (getNumInverters() > 0) {
|
||||||
if (millis() - _lastPoll > (_pollInterval * 1000)) {
|
if (millis() - _lastPoll > (_pollInterval * 1000)) {
|
||||||
|
|||||||
@ -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()
|
void HoymilesRadio_CMT::loop()
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
enumCMTresult mCMTstate = cmtProcess();
|
enumCMTresult mCMTstate = cmtProcess();
|
||||||
|
|
||||||
if (mCMTstate != CMT_RX_DONE) { // Perform package parsing only if no packages are received
|
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()
|
bool HoymilesRadio_CMT::isConnected()
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return _ChipConnected;
|
return _ChipConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,10 @@ void HoymilesRadio_NRF::init(SPIClass* initialisedSpiBus, uint8_t pinCE, uint8_t
|
|||||||
|
|
||||||
void HoymilesRadio_NRF::loop()
|
void HoymilesRadio_NRF::loop()
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
EVERY_N_MILLIS(4)
|
EVERY_N_MILLIS(4)
|
||||||
{
|
{
|
||||||
switchRxCh();
|
switchRxCh();
|
||||||
@ -151,22 +155,35 @@ void HoymilesRadio_NRF::loop()
|
|||||||
|
|
||||||
void HoymilesRadio_NRF::setPALevel(rf24_pa_dbm_e paLevel)
|
void HoymilesRadio_NRF::setPALevel(rf24_pa_dbm_e paLevel)
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
_radio->setPALevel(paLevel);
|
_radio->setPALevel(paLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HoymilesRadio_NRF::setDtuSerial(uint64_t serial)
|
void HoymilesRadio_NRF::setDtuSerial(uint64_t serial)
|
||||||
{
|
{
|
||||||
HoymilesRadio::setDtuSerial(serial);
|
HoymilesRadio::setDtuSerial(serial);
|
||||||
|
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
openReadingPipe();
|
openReadingPipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HoymilesRadio_NRF::isConnected()
|
bool HoymilesRadio_NRF::isConnected()
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return _radio->isChipConnected();
|
return _radio->isChipConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HoymilesRadio_NRF::isPVariant()
|
bool HoymilesRadio_NRF::isPVariant()
|
||||||
{
|
{
|
||||||
|
if (!_isInitialized) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return _radio->isPVariant();
|
return _radio->isPVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,8 +227,6 @@ void HoymilesRadio_NRF::switchRxCh()
|
|||||||
_radio->startListening();
|
_radio->startListening();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void HoymilesRadio_NRF::sendEsbPacket(CommandAbstract* cmd)
|
void HoymilesRadio_NRF::sendEsbPacket(CommandAbstract* cmd)
|
||||||
{
|
{
|
||||||
cmd->incrementSendCount();
|
cmd->incrementSendCount();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user