執行個體

這個模組包含控制 OpenThread 執行個體的函式。

摘要

列舉

anonymous enum{
  OT_CHANGED_IP6_ADDRESS_ADDED = 1 << 0,
  OT_CHANGED_IP6_ADDRESS_REMOVED = 1 << 1,
  OT_CHANGED_THREAD_ROLE = 1 << 2,
  OT_CHANGED_THREAD_LL_ADDR = 1 << 3,
  OT_CHANGED_THREAD_ML_ADDR = 1 << 4,
  OT_CHANGED_THREAD_RLOC_ADDED = 1 << 5,
  OT_CHANGED_THREAD_RLOC_REMOVED = 1 << 6,
  OT_CHANGED_THREAD_PARTITION_ID = 1 << 7,
  OT_CHANGED_THREAD_KEY_SEQUENCE_COUNTER = 1 << 8,
  OT_CHANGED_THREAD_NETDATA = 1 << 9,
  OT_CHANGED_THREAD_CHILD_ADDED = 1 << 10,
  OT_CHANGED_THREAD_CHILD_REMOVED = 1 << 11,
  OT_CHANGED_IP6_MULTICAST_SUBSCRIBED = 1 << 12,
  OT_CHANGED_IP6_MULTICAST_UNSUBSCRIBED = 1 << 13,
  OT_CHANGED_THREAD_CHANNEL = 1 << 14,
  OT_CHANGED_THREAD_PANID = 1 << 15,
  OT_CHANGED_THREAD_NETWORK_NAME = 1 << 16,
  OT_CHANGED_THREAD_EXT_PANID = 1 << 17,
  OT_CHANGED_NETWORK_KEY = 1 << 18,
  OT_CHANGED_PSKC = 1 << 19,
  OT_CHANGED_SECURITY_POLICY = 1 << 20,
  OT_CHANGED_CHANNEL_MANAGER_NEW_CHANNEL = 1 << 21,
  OT_CHANGED_SUPPORTED_CHANNEL_MASK = 1 << 22,
  OT_CHANGED_COMMISSIONER_STATE = 1 << 23,
  OT_CHANGED_THREAD_NETIF_STATE = 1 << 24,
  OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE = 1 << 25,
  OT_CHANGED_THREAD_BACKBONE_ROUTER_LOCAL = 1 << 26,
  OT_CHANGED_JOINER_STATE = 1 << 27,
  OT_CHANGED_ACTIVE_DATASET = 1 << 28,
  OT_CHANGED_PENDING_DATASET = 1 << 29
}
列舉
這項列舉定義了 otStateChangedCallback 中傳遞的旗標。

Typedefs

otChangedFlags typedef
uint32_t
這個類型代表一個位元欄位,代表已變更的特定狀態/設定。
otInstance typedef
struct otInstance
這個結構代表 OpenThread 執行個體結構。
otStateChangedCallback)(otChangedFlags aFlags, void *aContext) typedef
void(*
系統會呼叫這個函式指標來通知 OpenThread 中的某些設定或狀態變更。

函式

otGetRadioVersionString(otInstance *aInstance)
const char *
這個函式會取得 OpenThread 圓形按鈕版本字串。
otGetVersionString(void)
const char *
這個函式會取得 OpenThread 版本字串。
otInstanceErasePersistentInfo(otInstance *aInstance)
這個函式會清除儲存在非易用記憶體上的 OpenThread 永久資訊 (網路設定)。
otInstanceFactoryReset(otInstance *aInstance)
void
此方法會刪除儲存在非變形記憶體的所有設定,然後觸發平台重設。
otInstanceFinalize(otInstance *aInstance)
void
這個函式會停用 OpenThread 程式庫。
otInstanceGetUptime(otInstance *aInstance)
uint64_t
這個函式會傳回目前的執行個體運作時間 (以 msec 為單位)。
otInstanceGetUptimeAsString(otInstance *aInstance, char *aBuffer, uint16_t aSize)
void
此函式會以使用者可理解的字串傳回目前的執行個體運作時間。
otInstanceInit(void *aInstanceBuffer, size_t *aInstanceBufferSize)
此函式會初始化 OpenThread 程式庫。
otInstanceInitSingle(void)
此函式會初始化 OpenThread 程式庫的靜態單一執行個體。
otInstanceIsInitialized(otInstance *aInstance)
bool
這個函式會指出執行個體是否有效/已初始化。
otInstanceReset(otInstance *aInstance)
void
這個方法會觸發平台重設作業。
otInstanceResetRadioStack(otInstance *aInstance)
void
這個方法會重設 OpenThread 無線電堆疊的內部狀態。
otRemoveStateChangeCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)
void
這個函式會移除回呼,以指出在 OpenThread 中的某些設定或狀態改變時。
otSetStateChangedCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)
這個函式會註冊回呼,指出在 OpenThread 內的某些設定或狀態改變時。

列舉

匿名列舉

 anonymous enum

這項列舉定義了 otStateChangedCallback 中傳遞的旗標。

屬性
OT_CHANGED_ACTIVE_DATASET

運作中的作業資料集已變更。

OT_CHANGED_CHANNEL_MANAGER_NEW_CHANNEL

頻道管理員的新待處理會話串已變更。

OT_CHANGED_COMMISSIONER_STATE

已變更委員狀態。

OT_CHANGED_IP6_ADDRESS_ADDED

已新增 IPv6 位址。

OT_CHANGED_IP6_ADDRESS_REMOVED

已移除 IPv6 位址。

OT_CHANGED_IP6_MULTICAST_SUBSCRIBED

已訂閱 IPv6 多播位址。

OT_CHANGED_IP6_MULTICAST_UNSUBSCRIBED

已取消訂閱 IPv6 多播位址。

OT_CHANGED_JOINER_STATE

已變更參與者狀態。

OT_CHANGED_NETWORK_KEY

網路金鑰已變更。

OT_CHANGED_PENDING_DATASET

待處理作業資料集已變更。

OT_CHANGED_PSKC

已變更 PSKc。

OT_CHANGED_SECURITY_POLICY

安全性政策已變更。

OT_CHANGED_SUPPORTED_CHANNEL_MASK

支援的管道遮罩已變更。

OT_CHANGED_THREAD_BACKBONE_ROUTER_LOCAL

本機骨幹路由器設定已變更。

OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE

已變更骨幹路由器狀態。

OT_CHANGED_THREAD_CHANNEL

執行緒網路頻道已變更。

OT_CHANGED_THREAD_CHILD_ADDED

已新增孩童。

OT_CHANGED_THREAD_CHILD_REMOVED

已移除孩童。

OT_CHANGED_THREAD_EXT_PANID

執行緒網路延伸 PAN ID 已變更。

OT_CHANGED_THREAD_KEY_SEQUENCE_COUNTER

執行緒金鑰序列已變更。

OT_CHANGED_THREAD_LL_ADDR

連結本機位址已變更。

OT_CHANGED_THREAD_ML_ADDR

網格本機位址已變更。

OT_CHANGED_THREAD_NETDATA

執行緒網路資料已變更。

OT_CHANGED_THREAD_NETIF_STATE

已變更執行緒網路介面狀態。

OT_CHANGED_THREAD_NETWORK_NAME

執行緒網路名稱已變更。

OT_CHANGED_THREAD_PANID

執行緒網路 PAN ID 已變更。

OT_CHANGED_THREAD_PARTITION_ID

已變更分區 ID。

OT_CHANGED_THREAD_RLOC_ADDED

已新增 RLOC。

OT_CHANGED_THREAD_RLOC_REMOVED

RLOC 已移除。

OT_CHANGED_THREAD_ROLE

角色 (已停用、卸離、子項、路由器、領導者) 已變更。

Typedefs

ot 已變更標記

uint32_t otChangedFlags

這個類型代表一個位元欄位,代表已變更的特定狀態/設定。

請參閱 OT_CHANGED_* 的定義。

執行個體

struct otInstance otInstance

這個結構代表 OpenThread 執行個體結構。

otState 成功呼叫

void(* otStateChangedCallback)(otChangedFlags aFlags, void *aContext)

系統會呼叫這個函式指標來通知 OpenThread 中的某些設定或狀態變更。

詳情
參數
[in] aFlags
這個位元欄位表示已變更的特定狀態。請參閱 OT_CHANGED_* 的定義。
[in] aContext
應用程式專屬背景資訊。

函式

otGetRadioVersionString

const char * otGetRadioVersionString(
  otInstance *aInstance
)

這個函式會取得 OpenThread 圓形按鈕版本字串。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
適用於 OpenThread 電台版本的指標。

otGetVersionString 字串

const char * otGetVersionString(
  void
)

這個函式會取得 OpenThread 版本字串。

詳情
傳回
適用於 OpenThread 版本的指標。

otInstance 清除永久資訊

otError otInstanceErasePersistentInfo(
  otInstance *aInstance
)

這個函式會清除儲存在非易用記憶體上的 OpenThread 永久資訊 (網路設定)。

只有當裝置處於disabled狀態或角色時,才能清除資料。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回值
OT_ERROR_NONE
已成功清除所有永久性資訊/狀態。
OT_ERROR_INVALID_STATE
裝置未處於disabled狀態/角色。

otInstanceFactoryFactory

void otInstanceFactoryReset(
  otInstance *aInstance
)

此方法會刪除儲存在非變形記憶體的所有設定,然後觸發平台重設。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otInstanceFinalize

void otInstanceFinalize(
  otInstance *aInstance
)

這個函式會停用 OpenThread 程式庫。

當 OpenThread 不再使用時,呼叫此函式。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otInstanceGetUptime

uint64_t otInstanceGetUptime(
  otInstance *aInstance
)

這個函式會傳回目前的執行個體運作時間 (以 msec 為單位)。

必須啟用「OPENTHREAD_CONFIG_UPTIME_ENABLE」,才能使用這項功能。

運作時間是以自 OpenThread 執行個體初始化之後的毫秒數計算。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
運作時間 (以毫秒為單位)。

otInstanceGetUptimeAsString

void otInstanceGetUptimeAsString(
  otInstance *aInstance,
  char *aBuffer,
  uint16_t aSize
)

此函式會以使用者可理解的字串傳回目前的執行個體運作時間。

必須啟用「OPENTHREAD_CONFIG_UPTIME_ENABLE」,才能使用這項功能。

此字串會採用以下格式:「&t;::.」;以小時、分鐘、秒和毫秒表示 (如果運作時間不到一天) 或「

d.::."(如果超過一天)。

如果產生的字串不適合在 aBuffer 字元內 (包含於 aSize 字元),系統會截斷這些字串,但輸出的字串一律會是空值。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aBuffer
用於輸出字串的字元陣列的指標。
[in] aSize
aBuffer 的大小 (以位元組為單位)。建議使用 OT_UPTIME_STRING_SIZE

otInstanceInit

otInstance * otInstanceInit(
  void *aInstanceBuffer,
  size_t *aInstanceBufferSize
)

此函式會初始化 OpenThread 程式庫。

此函式會初始化 OpenThread 並準備後續的 OpenThread API 呼叫。必須先呼叫此函式,再呼叫 OpenThread 的其他呼叫。

這項功能適用於已啟用多個 OpenThread 執行個體的功能。

詳情
參數
[in] aInstanceBuffer
OpenThread 的緩衝區,可用來分配 otInstance 結構。
[in,out] aInstanceBufferSize
輸入內容時,InstanceBuffer 的大小。輸出時,如果 otInstance 空間不足,則 otInstance 所需的位元組數。
傳回
指向新 OpenThread 執行個體的指標。
另請參閱:
otInstanceFinalize

otInstanceInitSingle

otInstance * otInstanceInitSingle(
  void
)

此函式會初始化 OpenThread 程式庫的靜態單一執行個體。

此函式會初始化 OpenThread 並準備後續的 OpenThread API 呼叫。必須先呼叫此函式,再呼叫 OpenThread 的其他呼叫。

這項功能適用於多個 OpenThread 執行個體的支援功能,且只能在不同情況下使用。

詳情
傳回
指向單一 OpenThread 執行個體的指標。

otInstanceIsInitialized

bool otInstanceIsInitialized(
  otInstance *aInstance
)

這個函式會指出執行個體是否有效/已初始化。

如果執行個體是使用 otInstanceInitSingle() (在單一執行個體案例中) 或 otInstanceInit() (在多個執行個體案例中) 取得與初始化,就會被視為有效。對 otInstanceFinalize() 的後續呼叫會導致執行個體被視為非初始化。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
如果指定的執行個體有效/初始化,值為 TRUE,其他情況則為 FALSE。

otInstance 重設

void otInstanceReset(
  otInstance *aInstance
)

這個方法會觸發平台重設作業。

重設程序可確保所有 OpenThread 狀態/資訊 (儲存在揮發性記憶體中) 已清除。請注意,otPlatformReset 不會清除儲存在非易用記憶體中的任何永久狀態/資訊。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otInstanceresetRadioStack

void otInstanceResetRadioStack(
  otInstance *aInstance
)

這個方法會重設 OpenThread 無線電堆疊的內部狀態。

系統會保留回呼與設定。

這個 API 僅適用於收音機建構 (OPENTHREAD_RADIO = 1)。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otRemoveStateChangeCallback

void otRemoveStateChangeCallback(
  otInstance *aInstance,
  otStateChangedCallback aCallback,
  void *aContext
)

這個函式會移除回呼,以指出在 OpenThread 中的某些設定或狀態改變時。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aCallback
指向特定設定或狀態變更而呼叫的函式。
[in] aContext
應用程式專屬背景資訊。

otSetStateChangedCallback

otError otSetStateChangedCallback(
  otInstance *aInstance,
  otStateChangedCallback aCallback,
  void *aContext
)

這個函式會註冊回呼,指出在 OpenThread 內的某些設定或狀態改變時。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aCallback
指向特定設定或狀態變更而呼叫的函式。
[in] aContext
應用程式專屬背景資訊。
傳回值
OT_ERROR_NONE
將回呼新增至回呼清單。
OT_ERROR_ALREADY
回呼已經註冊。
OT_ERROR_NO_BUFS
發生資源限制,因此無法新增回呼。

巨集

OT_UPTIME_STRING_SIZE

 OT_UPTIME_STRING_SIZE 24

運作時間字串表示建議的大小。

資源

OpenThread API 參考主題源自原始碼,可從 GitHub 取得。如要瞭解詳情或參閱說明文件,請參閱資源