消息

此模块包含用于操纵 OpenThread 消息缓冲区的函数。

摘要

枚举

otMessageOrigin{
  OT_MESSAGE_ORIGIN_THREAD_NETIF = 0,
  OT_MESSAGE_ORIGIN_HOST_TRUSTED = 1,
  OT_MESSAGE_ORIGIN_HOST_UNTRUSTED = 2
}
枚举
定义 OpenThread 消息来源。
otMessagePriority{
  OT_MESSAGE_PRIORITY_LOW = 0,
  OT_MESSAGE_PRIORITY_NORMAL = 1,
  OT_MESSAGE_PRIORITY_HIGH = 2
}
枚举
定义 OpenThread 消息优先级。

类型定义符

otBufferInfo typedef
struct otBufferInfo
表示 OpenThread 堆栈使用的不同队列的消息缓冲区信息。
otMessage typedef
struct otMessage
OpenThread 消息缓冲区的不透明表示法。
otMessageOrigin typedef
定义 OpenThread 消息来源。
otMessagePriority typedef
定义 OpenThread 消息优先级。
otMessageQueueInfo typedef
表示有关消息队列的信息。
otMessageSettings typedef
表示消息设置。

函数

otMessageAppend(otMessage *aMessage, const void *aBuf, uint16_t aLength)
向消息附加字节。
otMessageFree(otMessage *aMessage)
void
释放已分配的消息缓冲区。
otMessageGetBufferInfo(otInstance *aInstance, otBufferInfo *aBufferInfo)
void
获取消息缓冲区信息。
otMessageGetLength(const otMessage *aMessage)
uint16_t
获取消息长度(以字节为单位)。
otMessageGetOffset(const otMessage *aMessage)
uint16_t
获取消息偏移量(以字节为单位)。
otMessageGetOrigin(const otMessage *aMessage)
获取消息来源。
otMessageGetRss(const otMessage *aMessage)
int8_t
返回与邮件相关联的平均 RSS(接收信号强度)。
otMessageIsLinkSecurityEnabled(const otMessage *aMessage)
bool
指明是否已为邮件启用链接安全。
otMessageIsLoopbackToHostAllowed(const otMessage *aMessage)
bool
指示是否允许将消息环回至主机。
otMessageIsMulticastLoopEnabled(otMessage *aMessage)
bool
指示在多播目标地址的情况下,指定消息是否可以环回。
otMessageQueueDequeue(otMessageQueue *aQueue, otMessage *aMessage)
void
从指定消息队列中移除消息。
otMessageQueueEnqueue(otMessageQueue *aQueue, otMessage *aMessage)
void
将消息添加到给定消息队列的末尾。
otMessageQueueEnqueueAtHead(otMessageQueue *aQueue, otMessage *aMessage)
void
在指定消息队列的头/前添加消息。
otMessageQueueGetHead(otMessageQueue *aQueue)
返回指向队列开头消息的指针。
otMessageQueueGetNext(otMessageQueue *aQueue, const otMessage *aMessage)
通过向前迭代(从头到尾)返回指向队列中下一条消息的指针。
otMessageQueueInit(otMessageQueue *aQueue)
void
初始化消息队列。
otMessageRead(const otMessage *aMessage, uint16_t aOffset, void *aBuf, uint16_t aLength)
uint16_t
从消息中读取字节。
otMessageResetBufferInfo(otInstance *aInstance)
void
重置 Message Buffer 信息计数器,以跟踪同时使用的缓冲区数上限。
otMessageSetDirectTransmission(otMessage *aMessage, bool aEnabled)
void
设置/强制使用直接传输转发邮件。
otMessageSetLength(otMessage *aMessage, uint16_t aLength)
设置消息长度(以字节为单位)。
otMessageSetLoopbackToHostAllowed(otMessage *aMessage, bool aAllowLoopbackToHost)
void
设置是否允许消息环回至主机。
otMessageSetMulticastLoopEnabled(otMessage *aMessage, bool aEnabled)
void
控制在多播目标地址的情况下是否可环回给定消息。
otMessageSetOffset(otMessage *aMessage, uint16_t aOffset)
void
设置消息偏移量(以字节为单位)。
otMessageSetOrigin(otMessage *aMessage, otMessageOrigin aOrigin)
void
设置消息来源。
otMessageWrite(otMessage *aMessage, uint16_t aOffset, const void *aBuf, uint16_t aLength)
int
向消息写入字节。

结构体

otBufferInfo

表示 OpenThread 堆栈使用的不同队列的消息缓冲区信息。

otMessageQueue

表示 OpenThread 消息队列。

otMessageQueueInfo

表示有关消息队列的信息。

otMessageSettings

表示消息设置。

枚举

otMessageOrigin

 otMessageOrigin

定义 OpenThread 消息来源。

属性
OT_MESSAGE_ORIGIN_HOST_TRUSTED

来自主机上可信来源的消息。

OT_MESSAGE_ORIGIN_HOST_UNTRUSTED

来自主机上不受信任来源的消息。

OT_MESSAGE_ORIGIN_THREAD_NETIF

来自 Thread Netif 的消息。

otMessagePriority

 otMessagePriority

定义 OpenThread 消息优先级。

属性
OT_MESSAGE_PRIORITY_HIGH

高优先级。

OT_MESSAGE_PRIORITY_LOW

低优先级。

OT_MESSAGE_PRIORITY_NORMAL

普通优先级。

类型定义符

otBufferInfo

struct otBufferInfo otBufferInfo

表示 OpenThread 堆栈使用的不同队列的消息缓冲区信息。

otMessage

struct otMessage otMessage

OpenThread 消息缓冲区的不透明表示法。

otMessageOrigin

enum otMessageOrigin otMessageOrigin

定义 OpenThread 消息来源。

otMessagePriority

enum otMessagePriority otMessagePriority

定义 OpenThread 消息优先级。

otMessageQueueInfo

struct otMessageQueueInfo otMessageQueueInfo

表示有关消息队列的信息。

otMessageSettings

struct otMessageSettings otMessageSettings

表示消息设置。

函数

otMessageAppend

otError otMessageAppend(
  otMessage *aMessage,
  const void *aBuf,
  uint16_t aLength
)

向消息附加字节。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aBuf
指向要附加的数据的指针。
[in] aLength
要附加的字节数。
返回值
OT_ERROR_NONE
已成功附加到邮件
OT_ERROR_NO_BUFS
没有可用的缓冲区来扩展消息。
另请参阅
otMessageFree
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead
otMessageWrite

otMessageFree

void otMessageFree(
  otMessage *aMessage
)

释放已分配的消息缓冲区。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
另请参阅
otMessageAppend
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead
otMessageWrite

otMessageGetBufferInfo

void otMessageGetBufferInfo(
  otInstance *aInstance,
  otBufferInfo *aBufferInfo
)

获取消息缓冲区信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aBufferInfo
写入消息缓冲区信息的指针。

otMessageGetLength

uint16_t otMessageGetLength(
  const otMessage *aMessage
)

获取消息长度(以字节为单位)。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
返回值
消息长度(以字节为单位)。
另请参阅
otMessageFree
otMessageAppend
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead
otMessageWrite
} otMessageSetLength

otMessageGetOffset

uint16_t otMessageGetOffset(
  const otMessage *aMessage
)

获取消息偏移量(以字节为单位)。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
返回值
消息偏移值。
另请参阅
otMessageFree
otMessageAppend
otMessageGetLength
otMessageSetLength
otMessageSetOffset
otMessageRead
otMessageWrite

otMessageGetOrigin

otMessageOrigin otMessageGetOrigin(
  const otMessage *aMessage
)

获取消息来源。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
返回值
消息来源。

otMessageGetRss

int8_t otMessageGetRss(
  const otMessage *aMessage
)

返回与邮件相关联的平均 RSS(接收信号强度)。

具体说明
返回值
平均 RSS 值(以 dBm 为单位)或 OT_RADIO_RSSI_INVALID(如果没有平均 RSS)可用。

otMessageIsLinkSecurityEnabled

bool otMessageIsLinkSecurityEnabled(
  const otMessage *aMessage
)

指明是否已为邮件启用链接安全。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
返回值
TRUE
如果已启用链接安全机制。
FALSE
如果未启用链接安全。

otMessageIsLoopbackToHostAllowed

bool otMessageIsLoopbackToHostAllowed(
  const otMessage *aMessage
)

指示是否允许将消息环回至主机。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
返回值
TRUE
是否允许消息环回至主机。
FALSE
是否允许消息环回至主机。

otMessageIsMulticastLoopEnabled

bool otMessageIsMulticastLoopEnabled(
  otMessage *aMessage
)

指示在多播目标地址的情况下,指定消息是否可以环回。

如果将 aMessageotMessageInfo 一起使用,则 otMessageInfo 结构中的 mMulticastLoop 字段优先级更高,且将使用在 aMessage 中设置的值。

此 API 主要与 otIp6Send() 一起使用,后者需要准备好的 IPv6 消息。

具体说明
参数
[in] aMessage
指向消息的指针。

otMessageQueueDequeue

void otMessageQueueDequeue(
  otMessageQueue *aQueue,
  otMessage *aMessage
)

从指定消息队列中移除消息。

具体说明
参数
[in] aQueue
指向消息队列的指针。
[in] aMessage
要移除的消息。

otMessageQueueEnqueue

void otMessageQueueEnqueue(
  otMessageQueue *aQueue,
  otMessage *aMessage
)

将消息添加到给定消息队列的末尾。

具体说明
参数
[in] aQueue
指向消息队列的指针。
[in] aMessage
要添加的消息。

otMessageQueueEnqueueAtHead

void otMessageQueueEnqueueAtHead(
  otMessageQueue *aQueue,
  otMessage *aMessage
)

在指定消息队列的头/前添加消息。

具体说明
参数
[in] aQueue
指向消息队列的指针。
[in] aMessage
要添加的消息。

otMessageQueueGetHead

otMessage * otMessageQueueGetHead(
  otMessageQueue *aQueue
)

返回指向队列开头消息的指针。

具体说明
参数
[in] aQueue
指向消息队列的指针。
返回值
指向位于队列开头的消息的指针,如果队列为空,则为 NULL。

otMessageQueueGetNext

otMessage * otMessageQueueGetNext(
  otMessageQueue *aQueue,
  const otMessage *aMessage
)

通过向前迭代(从头到尾)返回指向队列中下一条消息的指针。

具体说明
参数
[in] aQueue
指向消息队列的指针。
[in] aMessage
指向当前消息缓冲区的指针。
返回值
指向 aMessage 之后队列中的下一条消息的指针,如果为 aMessage is the tail of queue. NULL is returned ifaMessageis not in the queueaQueue`,则返回 NULL。

otMessageQueueInit

void otMessageQueueInit(
  otMessageQueue *aQueue
)

初始化消息队列。

对于 otMessageQueue 实例,必须在任何其他 otMessageQueue 函数之前调用一次,并且只能调用一次。如果在初始化 otMessageQueue 之前将其他队列 API 与其他队列 API 一起使用,或者多次初始化,则行为未定义。

具体说明
参数
[in] aQueue
指向消息队列的指针。

otMessageRead

uint16_t otMessageRead(
  const otMessage *aMessage,
  uint16_t aOffset,
  void *aBuf,
  uint16_t aLength
)

从消息中读取字节。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aOffset
偏移量(以字节为单位)。
[in] aBuf
指向消息字节要读取到的缓冲区的指针。
[in] aLength
要读取的字节数。
返回值
读取的字节数。
另请参阅
otMessageFree
otMessageAppend
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageWrite

otMessageResetBufferInfo

void otMessageResetBufferInfo(
  otInstance *aInstance
)

重置 Message Buffer 信息计数器,以跟踪同时使用的缓冲区数上限。

这会重置 otBufferInfo 中的 mMaxUsedBuffers

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。

otMessageSetDirectTransmission

void otMessageSetDirectTransmission(
  otMessage *aMessage,
  bool aEnabled
)

设置/强制使用直接传输转发邮件。

新消息的默认设置为 false

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aEnabled
如果为 true,则强制消息使用直接传输。如果为 false,则消息遵循正常流程。

otMessageSetLength

otError otMessageSetLength(
  otMessage *aMessage,
  uint16_t aLength
)

设置消息长度(以字节为单位)。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aLength
长度(以字节为单位)。
返回值
OT_ERROR_NONE
已成功设置消息长度。
OT_ERROR_NO_BUFS
没有可用的缓冲区来扩展消息。
另请参阅
otMessageFree
otMessageAppend
otMessageGetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead
otMessageWrite

otMessageSetLoopbackToHostAllowed

void otMessageSetLoopbackToHostAllowed(
  otMessage *aMessage,
  bool aAllowLoopbackToHost
)

设置是否允许消息环回至主机。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aAllowLoopbackToHost
是否允许将消息环回至主机。

otMessageSetMulticastLoopEnabled

void otMessageSetMulticastLoopEnabled(
  otMessage *aMessage,
  bool aEnabled
)

控制在多播目标地址的情况下是否可环回给定消息。

具体说明
参数
[in] aMessage
指向消息的指针。
[in] aEnabled
配置值。

otMessageSetOffset

void otMessageSetOffset(
  otMessage *aMessage,
  uint16_t aOffset
)

设置消息偏移量(以字节为单位)。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aOffset
偏移量(以字节为单位)。
另请参阅
otMessageFree
otMessageAppend
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageRead
otMessageWrite

otMessageSetOrigin

void otMessageSetOrigin(
  otMessage *aMessage,
  otMessageOrigin aOrigin
)

设置消息来源。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aOrigin
消息来源。

otMessageWrite

int otMessageWrite(
  otMessage *aMessage,
  uint16_t aOffset,
  const void *aBuf,
  uint16_t aLength
)

向消息写入字节。

具体说明
参数
[in] aMessage
指向消息缓冲区的指针。
[in] aOffset
偏移量(以字节为单位)。
[in] aBuf
指向写入消息字节的缓冲区的指针。
[in] aLength
要写入的字节数。
返回值
写入的字节数。
另请参阅
otMessageFree
otMessageAppend
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead

资源

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