nl:: Weave:: Profiles:: Time:: TimeSyncNode
摘要
继承
沿用自: nl::Weave::Profiles::Time::_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)
|
typedefvoid(*
回调发生在我们计算响应的时间校正之前。 |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
回调以表示我们刚刚收到时间同步请求。 |
ResponseStatus
|
枚举 存储响应特定联系人的状态。 |
ServerState{
|
枚举 此时间同步服务器的当前状态 |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
回调(包括自动同步)的事件。 |
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
|
typedefbool(*
回调会在被视为成功同步(包括自动同步)之后到应用结果之前发生。 |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
回调以表示我们刚刚收到时间更改通知。 |
公共属性 |
|
---|---|
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
|
用于客户端状态的简单 getter
|
GetNextLikelihood(void) const
|
int8_t
提取持久化的可能性。
|
GetServerState(void) const
|
用于获取服务器状态的简单 getter
|
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)
|
如果意图是时间同步服务器,则必须将服务器角色的 initialize 作为对象构建后的第一个函数进行调用。
|
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
|
void
由更高层向多播时间变化通知调用。
|
RegisterCorrectionFromServerOrNtp(void)
|
void
由更高层调用,表示我们刚刚与任何服务器或通过某种可靠的方式(如 NTP)完成了一轮时间同步。
|
RegisterLocalSyncOperation(const uint8_t aNumContributor)
|
void
由更高层调用,表示我们刚刚与其他本地协调员完成了一轮时间同步。
|
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
关闭 Weave 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
针对特定联系人注册通信错误,并视需要缩短自动发现期限。联系人可以为 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
当我们传递了不可靠的启动屏障后,来自 Weave Timer 的回调
|
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
mIsAutoSyncEnabled
bool mIsAutoSyncEnabled
自动同步功能使用的状态。
mIsUrgentDiscoveryPending
bool mIsUrgentDiscoveryPending
mNominalDiscoveryPeriod_msec
int32_t mNominalDiscoveryPeriod_msec
mShortestDiscoveryPeriod_msec
int32_t mShortestDiscoveryPeriod_msec
mSyncPeriod_msec
int32_t mSyncPeriod_msec
mExchangeContext
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
ClientState
此时间同步客户端的当前状态
ContributorFilter
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
ServerState
此时间同步服务器的当前状态
属性 | |
---|---|
kServerState_Idle
|
服务器已准备好以常规设置响应请求 |
kServerState_UnreliableAfterBoot
|
为服务器预留的时间,以便通过一些其他方式同步其系统时间,仅当调用 Init 时 aIsAlwaysFresh 为 true 时才有意义 |
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
回调(包括自动同步)的事件。
请注意,如果调用 Abort 以停止同步,则不会发生回调。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
SyncSucceededHandler
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 系列函数,以直接启动同步操作,而不受一般“不可用回调”规则的限制。但必须注意,此特殊回调仍位于 Weave 交换层的回调堆栈之上。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
公共属性
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
本地通信的加密方法
mKeyId
uint16_t mKeyId
用于本地通信的密钥 ID
受保护的属性
mApp
void * mApp
指向更高层数据的指针
mClientState
ClientState mClientState
mIsAlwaysFresh
bool mIsAlwaysFresh
mIsInCallback
bool mIsInCallback
如果是对更高层的回调,则返回 true
mLastLikelihoodSent
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
mRole
TimeSyncRole mRole
此节点的实际角色。
mServerState
ServerState mServerState
mServiceContact
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
请注意,必须是启动时间,因为我们需要补偿睡眠时间
mTimestampLastLocalSync_usec
timesync_t mTimestampLastLocalSync_usec
请注意,必须是启动时间,因为我们需要补偿睡眠时间
公共函数
中止
WEAVE_ERROR Abort( void )
强制发动机返回到闲置状态,中止任何正在进行的操作。
请注意,系统不会调用同步成功或失败。所有 Weave Exchange 都将被关闭。不会再涉及 TCP 连接。如果我们已经处于空闲状态,则不会执行任何操作。在回调中不可用。
详细信息 | |
---|---|
返回值 |
成功时返回 WEAVE_NO_ERROR
|
DisableAutoSync
void DisableAutoSync( void )
停用自动同步。
只有在空闲状态下可用在回调中不可用。
EnableAutoSync
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,用于获取此引擎配置为存储的最大联系人数
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
提取持久化的可能性。
结果仅在同步操作完成后才在 OnSyncSucceeded 和 OnSyncFailed 回调内有效。否则它是瞬态的,并且可能是当前可能性,而不是下一个可能性。
详细信息 | |
---|---|
返回值 |
响应被用于下一个请求的可能性
|
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
初始化此客户端。
在回调中不可用
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
InitCoordinator
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
|
InitServer
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
如果意图是时间同步服务器,则必须将服务器角色的 initialize 作为对象构建后的第一个函数进行调用。
在回调中不可用
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
由更高层向多播时间变化通知调用。
在回调中不可用。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
由更高层调用,表示我们刚刚与任何服务器或通过某种可靠的方式(如 NTP)完成了一轮时间同步。
RegisterLocalSyncOperation
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
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
使用指定的联系人列表进行同步。
会刷新现有联系人列表。只有在空闲状态下可用在回调中不可用。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
使用指定的 TCP 连接及关联的加密技术和密钥 ID 进行同步。
同步完成后,调用方必须获得 TCP 连接的所有权。TCP 连接不会覆盖任何回调,因为系统会创建新的 Weave Exchange,并且基于该上下文设置的回调仅在空闲状态下可用。在回调中不可用。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
TimeSyncNode
TimeSyncNode( void )
受保护的函数
AutoSyncNow
void AutoSyncNow( void )
用于启动自动同步会话的内部函数
CallbackForSyncCompletion
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 以引发错误回调
ClearState
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
FindReplaceableContact
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
返回用于存储联系信息的槽位
GetClientStateName
const char *const GetClientStateName( void ) const
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
获取有效的联系人数量,但我们尚未与他们联系。
GetNumReliableResponses
int16_t GetNumReliableResponses( void )
获取“可靠”数量个回复。
调用以确定我们已收集到足够数量的回复
InitState
WEAVE_ERROR InitState( const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr )
InvalidateAllContacts
void InvalidateAllContacts( void )
使所有本地联系人失效
InvalidateServiceContact
void InvalidateServiceContact( void )
使该服务的联系人失效
RegisterCommError
void RegisterCommError( Contact *const aContact )
针对特定联系人注册通信错误,并视需要缩短自动发现期限。联系人可以为 NULL,以表示没有人可以交谈,从而缩短自动发现期限
SendSyncRequest
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
向联系人发送单播同步请求。
*rIsMessageSent 将设置以指示消息是否已发出。不会返回地址无法访问等通信错误,因此调用方应同时检查返回代码和 *rIsMessageSent。
SetAllCompletedContactsToIdle
int16_t SetAllCompletedContactsToIdle( void )
再次将所有已完成的联系人重置为闲置状态,但不要触碰回复。
这称为在与同一节点的两轮通信的
SetAllValidContactsToIdleAndInvalidateResponse
int16_t SetAllValidContactsToIdleAndInvalidateResponse( void )
将所有有效的本地联系人设置为空闲状态并清除响应。
在我们开始逐一联系他们之前,会调用此方法
SetClientState
void SetClientState( const ClientState state )
SetupUnicastCommContext
WEAVE_ERROR SetupUnicastCommContext( Contact *const aContact )
创建新的 Weave Exchange 以进行单播通信
StoreNotifyingContact
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
存储刚刚向我们发送时间更改通知的节点的联系信息
UpdateMulticastSyncResponse
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
处理从多播请求返回的响应
UpdateUnicastSyncResponse
void UpdateUnicastSyncResponse( const TimeSyncResponse & aResponse )
处理从单播请求返回的响应
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
初始化。
旨在供 Init 系列的公共函数在内部使用。必须在返回前设置 mClientState。在回调中不可用
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
初始化。
旨在供 Init 系列的公共函数在内部使用。必须在返回前设置 mClientState。在回调中不可用
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
成功时返回 WEAVE_NO_ERROR
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
停止回调中不可用的协调器。
详细信息 | |
---|---|
返回值 |
成功时返回 WEAVE_NO_ERROR
|
受保护的静态函数
HandleAutoDiscoveryTimeout
void HandleAutoDiscoveryTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
HandleAutoSyncTimeout
void HandleAutoSyncTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
HandleMulticastResponseTimeout
void HandleMulticastResponseTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
HandleMulticastSyncResponse
void HandleMulticastSyncResponse( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
HandleSyncRequest
void HandleSyncRequest( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
收到时间同步请求时从 Weave Exchange 中回调
HandleTimeChangeNotification
void HandleTimeChangeNotification( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
HandleUnicastResponseTimeout
void HandleUnicastResponseTimeout( ExchangeContext *const ec )
HandleUnicastSyncResponse
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 )
当我们传递了不可靠的启动屏障后,来自 Weave Timer 的回调
IsOperationalState
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 )