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
|
enum 이 시간 동기화 클라이언트의 현재 상태 |
CommState
|
enum 특정 연락처와의 커뮤니케이션 상태 |
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
|
enum 저장된 응답 상태를 변경할 수 있습니다. |
ServerState{
|
enum 이 시간 동기화 서버의 현재 상태 |
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)
|
시간 동기화 서버가 되도록 하려면 객체 생성 후 첫 번째 함수로 서버 역할에 대한 초기화를 호출해야 합니다.
|
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)
|
동기화해야 합니다.
|
보호된 함수 |
|
---|---|
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
'reliable' 개수의 'reliable' 지금까지 수집된 응답 수를 확인할 수 있습니다.
|
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
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)
콜백은 자동 동기화를 포함하여 동기화가 실패한 것으로 간주될 때 발생합니다.
동기화를 중지하기 위해 취소를 호출하면 콜백이 발생하지 않습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
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)
방금 시간 변경 알림을 수신했음을 나타내는 콜백입니다.
자동 동기화 모드가 사용 설정된 경우 이 콜백 직후에 시간 동기화가 자동으로 예약됩니다. 그렇지 않으면 애플리케이션 레이어는 동기화 함수 제품군을 호출하여 정상적인 콜백에 사용할 수 없는 일반적인 콜백에 의해 제한되지 않는 동기화 작업을 직접 시작하도록 선택할 수 있습니다. 그러나 이 특별한 콜백은 여전히 Weave 교환 레이어의 콜백 스택 위에 있다는 점에 유의해야 합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
공개 속성
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnSyncRequestReceived
OnSyncRequestReceivedHandler OnSyncRequestReceived
설정하지 않으면 기본 구현에서 항상 true를 반환합니다.
OnSyncSucceeded
SyncSucceededHandler OnSyncSucceeded
설정하지 않으면 기본 동작으로 아주 작은 서버 수정을 제외하고 모든 결과를 가져옵니다.
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 거래소가 종료됩니다. 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 )
시간 동기화 서버가 되도록 하려면 객체 생성 후 첫 번째 함수로 서버 역할에 대한 초기화를 호출해야 합니다.
콜백에서 사용할 수 없음
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 |
성공 시 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 연결의 소유권을 가져야 합니다. 새 Weave Exchange가 생성되고 해당 컨텍스트 위에 콜백이 유휴 상태에서만 사용 가능하므로 TCP 연결에 대한 콜백을 덮어쓰지 않습니다. 사용할 수 없습니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
성공 시 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 )
애플리케이션 레이어에 콜백을 유도합니다
aIsSuccess를 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 )
'reliable' 개수의 'reliable' 지금까지 수집된 응답 수를 확인할 수 있습니다.
충분한 수의 응답을 수집했는지 확인하기 위해
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 )
특정 연락처에 대한 통신 오류를 등록하고 필요한 경우 자동 검색 기간을 단축합니다. 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
|
_ShutdownClient
WEAVE_ERROR _ShutdownClient( void )
콜백에서 사용할 수 없는 클라이언트를 중지합니다.
세부정보 | |
---|---|
반환 |
성공 시 WEAVE_NO_ERROR
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
콜백에서 사용할 수 없는 조정자를 중지합니다.
세부정보 | |
---|---|
반환 |
성공 시 WEAVE_NO_ERROR
|
_ShutdownServer
WEAVE_ERROR _ShutdownServer( 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 )
부팅 장벽 후 신뢰할 수 없는
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 )