紀錄追蹤器

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

摘要

所有已追蹤的項目均已加上時間戳記。

啟用「OPENTHREAD_CONFIG_HISTOR_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
}
列舉
此列舉定義了網路資料項目 (即新增或移除項目) 的事件。

Typedefs

otHistoryTrackerExternalRouteInfo typedef
這個結構代表了網路資料外部路徑資訊。
otHistoryTrackerIterator typedef
此類型代表反覆執行記錄清單的疊代器。
otHistoryTrackerMessageInfo typedef
這個結構代表 RX/TX IPv6 訊息資訊。
otHistoryTrackerMulticastAddressInfo typedef
這個結構代表一個 IPv6 多播位址資訊。
otHistoryTrackerNeighborInfo typedef
這個結構代表了相鄰的資訊。
otHistoryTrackerNetworkInfo typedef
這個結構代表 Thread 網路資訊。
otHistoryTrackerOnMeshPrefixInfo typedef
這個結構代表網格網格資訊中的網路資料。
otHistoryTrackerUnicastAddressInfo typedef
這個結構代表了單點 IPv6 位址資訊。

函式

otHistoryTrackerEntryAgeToString(uint32_t aEntryAge, char *aBuffer, uint16_t aSize)
void
此函式會將指定的輸入年齡轉換成使用者可理解的字串。
otHistoryTrackerInitIterator(otHistoryTrackerIterator *aIterator)
void
這個函式會初始化 otHistoryTrackerIterator
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)
這個函式會取代「網狀網路資料」網格項目記錄記錄清單中的項目。
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)
這個函式會反覆查看 iuncast 地址記錄清單中的項目。

結構

otHistoryTrackerExternalRouteInfo

這個結構代表了網路資料外部路徑資訊。

otHistoryTrackerIterator

此類型代表反覆執行記錄清單的疊代器。

otHistoryTrackerMessageInfo

這個結構代表 RX/TX IPv6 訊息資訊。

otHistoryTrackerMulticastAddressInfo

這個結構代表一個 IPv6 多播位址資訊。

otHistoryTrackerNeighborInfo

這個結構代表了相鄰的資訊。

otHistoryTrackerNetworkInfo

這個結構代表 Thread 網路資訊。

otHistoryTrackerOnMeshPrefixInfo

這個結構代表網格網格資訊中的網路資料。

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

網路資料項目已移除。

Typedefs

otHistoryTrackerExternalRouteInfo

struct otHistoryTrackerExternalRouteInfo otHistoryTrackerExternalRouteInfo

這個結構代表了網路資料外部路徑資訊。

otHistoryTrackerIterator

struct otHistoryTrackerIterator otHistoryTrackerIterator

此類型代表反覆執行記錄清單的疊代器。

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

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

otHistoryTrackerMessage 資訊

struct otHistoryTrackerMessageInfo otHistoryTrackerMessageInfo

這個結構代表 RX/TX IPv6 訊息資訊。

此結構中的某些欄位僅適用於 RX 訊息或 TX 訊息,例如:mAveRxRss 是所有接收外框片段的平均 RSS,且僅適用於 RX 訊息。

otHistoryTrackerMulticast 地址資訊

struct otHistoryTrackerMulticastAddressInfo otHistoryTrackerMulticastAddressInfo

這個結構代表一個 IPv6 多播位址資訊。

otHistoryTrackerNeighborInfo

struct otHistoryTrackerNeighborInfo otHistoryTrackerNeighborInfo

這個結構代表了相鄰的資訊。

otHistoryTrackerNetworkInfo

struct otHistoryTrackerNetworkInfo otHistoryTrackerNetworkInfo

這個結構代表 Thread 網路資訊。

otHistoryTrackerOnMeshPrefixInfo

struct otHistoryTrackerOnMeshPrefixInfo otHistoryTrackerOnMeshPrefixInfo

這個結構代表網格網格資訊中的網路資料。

otHistoryTrackerUnicast 地址資訊

struct otHistoryTrackerUnicastAddressInfo otHistoryTrackerUnicastAddressInfo

這個結構代表了單點 IPv6 位址資訊。

函式

otHistoryTrackerEntryAgeToString

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

此函式會將指定的輸入年齡轉換成使用者可理解的字串。

項目年齡字串應採用「&:t::..&hl=zh-TW」格式,適用時、小時、秒、秒和毫秒 (若不到一天) 或「&;

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

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

詳情
參數
[in] aEntryAge
項目存在時間 (以毫秒為單位)。
[out] aBuffer
用於輸出字串的字元陣列的指標 (不得為 NULL)。
[in] aSize
aBuffer 的大小。建議使用 OT_HISTORY_TRACKER_ENTRY_AGE_STRING_SIZE

otHistoryTrackerInitIterator

void otHistoryTrackerInitIterator(
  otHistoryTrackerIterator *aIterator
)

這個函式會初始化 otHistoryTrackerIterator

使用疊代器時,「必須」初始化。

從初始化開始時,可以重新初始化疊代器。

當對清單中的項目進行疊代時,為確保項目符合一致的年齡,系統是根據疊代器初始化的時間設定年齡,亦即根據事件 (記錄項目時) 到疊代器初始化時間,輸入項目年齡 (以毫秒為單位)。

詳情
參數
[in] aIterator
指向疊代器的初始化指標 (不得為 NULL)。

otHistoryTrackerIterateExternalRouteHistory

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

這個函式會反覆處理「網路資料」外部路徑項目記錄清單中的項目。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化或行為未定義。
[out] aEntryAge
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 aIterator 初始化時間起的時間長度 (以毫秒為單位)。針對超過年齡的項目,這個欄位會設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerExternalRouteInfo 項目;如果清單中沒有其他項目,則為 NULL

otHistoryTrackerIterate 多播地址記錄

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

這個函式會反覆修改多播位址記錄清單中的項目。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化或行為未定義。
[out] aEntryAge
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 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
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 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
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 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
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 aIterator 初始化時間起的時間長度 (以毫秒為單位)。針對超過年齡的項目,這個欄位會設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerOnMeshPrefixInfo 項目;如果清單中沒有其他項目,則為 NULL

otHistoryTrackerIterateRxHistory

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

這個函式會反覆處理 RX 訊息記錄清單中的項目。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化或行為未定義。
[out] aEntryAge
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 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
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 aIterator 初始化時間起的時間長度 (以毫秒為單位)。針對超過年齡的項目,這個欄位會設為 OT_HISTORY_TRACKER_MAX_AGE
傳回
otHistoryTrackerMessageInfo 項目;如果清單中沒有其他項目,則為 NULL

otHistoryTrackerIterateUnicast 地址紀錄

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

這個函式會反覆查看 iuncast 地址記錄清單中的項目。

詳情
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in,out] aIterator
指向疊代器的指標。必須初始化或行為未定義。
[out] aEntryAge
變數,用來輸出項目年齡。不得為 NULL。「年齡」以從記錄到 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_MAX_AGE

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

這個常數會指定 49 天 (以 msec 為單位) 的時限。

如為超過年齡的項目,系統會將其視為年齡。

資源

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