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
|
枚举 |
受保护的属性 |
|
---|---|
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
)