Add otPlatRadioGetReceiveSensitivity() API (#1715)

* Add otPlatRadioGetReceiveSensitivity() API

* Add a new otPlatRadioGetReceiveSensitivity() API to get sensitivity value;

* Use the receive sensitivity value as the noise floor for link metric computation;

* Remove some unused noise floor related functions.

* Add SPINEL_PROP_PHY_RX_SENSITIVITY Spinel/NCP property
This commit is contained in:
Shu Chen
2017-05-04 20:38:37 -07:00
committed by Jonathan Hui
parent 849dcba11b
commit 66f6e7088d
18 changed files with 148 additions and 76 deletions
+25
View File
@@ -814,6 +814,31 @@ void otPlatRadioSetDefaultTxPower(_In_ otInstance *otCtx, int8_t aPower)
}
}
int8_t otPlatRadioGetReceiveSensitivity(_In_ otInstance *otCtx)
{
NT_ASSERT(otCtx);
PMS_FILTER pFilter = otCtxToFilter(otCtx);
NTSTATUS status;
int8_t receiveSensitivity;
status =
otLwfCmdGetProp(
pFilter,
NULL,
SPINEL_PROP_PHY_RX_SENSITIVITY,
SPINEL_DATATYPE_INT8_S,
&receiveSensitivity
);
if (!NT_SUCCESS(status))
{
LogError(DRIVER_DEFAULT, "Get SPINEL_PROP_PHY_RX_SENSITIVITY, failed, %!STATUS!", status);
return -100; // return default value -100dBm
}
return receiveSensitivity;
}
inline USHORT getDstShortAddress(const UCHAR *frame)
{
return (((USHORT)frame[IEEE802154_DSTADDR_OFFSET + 1]) << 8) | frame[IEEE802154_DSTADDR_OFFSET];