This module includes functions for channel monitoring feature.
Functions |
|
otError | otChannelMonitorSetEnabled ( otInstance *aInstance, bool aEnabled) |
This function enables/disables the Channel Monitoring operation.
|
|
bool | otChannelMonitorIsEnabled ( otInstance *aInstance) |
This function indicates whether the Channel Monitoring operation is enabled and running.
|
|
uint32_t | otChannelMonitorGetSampleInterval ( otInstance *aInstance) |
Get channel monitoring sample interval in milliseconds.
|
|
int8_t | otChannelMonitorGetRssiThreshold ( otInstance *aInstance) |
Get channel monitoring RSSI threshold in dBm.
|
|
uint32_t | otChannelMonitorGetSampleWindow ( otInstance *aInstance) |
Get channel monitoring averaging sample window length (number of samples).
|
|
uint32_t | otChannelMonitorGetSampleCount ( otInstance *aInstance) |
Get channel monitoring total number of RSSI samples (per channel).
|
|
uint16_t | otChannelMonitorGetChannelOccupancy ( otInstance *aInstance, uint8_t aChannel) |
Gets the current channel occupancy for a given channel.
|
Detailed Description
This module includes functions for channel monitoring feature.
The functions in this module are available when channel monitor feature (
OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE
) is enabled.
Channel monitoring will periodically monitor all channels to help determine the cleaner channels (channels with less interference).
When channel monitoring is active, a zero-duration Energy Scan is performed, collecting a single RSSI sample on every channel per sample interval. The RSSI samples are compared with a pre-specified RSSI threshold. As an indicator of channel quality, the channel monitoring module maintains and provides the average rate/percentage of RSSI samples that are above the threshold within (approximately) a specified sample window (referred to as channel occupancy).
Function Documentation
◆ otChannelMonitorGetChannelOccupancy()
uint16_t otChannelMonitorGetChannelOccupancy | ( | otInstance * |
aInstance,
|
uint8_t |
aChannel
|
||
) |
Gets the current channel occupancy for a given channel.
The channel occupancy value represents the average rate/percentage of RSSI samples that were above RSSI threshold ("bad" RSSI samples).
For the first "sample window" samples, the average is maintained as the actual percentage (i.e., ratio of number of "bad" samples by total number of samples). After "window" samples, the averager uses an exponentially weighted moving average. Practically, this means the average is representative of up to
3 * window
last samples with highest weight given to the latest
kSampleWindow
samples.
Max value of
0xffff
indicates all RSSI samples were above RSSI threshold (i.e. 100% of samples were "bad").
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance. [in] aChannel
The channel for which to get the link occupancy.
- Returns
- The current channel occupancy for the given channel.
◆ otChannelMonitorGetRssiThreshold()
int8_t otChannelMonitorGetRssiThreshold | ( | otInstance * |
aInstance
|
) |
Get channel monitoring RSSI threshold in dBm.
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance.
- Returns
- The RSSI threshold in dBm.
◆ otChannelMonitorGetSampleCount()
uint32_t otChannelMonitorGetSampleCount | ( | otInstance * |
aInstance
|
) |
Get channel monitoring total number of RSSI samples (per channel).
The count indicates total number samples per channel by channel monitoring module since its start (since Thread network interface was enabled).
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance.
- Returns
- Total number of RSSI samples (per channel) taken so far.
◆ otChannelMonitorGetSampleInterval()
uint32_t otChannelMonitorGetSampleInterval | ( | otInstance * |
aInstance
|
) |
Get channel monitoring sample interval in milliseconds.
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance.
- Returns
- The channel monitor sample interval in milliseconds.
◆ otChannelMonitorGetSampleWindow()
uint32_t otChannelMonitorGetSampleWindow | ( | otInstance * |
aInstance
|
) |
Get channel monitoring averaging sample window length (number of samples).
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance.
- Returns
- The averaging sample window.
◆ otChannelMonitorIsEnabled()
bool otChannelMonitorIsEnabled | ( | otInstance * |
aInstance
|
) |
This function indicates whether the Channel Monitoring operation is enabled and running.
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance.
- Returns
- TRUE if the Channel Monitoring operation is enabled, FALSE otherwise.
◆ otChannelMonitorSetEnabled()
otError otChannelMonitorSetEnabled | ( | otInstance * |
aInstance,
|
bool |
aEnabled
|
||
) |
This function enables/disables the Channel Monitoring operation.
Once operation starts, any previously collected data is cleared. However, after operation is disabled, the previous collected data is still valid and can be read.
- Note
-
OpenThread core internally enables/disables the Channel Monitoring operation when the IPv6 interface is brought up/down (i.e., call to
otIp6SetEnabled()
).
- Parameters
-
[in] aInstance
A pointer to an OpenThread instance. [in] aEnabled
TRUE to enable/start Channel Monitoring operation, FALSE to disable/stop it.
- Return values
-
OT_ERROR_NONE
Channel Monitoring state changed successfully OT_ERROR_ALREADY
Channel Monitoring is already in the same state.