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)
|
使用给定的 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
|
正在进行第二次同步尝试。 |
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。如果未设置,系统将忽略时间变化通知。应用层可以在此回调中调用 Abort 和 Sync。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
受保护的类型
@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 )