kw2xrf: dBm conversion to int16_t
This commit is contained in:
parent
7dce20afb6
commit
2d491e0619
@ -160,7 +160,7 @@ uint8_t kw2xrf_get_cca_mode(kw2xrf_t *dev);
|
||||
*
|
||||
* @return deduced RSSI in dBm
|
||||
*/
|
||||
uint32_t kw2xrf_get_rssi(uint32_t value);
|
||||
int16_t kw2xrf_get_rssi(uint32_t value);
|
||||
|
||||
/**
|
||||
* @brief Get state of a given device
|
||||
|
||||
@ -346,7 +346,7 @@ uint8_t kw2xrf_get_cca_mode(kw2xrf_t *dev)
|
||||
return (tmp & MKW2XDM_PHY_CTRL4_CCATYPE_MASK) >> MKW2XDM_PHY_CTRL4_CCATYPE_SHIFT;
|
||||
}
|
||||
|
||||
uint32_t kw2xrf_get_rssi(uint32_t value)
|
||||
int16_t kw2xrf_get_rssi(uint32_t value)
|
||||
{
|
||||
/* Get rssi (Received Signal Strength Indicator, unit is dBm)
|
||||
* from lqi (Link Quality Indicator) value.
|
||||
@ -361,7 +361,7 @@ uint32_t kw2xrf_get_rssi(uint32_t value)
|
||||
*/
|
||||
uint32_t a = (uint32_t)(295.4 * 65536 / 2.84);
|
||||
uint32_t b = (uint32_t)(65536 / 2.84);
|
||||
return (a - (b * value)) >> 16;
|
||||
return ((b * value) - a) >> 16;
|
||||
}
|
||||
|
||||
void kw2xrf_set_option(kw2xrf_t *dev, uint16_t option, bool state)
|
||||
|
||||
@ -169,7 +169,7 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
if (info != NULL) {
|
||||
netdev_ieee802154_rx_info_t *radio_info = info;
|
||||
radio_info->lqi = ((uint8_t*)buf)[pkt_len];
|
||||
radio_info->rssi = (uint8_t)kw2xrf_get_rssi(radio_info->lqi);
|
||||
radio_info->rssi = kw2xrf_get_rssi(radio_info->lqi);
|
||||
}
|
||||
|
||||
/* skip FCS and LQI */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user