訊息

這個模組含有會操控 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 訊息的優先順序等級。

Typedefs

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
重設訊息緩衝區資訊計數器,同時追蹤使用中的緩衝區數量上限。
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

一般優先順序等級。

Typedefs

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
otMessageWrite
otMessageSetLength

otMessageGetOffset

uint16_t otMessageGetOffset(
  const otMessage *aMessage
)

取得訊息偏移 (以位元組為單位)。

詳細說明
參數
[in] aMessage
指向訊息緩衝區的指標。
傳回
訊息偏移值。
另請參閱:
otMessageFree
otMessageGetLength
otMessageSetLength
otMessageSetOffset
otMessageRead
otMessageWrite

otMessageGetOrigin

otMessageOrigin otMessageGetOrigin(
  const otMessage *aMessage
)

取得訊息來源。

詳細說明
參數
[in] aMessage
指向訊息緩衝區的指標。
傳回
訊息來源。

otMessageGetRss

int8_t otMessageGetRss(
  const otMessage *aMessage
)

傳回與訊息相關聯的平均 RSS (接收訊號強度)。

詳細說明
傳回
如果沒有平均 RSS 資訊,則平均 RSS 值 (以 dBm 表示) 或 OT_RADIO_RSSI_INVALID。

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,或該工作多次初始化,則未定義該行為。

詳細說明
參數
[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
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageWrite

otMessageResetBufferInfo

void otMessageResetBufferInfo(
  otInstance *aInstance
)

重設訊息緩衝區資訊計數器,同時追蹤使用中的緩衝區數量上限。

這會重設 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
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
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
otMessageGetLength
otMessageSetLength
otMessageGetOffset
otMessageSetOffset
otMessageRead

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源