nl::Weave::System::Timer

#include <src/system/SystemTimer.h>

這是 Weave 系統 Layer 的內部類別,用於代表正在進行的一次性計時器。

摘要

應用程式層沒有實際的公用介面。用來取得目前系統時間的靜態公開方法專供內部使用。

繼承

沿用來源: nl::Weave::System::Object

公開類型

Epoch typedef
uint64_t
代表以本機系統時區為準的訓練週期,通常是 POSIX 時間縮放。
OnCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) typedef
void(*

公開屬性

OnComplete
OnCompleteFunct

公開的靜態函式

GetCurrentEpoch(void)
這個方法會傳回由系統睡眠時修正的目前週期 (以毫秒為單位)。
GetStatistics(nl::Weave::System::Stats::count_t & aNumInUse, nl::Weave::System::Stats::count_t & aHighWatermark)
void
IsEarlierEpoch(const Epoch & first, const Epoch & second)
bool
比較兩個 Timer::Epoch 值,如果第一個值早於第二個值,則傳回 true。

公用函式

Cancel(void)
Error
此方法會取消初始化計時器物件,如果尚未啟動,則防止此計時器觸發。
Start(uint32_t aDelayMilliseconds, OnCompleteFunct aOnComplete, void *aAppState)
Error
這個方法會使用平台提供的基本計時器機制,註冊一次性計時器。

公開類型

Epoch 時間

uint64_t Epoch

代表以本機系統時區為準的訓練週期,通常是 POSIX 時間縮放。

單位取決於上下文。如果與 GetCurrentEpoch 傳回的值搭配使用,則單位為毫秒。

OnCompleteFunct

void(* OnCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

公開屬性

OnComplete

OnCompleteFunct OnComplete

公開的靜態函式

GetCurrentEpoch

Epoch GetCurrentEpoch(
  void
)

這個方法會傳回由系統睡眠時修正的目前週期 (以毫秒為單位)。

已淘汰,請改用 System::Layer::GetClock_MonotonicMS()

詳細說明
傳回
時間戳記,以毫秒為單位。

GetStatistics

void GetStatistics(
  nl::Weave::System::Stats::count_t & aNumInUse,
  nl::Weave::System::Stats::count_t & aHighWatermark
)

IsEarlierEpoch

bool IsEarlierEpoch(
  const Epoch & first,
  const Epoch & second
)

比較兩個 Timer::Epoch 值,如果第一個值早於第二個值,則傳回 true。

系統會呼叫靜態 API,用來比較 2 個時間值。此 API 會假設,如果 2 個樣本之間發生計時器包裝,而 2 個輸入值之間的差異只會超過 Epoch 紀元純範圍的一半,這個 API 就會嘗試計算計時器倒數。

詳細說明
傳回
如果第一個參數早於第二個參數,則傳回 true,否則傳回 false。

公用函式

取消

Error Cancel(
  void
)

此方法會取消初始化計時器物件,如果尚未啟動,則防止此計時器觸發。

詳細說明
傳回值
WEAVE_SYSTEM_NO_ERROR
不受條件限制。

開始

Error Start(
  uint32_t aDelayMilliseconds,
  OnCompleteFunct aOnComplete,
  void *aAppState
)

這個方法會使用平台提供的基本計時器機制,註冊一次性計時器。

詳細說明
參數
[in] aDelayMilliseconds
這個計時器觸發前的毫秒數
[in] aOnComplete
此計時器啟動時的回呼函式指標
[in] aAppState
這個計時器啟動時,要在 onComplete 中傳入的任意指標
傳回值
WEAVE_SYSTEM_NO_ERROR
不受條件限制。