diff --git a/drivers/include/sx126x.h b/drivers/include/sx126x.h index 327df52bb4..c2b879b2c7 100644 --- a/drivers/include/sx126x.h +++ b/drivers/include/sx126x.h @@ -77,7 +77,7 @@ typedef struct { sx126x_pkt_params_lora_t pkt_params; /**< Lora packet parameters */ sx126x_mod_params_lora_t mod_params; /**< Lora modulation parameters */ uint32_t channel; /**< Current channel frequency (in Hz) */ - uint32_t rx_timeout; /**< RX timeout in ms */ + uint8_t rx_timeout; /**< Rx Timeout in terms of symbols */ } sx126x_t; /** diff --git a/drivers/sx126x/sx126x_netdev.c b/drivers/sx126x/sx126x_netdev.c index 839b13b17b..0ab9b85a56 100644 --- a/drivers/sx126x/sx126x_netdev.c +++ b/drivers/sx126x/sx126x_netdev.c @@ -288,8 +288,9 @@ static int _set_state(sx126x_t *dev, netopt_state_t state) case NETOPT_STATE_RX: DEBUG("[sx126x] netdev: set NETOPT_STATE_RX state\n"); sx126x_cfg_rx_boosted(dev, true); - if (dev->rx_timeout != 0) { - sx126x_set_rx(dev, dev->rx_timeout); + int _timeout = (sx126x_symbol_to_msec(dev, dev->rx_timeout)); + if (_timeout != 0) { + sx126x_set_rx(dev, _timeout); } else { sx126x_set_rx(dev, SX126X_RX_SINGLE_MODE); @@ -386,10 +387,10 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len) sx126x_set_lora_crc(dev, *((const netopt_enable_t *)val) ? true : false); return sizeof(netopt_enable_t); - case NETOPT_RX_TIMEOUT: - assert(len <= sizeof(uint32_t)); - dev->rx_timeout = *(const uint32_t *)val; - return sizeof(uint32_t); + case NETOPT_RX_SYMBOL_TIMEOUT: + assert(len <= sizeof(uint8_t)); + dev->rx_timeout = *(const uint8_t *)val; + return sizeof(uint8_t); case NETOPT_TX_POWER: assert(len <= sizeof(int16_t));