nl:: Weave:: Profiles:: Time:: SingleSourceTimeSyncClient
摘要
公開類型 |
|
---|---|
ClientState{
|
列舉 這個時間同步用戶端的目前狀態 |
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)
|
typedefvoid(*
在兩次同步都完成後回呼。 |
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)
|
typedefvoid(*
回呼表示剛剛收到時間變更通知。 |
受保護的類型 |
|
---|---|
@324
|
列舉 |
公開屬性 |
|
---|---|
OnTimeChangeNotificationReceived
|
受保護的屬性 |
|
---|---|
mApp
|
void *
|
mBinding
|
Binding *
|
mClientState
|
|
mExchangeContext
|
|
mExchangeMgr
|
|
mFlightTime_usec
|
int32_t
以便儲存單程航班時間
|
mIsInCallback
|
bool
|
mOnSyncCompleted
|
|
mRegisterSyncResult_usec
|
timesync_t
用於儲存結果登錄時間的時間戳記
|
mRemoteTimestamp_usec
|
timesync_t
用於儲存遠端節點的系統時間,當回應訊息即將傳送時
|
mUnadjTimestampLastSent_usec
|
timesync_t
|
公開函式 |
|
---|---|
Abort(void)
|
void
取消目前時間同步作業。
|
GetClientState(void) const
|
擷取此用戶端的目前狀態。
|
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
|
初始化這個用戶端。
|
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
|
使用指定的繫結進行同步處理,並使用提供的指標發出回呼。
|
受保護的函式 |
|
---|---|
EnterSync2(void)
|
void
|
FinalProcessing(void)
|
void
|
GetClientStateName(void) const
|
const char *
|
InvalidateRegisteredResult(void)
|
void
撤銷註冊的資訊以進行時間修正。
|
IsRegisteredResultValid(void)
|
bool
請檢查註冊資訊中的時間修正是否有效。
|
OnResponseTimeout(void)
|
void
|
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
|
void
|
ProceedToNextState(void)
|
void
|
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
|
void
|
SendSyncRequest(void)
|
|
SetClientState(const ClientState state)
|
void
|
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
|
void
|
受保護的靜態函式 |
|
---|---|
HandleResponseTimeout(ExchangeContext *aEC)
|
void
|
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
|
void
|
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
|
void
|
公開類型
ClientState
ClientState
這個時間同步用戶端的目前狀態
屬性 | |
---|---|
kClientState_Idle
|
已初始化,正在等待時間變更通知,但沒有實際進行時間同步作業。 |
kClientState_Sync_1
|
正在處理第一次嘗試同步處理。 |
kClientState_Sync_2
|
系統正在嘗試第二次同步處理。 |
SyncCompletionHandler
void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)
在兩次同步都完成後回呼。
如果 aErrorCode 為 WEAVE_NO_ERROR,表示至少一次嘗試成功。否則,如果 aErrorCode 傳回失敗,則表示最近一次失敗。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)
回呼表示剛剛收到時間變更通知。
在 Init 將值設為 NULL。如果未設定,系統會忽略時間變更通知。應用程式層可在這個回呼中呼叫「取消與同步」。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
受保護的類型
@324
@324
公開屬性
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
受保護的屬性
mApp
void * mApp
mBinding
Binding * mBinding
mClientState
ClientState mClientState
mExchangeContext
ExchangeContext * mExchangeContext
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mFlightTime_usec
int32_t mFlightTime_usec
以便儲存單程航班時間
mIsInCallback
bool mIsInCallback
mOnSyncCompleted
SyncCompletionHandler mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t mRegisterSyncResult_usec
用於儲存結果登錄時間的時間戳記
mRemoteTimestamp_usec
timesync_t mRemoteTimestamp_usec
用於儲存遠端節點的系統時間,當回應訊息即將傳送時
mUnadjTimestampLastSent_usec
timesync_t mUnadjTimestampLastSent_usec
公開函式
Init
WEAVE_ERROR Init( void *const aApp, WeaveExchangeManager *const aExchangeMgr )
初始化這個用戶端。
必須先呼叫,才能使用其他函式。零/空值初始化所有內部資料,並使用時間變更通知註冊。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
成功時 WEAVE_NO_ERROR
|
同步
WEAVE_ERROR Sync( Binding *const aBinding, SyncCompletionHandler OnSyncCompleted )
使用指定的繫結進行同步處理,並使用提供的指標發出回呼。
如果有進行時間同步處理作業,則會在沒有回呼的情況下以隱含方式取消。不適用於回呼 OnSyncCompleted,但在 OnTimeChangeNotificationReceived 中允許。發生錯誤時,系統會先以隱含方式呼叫取消函式,再傳回這個函式。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
成功時傳回 WEAVE_NO_ERROR
|
受保護的函式
EnterSync2
void EnterSync2( void )
FinalProcessing
void FinalProcessing( void )
GetClientStateName
const char * GetClientStateName( void ) const
InvalidateRegisteredResult
void InvalidateRegisteredResult( void )
撤銷註冊的資訊以進行時間修正。
IsRegisteredResultValid
bool IsRegisteredResultValid( void )
請檢查註冊資訊中的時間修正是否有效。
OnResponseTimeout
void OnResponseTimeout( void )
OnSyncResponse
void OnSyncResponse( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload )
ProceedToNextState
void ProceedToNextState( void )
RegisterSyncResultIfNewOrBetter
void RegisterSyncResultIfNewOrBetter( const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec )
SendSyncRequest
WEAVE_ERROR SendSyncRequest( void )
SetClientState
void SetClientState( const ClientState state )
_AbortWithCallback
void _AbortWithCallback( const WEAVE_ERROR aErrorCode )
受保護的靜態函式
HandleResponseTimeout
void HandleResponseTimeout( ExchangeContext *aEC )
HandleSyncResponse
void HandleSyncResponse( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload )
HandleTimeChangeNotification
void HandleTimeChangeNotification( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload )