Jam 检测

此模块包含信号干扰检测功能。

摘要

启用卡顿检测功能 (OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE) 后,才能使用此模块中的函数。

类型定义符

otJamDetectionCallback)(bool aJamState, void *aContext) typedef
void(*
启用信号干扰检测后,系统会调用指针。

函数

otJamDetectionGetBusyPeriod(otInstance *aInstance)
uint8_t
获取 Jam 检测繁忙时段(以秒为单位)
otJamDetectionGetHistoryBitmap(otInstance *aInstance)
uint64_t
获取当前的历史记录位图。
otJamDetectionGetRssiThreshold(otInstance *aInstance)
int8_t
获取 Jam 检测 RSSI 阈值(以 dBm 为单位)。
otJamDetectionGetState(otInstance *aInstance)
bool
获取 Jam 检测状态。
otJamDetectionGetWindow(otInstance *aInstance)
uint8_t
获取 Jam 检测窗口(以秒为单位)。
otJamDetectionIsEnabled(otInstance *aInstance)
bool
获取 Jam 检测状态(已启用/已停用)
otJamDetectionSetBusyPeriod(otInstance *aInstance, uint8_t aBusyPeriod)
设置 Jam 检测繁忙时段(以秒为单位)。
otJamDetectionSetRssiThreshold(otInstance *aInstance, int8_t aRssiThreshold)
设置 Jam 检测 RSSI 阈值(以 dBm 为单位)。
otJamDetectionSetWindow(otInstance *aInstance, uint8_t aWindow)
设置 Jam 检测窗口(以秒为单位)。
otJamDetectionStart(otInstance *aInstance, otJamDetectionCallback aCallback, void *aContext)
启动干扰检测。
otJamDetectionStop(otInstance *aInstance)
停止干扰检测。

类型定义符

otJamDetectionCallback

void(* otJamDetectionCallback)(bool aJamState, void *aContext)

启用信号干扰检测后,系统会调用指针。

具体说明
参数
[in] aJamState
当前的卡纸状态(如果检测到卡塞,则为 true;否则为 false)。
[in] aContext
指向应用特定上下文的指针。

函数

otJamDetectionGetBusyPeriod

uint8_t otJamDetectionGetBusyPeriod(
  otInstance *aInstance
)

获取 Jam 检测繁忙时段(以秒为单位)

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测繁忙时段。

otJamDetectionGetHistoryBitmap

uint64_t otJamDetectionGetHistoryBitmap(
  otInstance *aInstance
)

获取当前的历史记录位图。

此值提供了有关干扰检测模块的当前状态的信息,以便进行监控/调试。它返回一个 64 位的值,其中每个位对应一秒间隔,从位 0 开始表示最近的间隔,从位 63 开始(最早间隔为 63 秒)。如果干扰检测模块在对应的一秒间隔内观察到/检测到高信号电平,则将该位设为 1。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
当前历史记录位图。

otJamDetectionGetRssiThreshold

int8_t otJamDetectionGetRssiThreshold(
  otInstance *aInstance
)

获取 Jam 检测 RSSI 阈值(以 dBm 为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测 RSSI 阈值。

otJamDetectionGetState

bool otJamDetectionGetState(
  otInstance *aInstance
)

获取 Jam 检测状态。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测状态(检测到 true Jam,否则为“false”)。

otJamDetectionGetWindow

uint8_t otJamDetectionGetWindow(
  otInstance *aInstance
)

获取 Jam 检测窗口(以秒为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测窗口。

otJamDetectionIsEnabled

bool otJamDetectionIsEnabled(
  otInstance *aInstance
)

获取 Jam 检测状态(已启用/已停用)

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测状态(如果已启用,则为 true,否则为 false)。

otJamDetectionSetBusyPeriod

otError otJamDetectionSetBusyPeriod(
  otInstance *aInstance,
  uint8_t aBusyPeriod
)

设置 Jam 检测繁忙时段(以秒为单位)。

检测时间范围内的总秒数,在此时间段内,RSSI 必须高于阈值才能触发检测。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aBusyPeriod
Jam 检测繁忙时段(应为非零值,且小于或等于 Jam 检测窗口)
返回值
OT_ERROR_NONE
成功设置时间范围。
OT_ERROR_INVALID_ARGS
给定的输入不在有效范围内。

otJamDetectionSetRssiThreshold

otError otJamDetectionSetRssiThreshold(
  otInstance *aInstance,
  int8_t aRssiThreshold
)

设置 Jam 检测 RSSI 阈值(以 dBm 为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRssiThreshold
RSSI 阈值。
返回值
OT_ERROR_NONE
已成功设置阈值。

otJamDetectionSetWindow

otError otJamDetectionSetWindow(
  otInstance *aInstance,
  uint8_t aWindow
)

设置 Jam 检测窗口(以秒为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aWindow
Jam 检测窗口(有效范围为 1 到 63)
返回值
OT_ERROR_NONE
成功设置时间范围。
OT_ERROR_INVALID_ARGS
给定的输入参数不在有效范围 (1-63) 内

otJamDetectionStart

otError otJamDetectionStart(
  otInstance *aInstance,
  otJamDetectionCallback aCallback,
  void *aContext
)

启动干扰检测。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向调用函数的指针,用于通知干扰状态变化。
[in] aContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功启动干扰检测。
OT_ERROR_ALREADY
Jam 检测功能之前已启动。

otJamDetectionStop

otError otJamDetectionStop(
  otInstance *aInstance
)

停止干扰检测。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功停止干扰检测。
OT_ERROR_ALREADY
已停止检测 Jam。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源