歷史追蹤器

記錄不同事件的記錄,例如 RX 和 TX 訊息或網路資訊變更。

摘要

所有追蹤的項目都有時間戳記。

啟用 OPENTHREAD_CONFIG_HISTORY_TRACKER_ENABLE 時,即可使用這個模組中的函式。

列舉

anonymous enum{
  OT_HISTORY_TRACKER_MSG_PRIORITY_LOW = OT_MESSAGE_PRIORITY_LOW,
  OT_HISTORY_TRACKER_MSG_PRIORITY_NORMAL = OT_MESSAGE_PRIORITY_NORMAL,
  OT_HISTORY_TRACKER_MSG_PRIORITY_HIGH = OT_MESSAGE_PRIORITY_HIGH,
  OT_HISTORY_TRACKER_MSG_PRIORITY_NET = OT_MESSAGE_PRIORITY_HIGH + 1
}
列舉
代表 otHistoryTrackerMessageInfo 結構中使用訊息優先順序的常數。
otHistoryTrackerAddressEvent{
  OT_HISTORY_TRACKER_ADDRESS_EVENT_ADDED = 0,
  OT_HISTORY_TRACKER_ADDRESS_EVENT_REMOVED = 1
}
列舉
定義 IPv6 (單點傳播或多點傳送) 位址資訊 (即是否新增或移除地址) 的事件。
otHistoryTrackerNeighborEvent{
  OT_HISTORY_TRACKER_NEIGHBOR_EVENT_ADDED = 0,
  OT_HISTORY_TRACKER_NEIGHBOR_EVENT_REMOVED = 1,
  OT_HISTORY_TRACKER_NEIGHBOR_EVENT_CHANGED = 2,
  OT_HISTORY_TRACKER_NEIGHBOR_EVENT_RESTORING = 3
}
列舉
定義相鄰資訊中的事件 (即
otHistoryTrackerNetDataEvent{
  OT_HISTORY_TRACKER_NET_DATA_ENTRY_ADDED = 0,
  OT_HISTORY_TRACKER_NET_DATA_ENTRY_REMOVED = 1
}
列舉
定義網路資料項目 (例如要新增或移除項目) 的事件。
otHistoryTrackerRouterEvent{
  OT_HISTORY_TRACKER_ROUTER_EVENT_ADDED = 0,
  OT_HISTORY_TRACKER_ROUTER_EVENT_REMOVED = 1,
  OT_HISTORY_TRACKER_ROUTER_EVENT_NEXT_HOP_CHANGED = 2,
  OT_HISTORY_TRACKER_ROUTER_EVENT_COST_CHANGED = 3
}
列舉
定義路由器資訊 (即

Typedefs

otHistoryTrackerExternalRouteInfo typedef
代表網路資料外部路徑資訊。
otHistoryTrackerIterator typedef
代表疊代瀏覽記錄清單的疊代器。
otHistoryTrackerMessageInfo typedef
代表 RX/TX IPv6 訊息資訊。
otHistoryTrackerMulticastAddressInfo typedef
代表 IPv6 多點傳播位址資訊。
otHistoryTrackerNeighborInfo typedef
代表鄰點資訊。
otHistoryTrackerNetworkInfo typedef
代表 Thread 網路資訊。
otHistoryTrackerOnMeshPrefixInfo typedef
代表網格前置字串資訊的網路資料。
otHistoryTrackerRouterInfo typedef
代表路由器表格進入事件。
otHistoryTrackerUnicastAddressInfo typedef
代表單點傳播 IPv6 位址資訊。

函式

otHistoryTrackerEntryAgeToString(uint32_t aEntryAge, char *aBuffer, uint16_t aSize)
void
將指定項目存在時間轉換成使用者可理解的字串。
otHistoryTrackerInitIterator(otHistoryTrackerIterator *aIterator)
void
otHistoryTrackerIterateExternalRouteHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代處理網路資料外部路徑項目記錄清單中的項目。
otHistoryTrackerIterateMulticastAddressHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
逐一查看多點傳播位址記錄清單中的項目。
otHistoryTrackerIterateNeighborHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代鄰近記錄清單中的項目。
otHistoryTrackerIterateNetInfoHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代網路資訊記錄清單中的項目。
otHistoryTrackerIterateOnMeshPrefixHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代處理網格前置字串項目記錄清單中的「網路資料」項目。
otHistoryTrackerIterateRouterHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代路由器記錄清單中的項目。
otHistoryTrackerIterateRxHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代 RX 訊息記錄清單中的項目。
otHistoryTrackerIterateTxHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
疊代 TX 訊息記錄清單中的項目。
otHistoryTrackerIterateUnicastAddressHistory(otInstance *aInstance, otHistoryTrackerIterator *aIterator, uint32_t *aEntryAge)
對單點傳播地址記錄清單中的項目進行疊代。

結構

otHistoryTrackerExternalRouteInfo

代表網路資料外部路徑資訊。

otHistoryTrackerIterator

代表疊代瀏覽記錄清單的疊代器。

otHistoryTrackerMessageInfo

代表 RX/TX IPv6 訊息資訊。

otHistoryTrackerMulticastAddressInfo

代表 IPv6 多點傳播位址資訊。

otHistoryTrackerNeighborInfo

代表鄰點資訊。

otHistoryTrackerNetworkInfo

代表 Thread 網路資訊。

otHistoryTrackerOnMeshPrefixInfo

代表網格前置字串資訊的網路資料。

otHistoryTrackerRouterInfo

代表路由器表格進入事件。

otHistoryTrackerUnicastAddressInfo

代表單點傳播 IPv6 位址資訊。

列舉

匿名列舉

 anonymous enum

代表 otHistoryTrackerMessageInfo 結構中使用訊息優先順序的常數。

屬性
OT_HISTORY_TRACKER_MSG_PRIORITY_HIGH

高優先順序等級。

OT_HISTORY_TRACKER_MSG_PRIORITY_LOW

低優先順序等級。

OT_HISTORY_TRACKER_MSG_PRIORITY_NET

網路控制優先順序等級。

OT_HISTORY_TRACKER_MSG_PRIORITY_NORMAL

一般優先順序等級。

otHistoryTrackerAddressEvent

 otHistoryTrackerAddressEvent

定義 IPv6 (單點傳播或多點傳送) 位址資訊 (即是否新增或移除地址) 的事件。

屬性
OT_HISTORY_TRACKER_ADDRESS_EVENT_ADDED

已新增地址。

OT_HISTORY_TRACKER_ADDRESS_EVENT_REMOVED

地址已移除。

otHistoryTrackerNeighborEvent

 otHistoryTrackerNeighborEvent

定義相鄰資訊中的事件 (即

是否新增、移除或變更鄰近裝置)。

事件「OT_HISTORY_TRACKER_NEIGHBOR_EVENT_RESTORING」僅適用於子項鄰居。當裝置重新啟動 (重新啟動),以及從非揮發性設定擷取先前的子項清單,且裝置嘗試恢復連線時,就會觸發這項規則。

屬性
OT_HISTORY_TRACKER_NEIGHBOR_EVENT_ADDED

已新增鄰點。

OT_HISTORY_TRACKER_NEIGHBOR_EVENT_CHANGED

鄰點已變更 (例如:裝置模式旗標有所變更)。

OT_HISTORY_TRACKER_NEIGHBOR_EVENT_REMOVED

已移除鄰點。

OT_HISTORY_TRACKER_NEIGHBOR_EVENT_RESTORING

鄰居正在恢復 (僅適用於兒童)。

otHistoryTrackerNetDataEvent

 otHistoryTrackerNetDataEvent

定義網路資料項目 (例如要新增或移除項目) 的事件。

屬性
OT_HISTORY_TRACKER_NET_DATA_ENTRY_ADDED

已新增網路資料項目。

OT_HISTORY_TRACKER_NET_DATA_ENTRY_REMOVED

已移除網路資料項目。

otHistoryTrackerRouterEvent

 otHistoryTrackerRouterEvent

定義路由器資訊 (即

是否已新增、移除或變更路由器)。

屬性
OT_HISTORY_TRACKER_ROUTER_EVENT_ADDED

已新增路由器 (已分配路由器 ID)。

OT_HISTORY_TRACKER_ROUTER_EVENT_COST_CHANGED

路由器進入路徑費用已變更 (與之前一樣的下一個躍點)。

OT_HISTORY_TRACKER_ROUTER_EVENT_NEXT_HOP_CHANGED

路由器項目的下一個躍點和費用已變更。

OT_HISTORY_TRACKER_ROUTER_EVENT_REMOVED

移除路由器項目 (已釋出路由器 ID)。

Typedefs

otHistoryTrackerExternalRouteInfo

struct otHistoryTrackerExternalRouteInfo otHistoryTrackerExternalRouteInfo

代表網路資料外部路徑資訊。

otHistoryTrackerIterator

struct otHistoryTrackerIterator otHistoryTrackerIterator

代表疊代瀏覽記錄清單的疊代器。

這個類型的欄位不透明 (供 OpenThread 核心使用),因此呼叫端不應存取/使用。

使用疊代器之前,必須先使用 otHistoryTrackerInitIterator() 進行初始化。

otHistoryTrackerMessageInfo

struct otHistoryTrackerMessageInfo otHistoryTrackerMessageInfo

代表 RX/TX IPv6 訊息資訊。

這個結構中的部分欄位僅適用於 RX 訊息或 TX 訊息,例如mAveRxRss 是構成所收到訊息的所有片段頁框平均 RSS,僅適用於 RX 訊息。

otHistoryTrackerMulticastAddressInfo

struct otHistoryTrackerMulticastAddressInfo otHistoryTrackerMulticastAddressInfo

代表 IPv6 多點傳播位址資訊。

otHistoryTrackerNeighborInfo

struct otHistoryTrackerNeighborInfo otHistoryTrackerNeighborInfo

代表鄰點資訊。

otHistoryTrackerNetworkInfo

struct otHistoryTrackerNetworkInfo otHistoryTrackerNetworkInfo

代表 Thread 網路資訊。

otHistoryTrackerOnMeshPrefixInfo

struct otHistoryTrackerOnMeshPrefixInfo otHistoryTrackerOnMeshPrefixInfo

代表網格前置字串資訊的網路資料。

otHistoryTrackerRouterInfo

struct otHistoryTrackerRouterInfo otHistoryTrackerRouterInfo

代表路由器表格進入事件。

otHistoryTrackerUnicastAddressInfo

struct otHistoryTrackerUnicastAddressInfo otHistoryTrackerUnicastAddressInfo

代表單點傳播 IPv6 位址資訊。

函式

otHistoryTrackerEntryAgeToString

void otHistoryTrackerEntryAgeToString(
  uint32_t aEntryAge,
  char *aBuffer,
  uint16_t aSize
)

將指定項目存在時間轉換成使用者可理解的字串。

項目年齡字串的格式為「::.」代表小時、分鐘、秒鐘和毫秒 (如果不到 1 天) 或「

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

如果產生的字串不符合 aBuffer (在其 aSize 字元之內) 的大小,系統將截斷字串,但輸出的字串一律會是空值。

詳細說明
參數
[in] aEntryAge
項目存在時間 (持續時間,單位為毫秒)。
[out] aBuffer
用來輸出字串的字元陣列指標 (不得為空值)。
[in] aSize
aBuffer 的大小。建議使用 OT_HISTORY_TRACKER_ENTRY_AGE_STRING_SIZE

otHistoryTrackerInitIterator

void otHistoryTrackerInitIterator(
  otHistoryTrackerIterator *aIterator
)

初始化 otHistoryTrackerIterator

疊代器「必須」初始化才能使用。

您可以再次初始化疊代器,從清單的開頭開始。

疊代清單中的項目時,為了確保項目存在時間一致,存在時間是相對於疊代器初始化的時間;也就是說,提供的項目存在時間是從事件 (記錄項目時) 到疊代器初始化時間的期間 (以毫秒為單位)。

詳細說明
參數
[in] aIterator
要初始化的疊代器指標 (不得為空值)。

otHistoryTrackerIterateExternalRouteHistory

const otHistoryTrackerExternalRouteInfo * otHistoryTrackerIterateExternalRouteHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代處理網路資料外部路徑項目記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerExternalRouteInfo 項目或 NULL 項目。

otHistoryTrackerIterateMulticastAddressHistory

const otHistoryTrackerMulticastAddressInfo * otHistoryTrackerIterateMulticastAddressHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

逐一查看多點傳播位址記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerMulticastAddressInfo 項目的指標,如果清單中沒有其他項目,則指向 NULL 的指標。

otHistoryTrackerIterateNeighborHistory

const otHistoryTrackerNeighborInfo * otHistoryTrackerIterateNeighborHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代鄰近記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerNeighborInfo 項目或 NULL 項目。

otHistoryTrackerIterateNetInfoHistory

const otHistoryTrackerNetworkInfo * otHistoryTrackerIterateNetInfoHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代網路資訊記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerNetworkInfo 項目的指標,如果清單中沒有其他項目,則指向 NULL 的指標。

otHistoryTrackerIterateOnMeshPrefixHistory

const otHistoryTrackerOnMeshPrefixInfo * otHistoryTrackerIterateOnMeshPrefixHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代處理網格前置字串項目記錄清單中的「網路資料」項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerOnMeshPrefixInfo 項目或 NULL 項目。

otHistoryTrackerIterateRouterHistory

const otHistoryTrackerRouterInfo * otHistoryTrackerIterateRouterHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代路由器記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerRouterInfo 項目或 NULL 項目。

otHistoryTrackerIterateRxHistory

const otHistoryTrackerMessageInfo * otHistoryTrackerIterateRxHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代 RX 訊息記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerMessageInfo 項目或 NULL 項目。

otHistoryTrackerIterateTxHistory

const otHistoryTrackerMessageInfo * otHistoryTrackerIterateTxHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

疊代 TX 訊息記錄清單中的項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
如果清單中沒有其他項目,otHistoryTrackerMessageInfo 項目或 NULL 項目。

otHistoryTrackerIterateUnicastAddressHistory

const otHistoryTrackerUnicastAddressInfo * otHistoryTrackerIterateUnicastAddressHistory(
  otInstance *aInstance,
  otHistoryTrackerIterator *aIterator,
  uint32_t *aEntryAge
)

對單點傳播地址記錄清單中的項目進行疊代。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化,或是行為未定義。
[out] aEntryAge
指向變數的指標,用於輸出項目的年齡。不得為空值。時間長度以從記錄項目到 aIterator 初始化時間算起 (以毫秒為單位)。如果是超過年齡上限的項目,系統會將其設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerUnicastAddressInfo 項目的指標,如果清單中沒有其他項目,則指向 NULL 的指標。

巨集

OT_HISTORY_TRACKER_ENTRY_AGE_STRING_SIZE

 OT_HISTORY_TRACKER_ENTRY_AGE_STRING_SIZE 21

用於表示項目年齡的字串大小。

OT_HISTORY_TRACKER_INFINITE_PATH_COST

 OT_HISTORY_TRACKER_INFINITE_PATH_COST 0

無限路徑費用 - 用於 otHistoryTrackerRouterInfo

OT_HISTORY_TRACKER_MAX_AGE

 OT_HISTORY_TRACKER_MAX_AGE (49 * 24 * 60 * 60 * 1000u)

這個常數指定 49 天 (毫秒) 的項目年齡上限。

早於存在時間長度上限的項目會採用這個值做為年齡。

OT_HISTORY_TRACKER_NO_NEXT_HOP

 OT_HISTORY_TRACKER_NO_NEXT_HOP 63

沒有下一個躍點 - 適用於 otHistoryTrackerRouterInfo 中的 mNextHop

資源

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