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

网络协处理器

此模块包含控制线程堆栈执行的函数。

摘要

类型定义符

otNcpDelegateAllowPeekPoke)(uint32_t aAddress, uint16_t aCount) typedef
bool(*
定义代理(函数指针)类型,用于控制 control 制/点击操作。
otNcpHandlerJoinLegacyNode)(const otExtAddress *aExtAddress) typedef
void(*
定义用于启动加入进程的处理程序(函数指针)类型。
otNcpHandlerSetLegacyUlaPrefix)(const uint8_t *aUlaPrefix) typedef
void(*
定义用于处理旧版 ULA 前缀的处理程序(函数指针)类型。
otNcpHandlerStartLegacy)(void) typedef
void(*
定义用于启动旧版网络的处理程序(函数指针)类型。
otNcpHandlerStopLegacy)(void) typedef
void(*
定义用于停止旧版网络的处理程序(函数指针)类型。
otNcpHdlcSendCallback)(const uint8_t *aBuf, uint16_t aBufLength) typedef
int(*
调用此函数指针以发送 HDLC 编码的 NCP 数据。
otNcpLegacyHandlers typedef
定义一个结构体,其中包含所有旧版处理程序(函数指针)。

函数

otNcpHandleDidReceiveNewLegacyUlaPrefix(const uint8_t *aUlaPrefix)
void
此回调由旧版堆栈调用,旨在通知旧版 ULA 前缀已更改。
otNcpHandleLegacyNodeDidJoin(const otExtAddress *aExtAddr)
void
此旧版堆栈会调用此回调,以通知新的旧版节点确实已加入网络。
otNcpHdlcInit(otInstance *aInstance, otNcpHdlcSendCallback aSendCallback)
void
根据 HDLC 框架来初始化 NCP。
otNcpHdlcReceive(const uint8_t *aBuf, uint16_t aBufLength)
void
在收到 HDLC 编码的 NCP 数据后,系统会调用此函数。
otNcpHdlcSendDone(void)
void
此函数在 NCP 发送完成后调用。
otNcpPlatLogv(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, va_list aArgs)
void
使用 otNcpStreamWrite 写入 OpenThread 日志。
otNcpRegisterLegacyHandlers(const otNcpLegacyHandlers *aHandlers)
void
此方法向 NCP 注册一组旧版处理程序。
otNcpRegisterPeekPokeDelagates(otNcpDelegateAllowPeekPoke aAllowPeekDelegate, otNcpDelegateAllowPeekPoke aAllowPokeDelegate)
void
此方法会向 NCP 模块注册 peek/poke 委托函数。
otNcpSpiInit(otInstance *aInstance)
void
根据 SPI 框架来初始化 NCP。
otNcpStreamWrite(int aStreamId, const uint8_t *aDataPtr, int aDataLen)
通过特定数据流将数据发送到主机。

结构体

otNcpLegacyHandlers

定义一个结构体,其中包含所有旧版处理程序(函数指针)。

类型定义符

otNcpDelegateAllowPeekPoke

bool(* otNcpDelegateAllowPeekPoke)(uint32_t aAddress, uint16_t aCount)

定义代理(函数指针)类型,用于控制 control 制/点击操作。

系统会调用此代理函数,以决定是允许查看还是保留特定内存区域。如果启用了对画中画/唤醒命令的 NCP 支持,请使用该参数。

详情
参数
[in] aAddress
内存区域的起始地址。
[in] aCount
需要滑行或保留的字节数。
返回值
如果允许,则提供指定内存区域的查看/删除功能,否则为 FALSE。

otNcpHandlerJoinLegacyNode

void(* otNcpHandlerJoinLegacyNode)(const otExtAddress *aExtAddress)

定义用于启动加入进程的处理程序(函数指针)类型。

调用以启动到任何或特定节点的旧版加入过程。

详情
参数
[in] aExtAddress
指向要联接的节点的扩展地址的指针,或者,如果要联接任何相邻节点,则为 NULL。

otNcpHandlerSetLegacyUlaPrefix

void(* otNcpHandlerSetLegacyUlaPrefix)(const uint8_t *aUlaPrefix)

定义用于处理旧版 ULA 前缀的处理程序(函数指针)类型。

调用以设置旧 ULA 前缀。

详情
参数
[in] aUlaPrefix
指向包含旧版 ULA 前缀的缓冲区的指针。

otNcpHandlerStartLegacy

void(* otNcpHandlerStartLegacy)(void)

定义用于启动旧版网络的处理程序(函数指针)类型。

调用此方法以启动旧版网络。

otNcpHandlerStopLegacy

void(* otNcpHandlerStopLegacy)(void)

定义用于停止旧版网络的处理程序(函数指针)类型。

调用以停止旧版网络。

otNcpHdlcSendCallback

int(* otNcpHdlcSendCallback)(const uint8_t *aBuf, uint16_t aBufLength)

调用此函数指针以发送 HDLC 编码的 NCP 数据。

详情
参数
[in] aBuf
指向具有输出的缓冲区的指针。
[in] aBufLength
缓冲区中存储的输出数据的长度。
返回值
由回调处理的字节数。

otNcpLegacyHandlers

struct otNcpLegacyHandlers otNcpLegacyHandlers

定义一个结构体,其中包含所有旧版处理程序(函数指针)。

函数

otNcpHandleDidReceiveNewLegacyUlaPrefix

void otNcpHandleDidReceiveNewLegacyUlaPrefix(
  const uint8_t *aUlaPrefix
)

此回调由旧版堆栈调用,旨在通知旧版 ULA 前缀已更改。

详情
参数
[in] aUlaPrefix
指向收到的 ULA 前缀的指针。

otNcpHandleLegacyNodeDidJoin

void otNcpHandleLegacyNodeDidJoin(
  const otExtAddress *aExtAddr
)

此旧版堆栈会调用此回调,以通知新的旧版节点确实已加入网络。

详情
参数
[in] aExtAddr
指向已联接节点的扩展地址的指针。

otNcpHdlcInit

void otNcpHdlcInit(
  otInstance *aInstance,
  otNcpHdlcSendCallback aSendCallback
)

根据 HDLC 框架来初始化 NCP。

详情
参数
[in] aInstance
OpenThread 实例结构。
[in] aSendCallback
用于发送 NCP 数据的函数指针。

otNcpHdlcReceive

void otNcpHdlcReceive(
  const uint8_t *aBuf,
  uint16_t aBufLength
)

在收到 HDLC 编码的 NCP 数据后,系统会调用此函数。

详情
参数
[in] aBuf
指向缓冲区的指针。
[in] aBufLength
缓冲区中存储的数据的长度。

otNcpHdlcSendDone

void otNcpHdlcSendDone(
  void
)

此函数在 NCP 发送完成后调用。

otNcpPlatLogv

void otNcpPlatLogv(
  otLogLevel aLogLevel,
  otLogRegion aLogRegion,
  const char *aFormat,
  va_list aArgs
)

使用 otNcpStreamWrite 写入 OpenThread 日志。

详情
参数
[in] aLogLevel
日志级别。
[in] aLogRegion
日志区域。
[in] aFormat
指向格式字符串的指针。
[in] aArgs
与 aFormat 匹配的 va_list。

otNcpRegisterLegacyHandlers

void otNcpRegisterLegacyHandlers(
  const otNcpLegacyHandlers *aHandlers
)

此方法向 NCP 注册一组旧版处理程序。

结构体 aHandlers 提供的处理程序集供 NCP 代码用于启动/停止旧版网络。aHandlers 可以为 NULL,以停用 NCP 的旧版支持。指定处理程序结构体中的各个处理程序也可以为 NULL。

详情
参数
[in] aHandlers
指向处理程序结构体的指针。

otNcpRegisterPeekPokeDelagates

void otNcpRegisterPeekPokeDelagates(
  otNcpDelegateAllowPeekPoke aAllowPeekDelegate,
  otNcpDelegateAllowPeekPoke aAllowPokeDelegate
)

此方法会向 NCP 模块注册 peek/poke 委托函数。

NCP 模块会调用代理函数,以决定是允许查看还是擦除特定内存区域。如果将委托指针设置为 NULL,该指针允许对任何地址执行提示/poke 操作。

详情
参数
[in] aAllowPeekDelegate
用于快速查看操作的委托函数指针。
[in] aAllowPokeDelegate
用于执行 poke 操作的委托函数指针。

otNcpSpiInit

void otNcpSpiInit(
  otInstance *aInstance
)

根据 SPI 框架来初始化 NCP。

详情
参数
[in] aInstance
OpenThread 实例结构。

otNcpStreamWrite

otError otNcpStreamWrite(
  int aStreamId,
  const uint8_t *aDataPtr,
  int aDataLen
)

通过特定数据流将数据发送到主机。

此函数会尝试使用指定的 aStreamId 将给定数据发送到主机。这对于报告错误消息、实现调试/诊断控制台以及可能其他类型的数据流很有用。

写入要么全部接受,要么被拒绝。系统不会尝试执行部分写入。

详情
参数
[in] aStreamId
要向其写入数据的流的数字标识符。如果设置为“0”,将默认为调试流。
[in] aDataPtr
指向要在信息流中发送的数据的指针。如果 aDataLen 为非零值,则该参数不得为 NULL。
[in] aDataLen
要发送的来自 aDataPtr 的数据字节数。
返回值
OT_ERROR_NONE
数据已加入队列等待传送到主机。
OT_ERROR_BUSY
资源不足,无法完成此请求。这种情况通常是暂时的。
OT_ERROR_INVALID_ARGS
指定的 aStreamId 无效。

OT_NCP_LEGACY_ULA_PREFIX_LENGTH

 OT_NCP_LEGACY_ULA_PREFIX_LENGTH 8

旧版 ULA 大小(以字节为单位)

资源

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