NL::编织::简介::时间::时间同步节点
概括
遗产
:从继承NL ::纺织品::概况::时间:: _ TimeSyncNodeBase构造函数和析构函数 | |
---|---|
TimeSyncNode (void) |
mBootTimeForNextAutoDiscovery_usec | timesync_t |
mIsAutoSyncEnabled | bool 用于自动同步功能的状态。 |
mIsUrgentDiscoveryPending | bool |
mNominalDiscoveryPeriod_msec | int32_t |
mShortestDiscoveryPeriod_msec | int32_t |
mSyncPeriod_msec | int32_t |
mActiveContact | Contact * 通信上下文。 |
mExchangeContext | |
mUnadjTimestampLastSent_usec | timesync_t |
EnterState_Discover (void) | void 这些状态转换函数是内部的,不能返回错误代码,因为之前的状态无法处理它们。 |
EnterState_ServiceSync_1 (void) | void |
EnterState_ServiceSync_2 (void) | void |
EnterState_Sync_1 (void) | void |
EnterState_Sync_2 (void) | void |
公共类型 | |
---|---|
ClientState | 枚举 该时间同步客户端的当前状态 |
CommState | 枚举 与某个联系人的通信状态。 |
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) | 类型定义void(* 回调发生在我们根据响应计算时间校正之前。 |
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) | 类型定义bool(* 回调指示我们刚刚收到一个时间同步请求。 |
ResponseStatus | 枚举 存储对某个联系人的响应的状态。 |
ServerState { | 枚举 此时间同步服务器的当前状态 |
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) | 类型定义void(* 当认为同步失败时会发生回调,包括自动同步。 |
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) | 类型定义bool(* 回调发生在同步被认为成功之后,包括自动同步,但在应用结果之前。 |
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) | 类型定义void(* 回调以指示我们刚刚收到时间更改通知。 |
公共属性 | |
---|---|
FilterTimeCorrectionContributor | |
OnSyncFailed | |
OnSyncRequestReceived | 如果未设置,则默认实现始终返回 true |
OnSyncSucceeded | 如果未设置,则默认行为将获取所有结果,除了非常小的服务器更正 |
OnTimeChangeNotificationReceived | |
mEncryptionType | uint8_t 本地通信的加密方法 |
mKeyId | uint16_t 用于本地通信的密钥 ID |
受保护的属性 | |
---|---|
mApp | void * 指向更高层数据的指针 |
mClientState | |
mConnectionToService | 用于与服务对话的 TCP 连接。 |
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS] | 联系各地发现信息学。 |
mIsAlwaysFresh | bool |
mIsInCallback | bool 如果我们在回调到更高层,则为 true |
mLastLikelihoodSent | int8_t |
mNumContributorInLastLocalSync | uint8_t |
mRole | TimeSyncRole 该节点的实际作用。 |
mServerState | |
mServiceContact | |
mTimestampLastCorrectionFromServerOrNtp_usec | timesync_t 注意它必须是启动时间,因为我们需要对睡眠时间进行补偿 |
mTimestampLastLocalSync_usec | timesync_t 注意它必须是启动时间,因为我们需要补偿睡眠时间 |
公共职能 | |
---|---|
Abort (void) | 强制引擎返回空闲状态,中止正在执行的任何操作。 |
DisableAutoSync (void) | void 禁用自动同步。 |
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec) | 启用自动同步。 |
GetCapacityOfContactList (void) const | int 此引擎配置为存储的最大联系人数量的简单 getter |
GetClientState (void) const | 客户端状态的简单吸气剂 |
GetNextLikelihood (void) const | int8_t 提取持久性的可能性。 |
GetServerState (void) const | 服务器状态的简单吸气剂 |
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood) | 初始化这个客户端。 |
InitCoordinator ( nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec) | 初始化这个协调器。 |
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh) | 如果打算成为时间同步服务器,则必须在对象构造后调用 Server 角色的 initialize 作为第一个函数。 |
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const | void 由高层调用以多播时间更改通知。 |
RegisterCorrectionFromServerOrNtp (void) | void 由更高层调用以指示我们刚刚完成了与任何服务器或通过某些可靠方式(如 NTP)的时间同步。 |
RegisterLocalSyncOperation (const uint8_t aNumContributor) | void 由更高层调用以表明我们刚刚完成了与其他本地 Coordinator 的一轮时间同步。 |
Shutdown (void) | 停止服务,无论它扮演什么角色。 |
Sync (const bool aForceDiscoverAgain) | 使用现有联系人进行同步。 |
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[]) | 使用给定的联系人列表进行同步。 |
SyncWithService ( WeaveConnection *const aConnection) | 使用给定的 TCP 连接和关联的加密和密钥 ID 进行同步。 |
受保护的功能 | |
---|---|
AbortOnError (const WEAVE_ERROR aCode) | void 如果 aCode 不是 WEAVE_NO_ERROR,则内部中止 |
AutoSyncNow (void) | void 启动自动同步会话的内部函数 |
CallbackForSyncCompletion (const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec) | 诱导回调到应用层。 |
ClearState (void) | void |
DestroyCommContext (void) | bool 关闭编织ExchangeContext |
EndLocalSyncAndTryCalculateTimeFix (void) | void |
EndServiceSyncAndTryCalculateTimeFix (void) | void |
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification) | Contact * 返回槽存储联系人信息 |
GetClientStateName (void) const | const char *const |
GetNextIdleContact (void) | Contact * 获取下一个有效且空闲的联系人以与之交谈 |
GetNumNotYetCompletedContacts (void) | int16_t 获取有效联系人的数量,但我们还没有与他们交谈。 |
GetNumReliableResponses (void) | int16_t 获取到目前为止收集的“可靠”响应的数量。 |
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr) | |
InvalidateAllContacts (void) | void 使所有本地联系人无效 |
InvalidateServiceContact (void) | void 使与服务的联系无效 |
RegisterCommError ( Contact *const aContact) | void 在某个联系人上注册通信错误,并在需要时缩短自动发现周期 aContact 可以为 NULL 表示我们没有人可以交谈,因此只需缩短自动发现周期 |
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact) | 向联系人发送单播同步请求。 |
SetAllCompletedContactsToIdle (void) | int16_t 再次将所有完成的联系人重置为空闲状态,但不要触摸响应。 |
SetAllValidContactsToIdleAndInvalidateResponse (void) | int16_t 将所有有效的本地联系人设置为空闲状态并清除响应。 |
SetClientState (const ClientState state) | void |
SetupUnicastCommContext ( Contact *const aContact) | 为单播通信创建新的 Weave Exchange |
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr) | void 存储刚刚向我们发送时间更改通知的节点的联系信息 |
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse) | void 处理从多播请求返回的响应 |
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse) | void 处理从单播请求返回的响应 |
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood) | 初始化客户端的角色。 |
_InitServer (const bool aIsAlwaysFresh) | 初始化服务器角色。 |
_ShutdownClient (void) | 停止回调中不可用的客户端。 |
_ShutdownCoordinator (void) | 停止回调中不可用的协调器。 |
_ShutdownServer (void) | 停止在回调中不可用的服务器。 |
受保护的静态函数 | |
---|---|
HandleAutoDiscoveryTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleAutoSyncTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleMulticastResponseTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleMulticastSyncResponse ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleSyncRequest ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void 当时间同步请求到达时,来自 Weave Exchange 的回调 |
HandleTimeChangeNotification ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleUnicastResponseTimeout ( ExchangeContext *const ec) | void |
HandleUnicastSyncResponse ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleUnreliableAfterBootTimer ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void 当我们通过不可靠的引导屏障后从编织计时器回调 |
IsOperationalState ( ClientState aState) | bool 确定给定状态是否可操作。 |
_OnSyncSucceeded (void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) | bool |
mBootTimeForNextAutoDiscovery_usec
timesync_t mBootTimeForNextAutoDiscovery_usec
启用自动同步
bool mIsAutoSyncEnabled
用于自动同步功能的状态。
紧急发现待定
bool mIsUrgentDiscoveryPending
mNominalDiscoveryPeriod_msec
int32_t mNominalDiscoveryPeriod_msec
mShortestDiscoveryPeriod_msec
int32_t mShortestDiscoveryPeriod_msec
mSyncPeriod_msec
int32_t mSyncPeriod_msec
交换上下文
ExchangeContext * mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t mUnadjTimestampLastSent_usec
EnterState_Discover
void EnterState_Discover( void )
这些状态转换函数是内部的,不能返回错误代码,因为之前的状态无法处理它们。
任何失败都将最终导致另一个状态转换(可能是超时),如果即使计时器失败,我们也没有技巧,可能会挂在一些错误的状态
EnterState_ServiceSync_1
void EnterState_ServiceSync_1( void )
EnterState_ServiceSync_2
void EnterState_ServiceSync_2( void )
EnterState_Sync_1
void EnterState_Sync_1( void )
EnterState_Sync_2
void EnterState_Sync_2( void )
公共类型
客户端状态
ClientState
该时间同步客户端的当前状态
贡献者过滤器
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
回调发生在我们根据响应计算时间校正之前。
应用层可以将 aContact[i].mResponseStatus 改写为 kResponseStatus_Invalid,这样在计算中就会忽略响应
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
回调指示我们刚刚收到一个时间同步请求。
细节 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||
退货 | false,引擎应忽略此请求 |
服务器状态
ServerState
同步失败处理程序
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
当认为同步失败时会发生回调,包括自动同步。
请注意,如果调用 Abort 停止同步,则不会发生回调
细节 | |||||
---|---|---|---|---|---|
参数 |
|
同步成功处理程序
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
回调发生在同步被认为成功之后,包括自动同步,但在应用结果之前。
请注意,成功并不意味着我们有适用的结果。如果没有收到响应,aNumContributor 将被设置为 0。应用层可以将 aContact[i].mResponseStatus 覆盖为 kResponseStatus_Invalid,以便在计算中忽略响应
细节 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||||
退货 | 如果此偏移量应用于调整系统时间,则为 true。如果 aNumContributor 为 0,则返回值将被忽略。 |
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
回调以指示我们刚刚收到时间更改通知。
如果启用自动同步模式,将在此回调后不久自动安排时间同步。否则应用层可以选择调用 Sync 系列函数来直接启动同步操作,不受正常的 not-available-in-call-back 规则限制。但是,必须注意的是,这个特殊的回调仍然在 Weave 交换层的回调堆栈之上。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
公共属性
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
同步失败
SyncFailedHandler OnSyncFailed
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
加密类型
uint8_t mEncryptionType
本地通信的加密方法
密钥标识
uint16_t mKeyId
用于本地通信的密钥 ID
受保护的属性
移动应用
void * mApp
指向更高层数据的指针
客户端状态
ClientState mClientState
mIsAlwaysFresh
bool mIsAlwaysFresh
回调函数
bool mIsInCallback
如果我们在回调到更高层,则为 true
已发送的最后可能性
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
角色
TimeSyncRole mRole
此节点的实际角色。
服务器状态
ServerState mServerState
移动服务联系人
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
注意它必须是启动时间,因为我们需要补偿睡眠时间
mTimestampLastLocalSync_usec
timesync_t mTimestampLastLocalSync_usec
注意它必须是启动时间,因为我们需要对睡眠时间进行补偿
公共职能
中止
WEAVE_ERROR Abort( void )
强制引擎返回空闲状态,中止正在执行的任何操作。
注意不会调用同步成功或失败。所有 Weave Exchange 都将关闭。 TCP 连接不会被进一步触及。如果我们已经处于空闲状态,则没有操作。在回调中不可用。
细节 | |
---|---|
退货 | WEAVE_NO_ERROR 成功 |
禁用自动同步
void DisableAutoSync( void )
禁用自动同步。
仅在空闲状态下可用。在回调中不可用。
启用自动同步
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
启用自动同步。
仅在空闲状态下可用。发现立即发生。在回调中不可用。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
退货 | WEAVE_NO_ERROR 成功 |
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
此引擎配置为存储的最大联系人数量的简单 getter
获取下一个可能性
int8_t GetNextLikelihood( void ) const
提取持久性的可能性。
结果只有在同步操作完成后,在 OnSyncSucceeded 和 OnSyncFailed 的回调中才有效。否则它是暂时的,可能是当前的可能性而不是下一个要使用的可能性。
细节 | |
---|---|
退货 | 在下一个请求中使用响应的可能性 |
初始化客户端
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
初始化这个客户端。
在回调中不可用
细节 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||||||
退货 | WEAVE_NO_ERROR 成功 |
初始化协调器
WEAVE_ERROR InitCoordinator( nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
初始化这个协调。
细节 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||||||
退货 | WEAVE_NO_ERROR 成功 |
初始化服务器
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
如果打算成为时间同步服务器,则必须在对象构造后调用 Server 角色的 initialize 作为第一个函数。
在回调中不可用
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
退货 | WEAVE_NO_ERROR 成功 |
多播时间更改通知
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
由高层调用以多播时间更改通知。
在回调中不可用。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
由更高层调用以表明我们刚刚完成了与任何服务器或通过某种可靠方式(如 NTP)的时间同步。
注册本地同步操作
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
由更高层调用以表明我们刚刚完成了与其他本地协调器的一轮时间同步。
细节 | |||
---|---|---|---|
参数 |
|
关掉
WEAVE_ERROR Shutdown( void )
停止服务,无论它扮演什么角色。
必须调用此函数以正确回收分配的资源,然后才能再次调用任何 init 函数。在回调中不可用。
细节 | |
---|---|
退货 | WEAVE_NO_ERROR 成功 |
同步
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
使用现有联系人进行同步。
如果没有可用的有效联系人,同步操作可能会失败。将 aForceDiscoverAgain 设置为 true 以立即强制发现。仅在空闲状态下可用。在回调中不可用。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR 成功 |
与节点同步
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
使用给定的联系人列表进行同步。
现有的联系人列表将被刷新。仅在空闲状态下可用。在回调中不可用。
细节 | |||||
---|---|---|---|---|---|
参数 |
| ||||
退货 | WEAVE_NO_ERROR 成功 |
与服务同步
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
使用给定的 TCP 连接和关联的加密和密钥 ID 进行同步。
同步完成后,调用者必须拥有 TCP 连接的所有权。 TCP 连接不会覆盖回调,因为将创建一个新的 Weave Exchange,并且在该上下文之上设置的回调仅在空闲状态下可用。在回调中不可用。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR 成功 |
时间同步节点
TimeSyncNode( void )
受保护的功能
立即自动同步
void AutoSyncNow( void )
启动自动同步会话的内部函数
同步完成回调
WEAVE_ERROR CallbackForSyncCompletion( const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec )
诱导回调到应用层。
将 aIsSuccessful 设置为 false 以引发错误回调
清除状态
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
查找可替换联系人
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
返回一个槽来存储联系信息
获取客户端状态名称
const char *const GetClientStateName( void ) const
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
获取有效联系人的数量,但我们还没有与他们交谈。
GetNumReliableResponses
int16_t GetNumReliableResponses( void )
获取到目前为止收集的“可靠”响应的数量。
调用以确定我们是否收集了足够数量的响应
初始化状态
WEAVE_ERROR InitState( const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr )
InvalidateAllContacts
void InvalidateAllContacts( void )
使所有本地联系人无效
无效的服务联系
void InvalidateServiceContact( void )
使与服务的联系无效
注册通讯错误
void RegisterCommError( Contact *const aContact )
在某个联系人上注册通信错误,并在需要时缩短自动发现周期 aContact 可以为 NULL 表示我们没有人可以交谈,因此只需缩短自动发现周期
发送同步请求
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
向联系人发送单播同步请求。
*rIsMessageSent 将设置为指示消息是否已发出。不返回地址不可达等通信错误,因此调用者应检查返回码和*rIsMessageSent。
将所有已完成的联系人设置为空闲
int16_t SetAllCompletedContactsToIdle( void )
再次将所有完成的联系人重置为空闲状态,但不要触摸响应。
这在与同一节点的两轮通信之间调用
SetAllValidContactsToIdleAndInvalidateResponse
int16_t SetAllValidContactsToIdleAndInvalidateResponse( void )
将所有有效的本地联系人设置为空闲状态并清除响应。
这是在我们开始一一联系他们之前调用的
设置客户端状态
void SetClientState( const ClientState state )
商店通知联系人
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
存储刚刚向我们发送时间更改通知的节点的联系信息
更新多播同步响应
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
处理从多播请求返回的响应
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
为 Client 角色初始化。
旨在由 Init 系列公共函数在内部使用。必须在返回前设置 mClientState。在回调中不可用
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
退货 | WEAVE_NO_ERROR 成功 |
_初始化服务器
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
为服务器角色初始化。
旨在由 Init 系列公共函数在内部使用。返回之前必须设置mClientState。在回调中不可用
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR 成功 |
受保护的静态函数
HandleAutoDiscoveryTimeout
void HandleAutoDiscoveryTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
处理自动同步超时
void HandleAutoSyncTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
处理多播响应超时
void HandleMulticastResponseTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
处理多播同步响应
void HandleMulticastSyncResponse( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
处理同步请求
void HandleSyncRequest( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
当时间同步请求到达时来自 Weave Exchange 的回调
处理时间变更通知
void HandleTimeChangeNotification( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
处理单播响应超时
void HandleUnicastResponseTimeout( ExchangeContext *const ec )
处理单播同步响应
void HandleUnicastSyncResponse( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
HandleUnreliableAfterBootTimer
void HandleUnreliableAfterBootTimer( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
当我们通过不可靠的引导屏障后从编织计时器回调
操作状态
bool IsOperationalState( ClientState aState )
确定给定状态是否可操作。
判断ClientState是否表示操作状态的便捷方法,即客户端已经完成初始化,不在关机过程中。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | 如果在初始化完成之后和关闭开始之前状态下降,则为 true,否则为 false。 |
_OnSyncSucceeded
bool _OnSyncSucceeded( void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor )