NL::编织::简介::时间::单源时间同步客户端
概括
公共类型 | |
---|---|
ClientState { | 枚举 此时间同步客户端的当前状态 |
SyncCompletionHandler )(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) | 类型定义void(* 两次时间同步尝试完成后的回调。 |
TimeChangeNotificationHandler )(void *const aApp, ExchangeContext *aEC) | 类型定义void(* 回调以表明我们刚刚收到时间更改通知。 |
受保护的类型 | |
---|---|
@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
同步完成处理程序
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)
回调以表明我们刚刚收到时间更改通知。
在设置为NULL 初始化。如果未设置,时间更改通知将被忽略。允许应用层在此回调中调用 Abort 和 Sync。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
受保护的类型
@324
@324
公共属性
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
受保护的属性
移动应用
void * mApp
绑定
Binding * mBinding
客户端状态
ClientState mClientState
交换上下文
ExchangeContext * mExchangeContext
交换管理器
WeaveExchangeManager * mExchangeMgr
mFlightTime_usec
int32_t mFlightTime_usec
用于存储单程飞行时间。
回调函数
bool mIsInCallback
同步完成
SyncCompletionHandler mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t mRegisterSyncResult_usec
用于在注册结果时存储时间戳
mRemoteTimestamp_usec
timesync_t mRemoteTimestamp_usec
用于存储远程节点的系统时间,即将发送响应消息的时间
mUnadjTimestampLastSent_usec
timesync_t mUnadjTimestampLastSent_usec
公共职能
在里面
WEAVE_ERROR Init( void *const aApp, WeaveExchangeManager *const aExchangeMgr )
初始化这个客户端。
必须在使用其他函数之前调用。零/NULL 初始化所有内部数据并注册时间更改通知。
细节 | |||||
---|---|---|---|---|---|
参数 |
| ||||
退货 | WEAVE_NO_ERROR 成功 |
同步
WEAVE_ERROR Sync( Binding *const aBinding, SyncCompletionHandler OnSyncCompleted )
受保护的功能
输入同步2
void EnterSync2( void )
最终处理
void FinalProcessing( void )
获取客户端状态名称
const char * GetClientStateName( void ) const
无效注册结果
void InvalidateRegisteredResult( void )
使注册信息无效以进行时间校正。
IsRegisteredResultValid
bool IsRegisteredResultValid( void )
检查时间校正的注册信息是否有效。
响应超时
void OnResponseTimeout( void )
同步响应
void OnSyncResponse( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload )
继续下一个状态
void ProceedToNextState( void )
RegisterSyncResultIfNewOrBetter
void RegisterSyncResultIfNewOrBetter( const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec )
发送同步请求
WEAVE_ERROR SendSyncRequest( void )
设置客户端状态
void SetClientState( const ClientState state )
_AbortWithCallback
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 )