Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: 프로필 :: 시각:: TimeSyncNode

요약

계승

:에서 상속 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
커뮤니케이션 컨텍스트.
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 열거 형
이 Time Sync Client의 현재 상태
CommState 열거 형
특정 연락처와의 통신 상태.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
콜백은 응답에서 시간 수정을 계산하기 직전에 발생합니다.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
시간 동기화 요청을 수신했음을 나타내는 콜백입니다.
ResponseStatus 열거 형
특정 연락처에 대한 저장된 응답의 상태.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
열거 형
이 Time Sync Server의 현재 상태
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
콜백은 자동 동기화를 포함하여 동기화가 실패한 것으로 간주 될 때 발생합니다.
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
콜백은 자동 동기화를 포함하여 동기화가 성공한 것으로 간주 된 후 결과가 적용되기 전에 발생합니다.
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
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
이 엔진이 저장하도록 구성된 최대 연락처 수에 대한 간단한 게터
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)
서버 역할에 대한 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
직조 닫습니다 ExchangeContext을
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
연락처 정보를 저장할 슬롯을 반환
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
대화 할 다음 유효하고 유휴 상태의 연락처를 얻습니다.
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
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

mActiveContact

Contact * mActiveContact

커뮤니케이션 컨텍스트.

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

이 Time Sync Client의 현재 상태

CommState

 CommState

특정 연락처와의 통신 상태.

때문에 대중에 연락이 공중에

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

콜백은 응답에서 시간 수정을 계산하기 직전에 발생합니다.

응용 프로그램 계층이 aContact [i] .mResponseStatus를 kResponseStatus_Invalid로 덮어 써서 계산에서 응답이 무시되도록 할 수 있습니다.

세부
매개 변수
[in] aApp
Init에서 설정된 앱 레이어 데이터에 대한 포인터입니다.
[in] aContact
연락처 배열 및 응답 상태
[in] aSize
aContact 배열의 레코드 수

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

시간 동기화 요청을 수신했음을 나타내는 콜백입니다.

세부
매개 변수
[in] aApp
Init에서 설정된 앱 레이어 데이터에 대한 포인터입니다.
[in] aMsgInfo
WeaveMessageInfo 발신자에 대한 정보를 포함하는 수신 시간 동기화 요청에 관한 정보를 포함.
[in] aLikelyhood
발신자가 요청한 응답 가능성
[in] aIsTimeCoordinator
원래 노드가 시간 동기화 조정자이면 참
보고
false이며 엔진은이 요청을 무시합니다.

ResponseStatus

 ResponseStatus

특정 연락처에 대한 저장된 응답의 상태.

때문에 대중에 연락이 공중에

ServerState

 ServerState

이 Time Sync Server의 현재 상태

속성
kServerState_Idle

서버는 일반 설정으로 요청에 응답 할 준비가되어 있습니다.

kServerState_UnreliableAfterBoot

서버가 다른 수단을 통해 시스템 시간을 동기화하기 위해 예약 된 시간은 Init가 호출 될 때 aIsAlwaysFresh가 true 인 경우에만 의미가 있습니다.

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

콜백은 자동 동기화를 포함하여 동기화가 실패한 것으로 간주 될 때 발생합니다.

동기화를 중지하기 위해 Abort가 호출되면 콜백이 발생하지 않습니다.

세부
매개 변수
[in] aApp
Init에서 설정된 앱 레이어 데이터에 대한 포인터입니다.
[in] 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로 덮어 써서 응답이 계산에서 무시되도록 할 수 있습니다.

세부
매개 변수
[in] aApp
Init에서 설정된 앱 레이어 데이터에 대한 포인터입니다.
[in] aOffsetUsec
usec에서 수정 금액
[in] aIsReliable
내장 논리에 의해 신뢰할 수있는 것으로 간주되는 수정입니다.
[in] aIsServer
정정은 서버에서 온 것입니까?
[in] aNumContributor
이 수정에 기여한 노드 수. 0은 동기화 작업의 결과가 없음을 의미합니다.
보고
이 오프셋이 시스템 시간을 조정하는 데 사용되는 경우 참. aNumContributor가 0 인 경우 반환 값은 무시됩니다.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

시간 변경 알림을 받았음을 나타내는 콜백입니다.

자동 동기화 모드가 활성화 된 경우이 콜백 직후 자동으로 시간 동기화가 예약됩니다. 그렇지 않으면 응용 프로그램 계층은 일반적인 콜백에서 사용할 수 없음 규칙에 의해 제한되지 않는 동기화 작업을 직접 시작하기 위해 Sync 함수 제품군을 호출하도록 선택할 수 있습니다. 그러나이 특별한 콜백은 여전히 ​​Weave 교환 계층의 콜백 스택 위에 있다는 점에 유의해야합니다.

세부
매개 변수
[in] aApp
Init에서 설정된 앱 레이어 데이터에 대한 포인터입니다.
[in] aNodeId
노드 ID 요청
[in] aNodeAddr
노드 주소 요청

공용 속성

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

mConnectionToService

WeaveConnection * mConnectionToService

서비스와 통신하는 데 사용되는 TCP 연결입니다.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

연락 정보를 검색을 통해 배웠습니다.

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
)

자동 동기화를 활성화합니다.

유휴 상태에서만 사용할 수 있습니다. 발견은 즉시 이루어집니다. 콜백에서는 사용할 수 없습니다.

세부
매개 변수
[in] aSyncPeriod_msec
동기화 사이의 밀리 초 수
[in] aNominalDiscoveryPeriod_msec
통신 오류가 관찰되지 않는 경우 감지 간 밀리 초 수
[in] aShortestDiscoveryPeriod_msec
통신 오류가 관찰 된 경우 발견 사이의 최단 시간 (밀리 초)
보고
성공시 WEAVE_NO_ERROR

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

이 엔진이 저장하도록 구성된 최대 연락처 수에 대한 간단한 게터

GetClientState

ClientState GetClientState(
  void
) const 

클라이언트 상태에 대한 간단한 게터

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

지속 가능성을 추출하십시오.

결과는 OnSyncSucceeded 및 OnSyncFailed의 콜백 내에서 동기화 작업이 완료된 후에 만 ​​유효합니다. 그렇지 않으면 일시적이고 사용할 다음 가능성이 아닌 현재 가능성 일 수 있습니다.

세부
보고
다음 요청에서 응답이 사용될 가능성

GetServerState

ServerState GetServerState(
  void
) const 

서버 상태에 대한 간단한 게터

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

이 클라이언트를 초기화하십시오.

콜백에서 사용할 수 없음

세부
매개 변수
[in] aApp
상위 레이어에 대한 콜백에 사용되는 상위 레이어 데이터에 대한 포인터입니다.
[in] aExchangeMgr
시스템 전체 Weave Exchange Manager 개체에 대한 포인터
[in] aRole
kTimeSyncRole_Client 또는 kTimeSyncRole_Coordinator 일 수 있습니다.
[in] aEncryptionType
요청 및 응답에 사용할 암호화 유형
[in] aKeyId
요청 및 응답에 사용할 키 ID
[in] 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
)

이 코디네이터를 초기화합니다.

세부
매개 변수
[in] aExchangeMgr
시스템 전체 Weave Exchange Manager 개체에 대한 포인터
[in] aEncryptionType
요청 및 응답에 사용할 암호화 유형
[in] aKeyId
요청 및 응답에 사용할 키 ID
[in] aSyncPeriod_msec
동기화 사이의 밀리 초 수
[in] aNominalDiscoveryPeriod_msec
통신 오류가 관찰되지 않는 경우 발견 사이의 최단 시간 (밀리 초)
[in] aShortestDiscoveryPeriod_msec
통신 오류가 관찰 된 경우 감지 사이의 최소 msec 수
보고
성공시 WEAVE_NO_ERROR

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

서버 역할에 대한 initialize는 시간 동기화 서버가 되려는 경우 오브젝트 구성 후 첫 번째 함수로 호출되어야합니다.

콜백에서 사용할 수 없음

세부
매개 변수
[in] aApp
상위 레이어에 대한 콜백에 사용되는 상위 레이어 데이터에 대한 포인터입니다.
[in] aExchangeMgr
시스템 전체 Weave Exchange Manager 개체에 대한 포인터
[in] aIsAlwaysFresh
초기 불안정한 시간을 제외하고 서버가 항상 동기화됨을 나타 내기 위해 true로 설정 될 수 있습니다. Coordinator에 대해 false로 설정됩니다.
보고
성공시 WEAVE_NO_ERROR

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

멀티 캐스트 시간 변경 알림을 위해 상위 계층에서 호출합니다.

콜백에서는 사용할 수 없습니다.

세부
매개 변수
[in] aEncryptionType
이 알림에 사용할 암호화 유형
[in] aKeyId
이 알림에 사용할 키 ID

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

상위 계층에서 호출하여 서버 또는 NTP와 같은 신뢰할 수있는 수단을 통해 방금 시간 동기화를 완료했음을 나타냅니다.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

상위 계층에서 호출하여 다른 로컬 코디네이터와의 시간 동기화를 방금 완료했음을 나타냅니다.

세부
매개 변수
[in] aNumContributor
이 시간 동기화에 기여한 코디네이터 수

일시 휴업

WEAVE_ERROR Shutdown(
  void
)

어떤 역할을 수행하든 서비스를 중지하십시오.

이 함수는 init 함수에 대한 다른 호출을하기 전에 할당 된 자원을 적절하게 회수하기 위해 호출되어야합니다. 콜백에서는 사용할 수 없습니다.

세부
보고
성공시 WEAVE_NO_ERROR

동조

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

기존 연락처를 사용하여 동기화.

유효한 연락처가 없으면 동기화 작업이 실패 할 수 있습니다. 검색을 즉시 강제하려면 aForceDiscoverAgain을 true로 설정하십시오. 유휴 상태에서만 사용할 수 있습니다. 콜백에서는 사용할 수 없습니다.

세부
매개 변수
[in] aForceDiscoverAgain
모든 기존 연락처를 플러시하고 검색 작업을 수행하면 참
보고
성공시 WEAVE_NO_ERROR

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

주어진 연락처 목록을 사용하여 동기화하십시오.

기존 연락처 목록이 플러시됩니다. 유휴 상태에서만 사용할 수 있습니다. 콜백에서는 사용할 수 없습니다.

세부
매개 변수
[in] aNumNode
배열 aNodes의 접점 수
[in] aNodes
연락처 레코드 배열
보고
성공시 WEAVE_NO_ERROR

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

주어진 TCP 연결 및 관련 암호화 및 키 ID를 사용하여 동기화합니다.

호출자는 동기화가 완료된 후 TCP 연결의 소유권을 가져야합니다. 새 Weave Exchange가 생성되고 해당 컨텍스트 위에 설정된 콜백은 유휴 상태에서만 사용할 수 있으므로 TCP 연결에 대해 콜백을 덮어 쓰지 않습니다. 콜백에서는 사용할 수 없습니다.

세부
매개 변수
[in] aConnection
Weave 연결에 대한 포인터
보고
성공시 WEAVE_NO_ERROR

TimeSyncNode

 TimeSyncNode(
  void
)

보호 된 기능

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

aCode가 WEAVE_NO_ERROR가 아닌 경우 내부 중단

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
)

DestroyCommContext

bool DestroyCommContext(
  void
)

직조 닫습니다 ExchangeContext을

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 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

대화 할 다음 유효하고 유휴 연락처를 가져옵니다.

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
)

특정 연락처에 대한 통신 오류를 등록하고 필요한 경우 자동 검색 기간을 단축 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를 설정해야합니다. 콜백에서 사용할 수 없음

세부
매개 변수
[in] aEncryptionType
요청 및 응답에 사용할 암호화 유형
[in] aKeyId
요청 및 응답에 사용할 키 ID
[in] aInitialLikelyhood
발견 단계에 사용될 초기 가능성
보고
성공시 WEAVE_NO_ERROR

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

서버 역할을 초기화합니다.

공용 함수의 Init 제품군에서 내부적으로 사용하기위한 것입니다. 반환하기 전에 mClientState를 설정해야합니다. 콜백에서 사용할 수 없음

세부
매개 변수
[in] aIsAlwaysFresh
초기 불안정한 시간을 제외하고 서버가 항상 동기화됨을 나타 내기 위해 true로 설정 될 수 있습니다. Coordinator에 대해 false로 설정됩니다.
보고
성공시 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
)

Weave Timer의 콜백 이후 부팅 장벽 이후에 신뢰할 수 없음

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

주어진 상태가 작동하는지 확인합니다.

ClientState가 작동 상태를 나타내는 지, 즉 클라이언트가 초기화를 완료했으며 종료 중이 아닌지 여부를 확인하는 편리한 방법입니다.

세부
매개 변수
[in] aState
평가할 상태
보고
초기화가 완료된 후 종료가 시작되기 전 상태가되면 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
)