[RF69] Fixed setPromiscuousMode(false) corner case
Signed-off-by: Federico Maggi <federico.maggi@gmail.com>
This commit is contained in:
parent
7295e9731e
commit
894e912252
1 changed files with 11 additions and 10 deletions
|
@ -801,15 +801,8 @@ int16_t RF69::enableSyncWordFiltering(uint8_t maxErrBits) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::disableSyncWordFiltering() {
|
int16_t RF69::disableSyncWordFiltering() {
|
||||||
// disable preamble detection and generation
|
|
||||||
int16_t state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_PREAMBLE_LSB, 0, 7, 0);
|
|
||||||
state |= _mod->SPIsetRegValue(RADIOLIB_RF69_REG_PREAMBLE_MSB, 0, 7, 0);
|
|
||||||
RADIOLIB_ASSERT(state);
|
|
||||||
|
|
||||||
// disable sync word detection and generation
|
// disable sync word detection and generation
|
||||||
state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_SYNC_CONFIG, RADIOLIB_RF69_SYNC_OFF | RADIOLIB_RF69_FIFO_FILL_CONDITION, 7, 6);
|
return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_SYNC_CONFIG, RADIOLIB_RF69_SYNC_OFF | RADIOLIB_RF69_FIFO_FILL_CONDITION, 7, 6));
|
||||||
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::enableContinuousModeBitSync() {
|
int16_t RF69::enableContinuousModeBitSync() {
|
||||||
|
@ -846,14 +839,22 @@ int16_t RF69::setPromiscuousMode(bool promiscuous) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (promiscuous == true) {
|
if (promiscuous == true) {
|
||||||
// disable preamble and sync word filtering and insertion
|
// disable preamble detection and generation
|
||||||
|
state = setPreambleLength(0);
|
||||||
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
|
// disable sync word filtering and insertion
|
||||||
state = disableSyncWordFiltering();
|
state = disableSyncWordFiltering();
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// disable CRC filtering
|
// disable CRC filtering
|
||||||
state = setCrcFiltering(false);
|
state = setCrcFiltering(false);
|
||||||
} else {
|
} else {
|
||||||
// enable preamble and sync word filtering and insertion
|
// enable preamble detection and generation
|
||||||
|
state = setPreambleLength(RADIOLIB_RF69_DEFAULT_PREAMBLELEN);
|
||||||
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
|
// enable sync word filtering and insertion
|
||||||
state = enableSyncWordFiltering();
|
state = enableSyncWordFiltering();
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue