网络协同处理器

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

摘要

类型定义符

otNcpDelegateAllowPeekPoke)(uint32_t aAddress, uint16_t aCount) typedef
bool(*
定义用于控制滑出/触碰操作行为的委托(函数指针)类型。
otNcpHdlcSendCallback)(const uint8_t *aBuf, uint16_t aBufLength) typedef
int(*
系统会调用指针来发送 HDLC 编码的 NCP 数据。

函数

otNcpHdlcInit(otInstance *aInstance, otNcpHdlcSendCallback aSendCallback)
void
根据 HDLC 取景来初始化 NCP。
otNcpHdlcInitMulti(otInstance **aInstance, uint8_t aCount, 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 Log。
otNcpRegisterPeekPokeDelegates(otNcpDelegateAllowPeekPoke aAllowPeekDelegate, otNcpDelegateAllowPeekPoke aAllowPokeDelegate)
void
向 NCP 模块注册 peek/poke 委托函数。
otNcpSpiInit(otInstance *aInstance)
void
根据 SPI 框架初始化 NCP。
otNcpStreamWrite(int aStreamId, const uint8_t *aDataPtr, int aDataLen)
通过特定的数据流将数据发送到主机。

类型定义符

otNcpDelegateAllowPeekPoke

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

定义用于控制滑出/触碰操作行为的委托(函数指针)类型。

系统会调用此委托函数来决定是否允许探查或探查特定内存区域。如果启用了对 Peek/poke 命令的 NCP 支持,系统就会使用该参数。

具体说明
参数
[in] aAddress
内存区域的起始地址。
[in] aCount
要窥探或探查的字节数。
返回值
如果允许查看指定内存区域,则为 TRUE,否则为 FALSE。

otNcpHdlcSendCallback

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

系统会调用指针来发送 HDLC 编码的 NCP 数据。

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

函数

otNcpHdlcInit

void otNcpHdlcInit(
  otInstance *aInstance,
  otNcpHdlcSendCallback aSendCallback
)

根据 HDLC 取景来初始化 NCP。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aSendCallback
用于发送 NCP 数据的函数指针。

otNcpHdlcInitMulti

void otNcpHdlcInitMulti(
  otInstance **aInstance,
  uint8_t aCount,
  otNcpHdlcSendCallback aSendCallback
)

根据 HDLC 取景来初始化 NCP。

具体说明
参数
[in] aInstances
OpenThread 实例指针数组。
[in] aCount
数组中的元素数量。
[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 Log。

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

otNcpRegisterPeekPokeDelegates

void otNcpRegisterPeekPokeDelegates(
  otNcpDelegateAllowPeekPoke aAllowPeekDelegate,
  otNcpDelegateAllowPeekPoke aAllowPokeDelegate
)

向 NCP 模块注册 peek/poke 委托函数。

委托函数由 NCP 模块调用,以决定是否允许探查或探查特定内存区域。如果委托指针设置为 NULL,则可以对任何地址执行窥探/探查操作。

具体说明
参数
[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 无效。

资源

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