Google 致力于为黑人社区推动种族平等。查看具体行动

Jam 检测

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

摘要

启用 Jam 检测功能 (OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE) 后,即可使用此模块中的函数。

类型定义符

otJamDetectionCallback)(bool aJamState, void *aContext) typedef
void(*
如果已启用信号干扰检测,且检测到 Jam,便会调用此函数指针。

函数

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 Detection RSSI 阈值(以 dBm 为单位)。
otJamDetectionSetWindow(otInstance *aInstance, uint8_t aWindow)
设置 Jam 检测检测窗口(以秒为单位)。
otJamDetectionStart(otInstance *aInstance, otJamDetectionCallback aCallback, void *aContext)
开始 Jam 检测。
otJamDetectionStop(otInstance *aInstance)
停止 Jam 检测。

类型定义符

otJamDetectionCallback

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

如果已启用信号干扰检测,且检测到 Jam,便会调用此函数指针。

详情
参数
[in] aJamState
当前的 Jam 状态(如果检测到 Jam,则为 true,否则为 false)。
[in] aContext
指向应用特定上下文的指针。

函数

otJamDetectionGetBusyPeriod

uint8_t otJamDetectionGetBusyPeriod(
  otInstance *aInstance
)

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

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Jam 检测服务繁忙时段。

otJamDetectionGetHistoryBitmap

uint64_t otJamDetectionGetHistoryBitmap(
  otInstance *aInstance
)

获取当前历史记录位图。

此值提供有关用于监控/调试的干扰检测模块当前状态的信息。它会返回一个 64 位值,其中每个位都对应 1 秒的间隔(从最近的零开始,位 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 卡纸,否则为“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 Detection 窗口)
返回值
OT_ERROR_NONE
已成功设置时间范围。
OT_ERROR_INVALID_ARGS
输入的内容不在有效范围内。

otJamDetectionSetRssiThreshold

otError otJamDetectionSetRssiThreshold(
  otInstance *aInstance,
  int8_t aRssiThreshold
)

设置 Jam Detection 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
)

开始 Jam 检测。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向此函数的指针,用于通知干扰状态更改。
[in] aContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功开始 Jam 检测。
OT_ERROR_ALREADY
之前已经开始了 Jam 检测。

otJamDetectionStop

otError otJamDetectionStop(
  otInstance *aInstance
)

停止 Jam 检测。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功停止 Jam 检测。
OT_ERROR_ALREADY
Jam 检测已停止。

资源

OpenThread API 参考主题源自源代码,可在 GitHub 上找到。 如需了解详情或为我们的文档做贡献,请参阅资源