nl:: Weave:: Profiles:: Time:: SingleSourceTimeSyncClient
概要
パブリック タイプ |
|
---|---|
ClientState{
|
enum 現在のステータスが表示されます。 |
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)
|
typedefvoid(*
両方の時刻同期試行が完了した後のコールバック。 |
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)
|
typedefvoid(*
時間変更通知を受信したことを示すコールバック。 |
保護された型 |
|
---|---|
@324
|
enum |
パブリック属性 |
|
---|---|
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)
|
指定された Binding を使用して同期し、指定されたポインタを使用してコールバックを行います。
|
プロテクト関数 |
|
---|---|
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
|
2 回目の同期を試行中です。 |
SyncCompletionHandler
void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)
両方の時刻同期試行が完了した後のコールバック。
aErrorCode が WEAVE_NO_ERROR の場合、試行が 1 回以上成功しています。それ以外の場合、aErrorCode で失敗した場合は最新の失敗を示します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)
時間変更通知を受信したことを示すコールバック。
Init で NULL に設定します。設定されていない場合、時間変更通知は無視されます。このコールバックでは、アプリレイヤが Abort と同期を呼び出すことができます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
保護された型
@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 )
このクライアントを初期化します。
他の関数を使用する前に呼び出す必要があります。すべての内部データをゼロ/NULL で初期化し、時間変更通知に登録します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
成功時 WEAVE_NO_ERROR
|
同期
WEAVE_ERROR Sync( Binding *const aBinding, SyncCompletionHandler OnSyncCompleted )
指定された Binding を使用して同期し、指定されたポインタを使用してコールバックを行います。
時刻同期処理が行われている場合は、コールバックが行われることなく暗黙的に中止されます。コールバックの OnSyncCompleted では使用できませんが、OnTimeChangeNotificationReceived では許可されます。エラーが発生すると、この関数から戻る前に Abort が暗黙的に呼び出されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
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 )