drivers/sx127x: fix set modem logic

This commit is contained in:
Alexandre Abadie 2017-10-05 22:34:50 +02:00
parent 6da78131e7
commit 5fb8db4cfd

View File

@ -63,6 +63,20 @@ void sx127x_set_state(sx127x_t *dev, uint8_t state)
void sx127x_set_modem(sx127x_t *dev, uint8_t modem)
{
if ((sx127x_reg_read(dev, SX127X_REG_OPMODE) & SX127X_RF_LORA_OPMODE_LONGRANGEMODE_ON) != 0) {
dev->settings.modem = SX127X_MODEM_LORA;
}
else {
dev->settings.modem = SX127X_MODEM_FSK;
}
/* Skip if unchanged to avoid resetting the transceiver below (may end up
* in crashes) */
if (dev->settings.modem == modem) {
DEBUG("[DEBUG] already using modem: %d\n", modem);
return;
}
DEBUG("[DEBUG] set modem: %d\n", modem);
dev->settings.modem = modem;