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
|
* @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
|
* @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;
|
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)
|
/* Get rssi (Received Signal Strength Indicator, unit is dBm)
|
||||||
* from lqi (Link Quality Indicator) value.
|
* 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 a = (uint32_t)(295.4 * 65536 / 2.84);
|
||||||
uint32_t b = (uint32_t)(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)
|
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) {
|
if (info != NULL) {
|
||||||
netdev_ieee802154_rx_info_t *radio_info = info;
|
netdev_ieee802154_rx_info_t *radio_info = info;
|
||||||
radio_info->lqi = ((uint8_t*)buf)[pkt_len];
|
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 */
|
/* skip FCS and LQI */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user