[SX128x] Fixed setBitRate compatibility with PhysicalLayer

This commit is contained in:
jgromes 2022-10-01 15:16:01 +02:00
parent 972e651f4f
commit e5fe82f334
2 changed files with 18 additions and 18 deletions

View file

@ -746,56 +746,56 @@ int16_t SX128x::setPreambleLength(uint32_t preambleLength) {
return(RADIOLIB_ERR_WRONG_MODEM);
}
int16_t SX128x::setBitRate(uint16_t br) {
int16_t SX128x::setBitRate(float br) {
// check active modem
uint8_t modem = getPacketType();
// GFSK/BLE
if((modem == RADIOLIB_SX128X_PACKET_TYPE_GFSK) || (modem == RADIOLIB_SX128X_PACKET_TYPE_BLE)) {
if(br == 125) {
if((uint16_t)br == 125) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_0_125_BW_0_3;
} else if(br == 250) {
} else if((uint16_t)br == 250) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_0_250_BW_0_6;
} else if(br == 400) {
} else if((uint16_t)br == 400) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_0_400_BW_1_2;
} else if(br == 500) {
} else if((uint16_t)br == 500) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_0_500_BW_1_2;
} else if(br == 800) {
} else if((uint16_t)br == 800) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_0_800_BW_2_4;
} else if(br == 1000) {
} else if((uint16_t)br == 1000) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_1_000_BW_2_4;
} else if(br == 1600) {
} else if((uint16_t)br == 1600) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_1_600_BW_2_4;
} else if(br == 2000) {
} else if((uint16_t)br == 2000) {
_br = RADIOLIB_SX128X_BLE_GFSK_BR_2_000_BW_2_4;
} else {
return(RADIOLIB_ERR_INVALID_BIT_RATE);
}
// update modulation parameters
_brKbps = br;
_brKbps = (uint16_t)br;
return(setModulationParams(_br, _modIndex, _shaping));
// FLRC
} else if(modem == RADIOLIB_SX128X_PACKET_TYPE_FLRC) {
if(br == 260) {
if((uint16_t)br == 260) {
_br = RADIOLIB_SX128X_FLRC_BR_0_260_BW_0_3;
} else if(br == 325) {
} else if((uint16_t)br == 325) {
_br = RADIOLIB_SX128X_FLRC_BR_0_325_BW_0_3;
} else if(br == 520) {
} else if((uint16_t)br == 520) {
_br = RADIOLIB_SX128X_FLRC_BR_0_520_BW_0_6;
} else if(br == 650) {
} else if((uint16_t)br == 650) {
_br = RADIOLIB_SX128X_FLRC_BR_0_650_BW_0_6;
} else if(br == 1000) {
} else if((uint16_t)br == 1000) {
_br = RADIOLIB_SX128X_FLRC_BR_1_000_BW_1_2;
} else if(br == 1300) {
} else if((uint16_t)br == 1300) {
_br = RADIOLIB_SX128X_FLRC_BR_1_300_BW_1_2;
} else {
return(RADIOLIB_ERR_INVALID_BIT_RATE);
}
// update modulation parameters
_brKbps = br;
_brKbps = (uint16_t)br;
return(setModulationParams(_br, _crFLRC, _shaping));
}

View file

@ -646,7 +646,7 @@ class SX128x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setBitRate(uint16_t br);
int16_t setBitRate(float br);
/*!
\brief Sets FSK frequency deviation. Allowed values range from 0.0 to 3200.0 kHz.