nl::Weave::Profiles::Time::TimeSyncNode

Podsumowanie

Dziedziczenie

Dziedziczy z: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Konstruktorzy i niszczyciele

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
stany używane na potrzeby funkcji automatycznej synchronizacji.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
kontekst komunikacji.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
te funkcje przejścia stanu mają charakter wewnętrzny i nie mogą zwracać kodu błędu, ponieważ poprzedni stan nie ma do nich możliwości ich obsługi.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Typy publiczne

ClientState enum | typ wyliczeniowy
bieżący stan tego klienta synchronizacji czasu
CommState enum | typ wyliczeniowy
stanu komunikacji z określonym kontaktem.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
oddzwonienie ma miejsce tuż przed obliczeniem korekty czasu na podstawie odpowiedzi.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
aby poinformować nas, że właśnie otrzymaliśmy żądanie synchronizacji godziny.
ResponseStatus enum | typ wyliczeniowy
stanu przechowywanej odpowiedzi na określony kontakt.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum | typ wyliczeniowy
bieżący stan tego serwera synchronizacji czasu
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
wywołanie zwrotne ma miejsce, gdy synchronizacja (w tym automatyczna synchronizacja) zostanie uznana za nieudaną.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
wywołanie zwrotne ma miejsce, gdy synchronizacja zostanie uznana za udaną (w tym automatyczną), ale przed zastosowaniem wyniku.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
aby poinformować nas o tym, że właśnie otrzymaliśmy powiadomienie o zmianie godziny.

Atrybuty publiczne

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Jeśli jej nie skonfigurujesz, implementacja domyślna zawsze zwraca wartość „true” (prawda).
OnSyncSucceeded
Jeśli zasada nie jest skonfigurowana, domyślne zachowanie przyjmuje wszystkie wyniki z wyjątkiem bardzo małych poprawek serwera
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
metoda szyfrowania komunikacji lokalnej
mKeyId
uint16_t
identyfikator klucza używany do komunikacji lokalnej

Atrybuty chronione

mApp
void *
wskaźnik do danych z wyższej warstwy
mClientState
mConnectionToService
Połączenie TCP używane do komunikacji z usługą.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Dane kontaktowe zebrane podczas badania.
mIsAlwaysFresh
bool
mIsInCallback
bool
wartość true w przypadku wywołania zwrotnego do wyższego poziomu
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Rzeczywista rola tego węzła.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Należy pamiętać, że musi to być czas uruchamiania, ponieważ potrzebujemy wyrównania za czas snu.
mTimestampLastLocalSync_usec
timesync_t
Należy pamiętać, że musi to być czas uruchamiania, ponieważ potrzebujemy wyrównania za czas snu.

Funkcje publiczne

Abort(void)
wymusza powrót do stanu bezczynności, przerywając pracę.
DisableAutoSync(void)
void
wyłączyć automatyczną synchronizację.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
włączyć automatyczną synchronizację.
GetCapacityOfContactList(void) const
int
prosta metoda pobierania określająca maksymalną liczbę kontaktów, które są przechowywane w tym mechanizmie w konfiguracji tej wyszukiwarki
GetClientState(void) const
prosta metoda pobierania dla stanu klienta
GetNextLikelihood(void) const
int8_t
wyodrębnienia prawdopodobieństwa stałej.
GetServerState(void) const
prosta metoda pobierająca dla stanu serwera
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
zainicjować tego klienta.
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)
zainicjowania tego koordynatora.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
dla roli serwera musi być wywołana jako pierwsza funkcja po utworzeniu obiektu, jeśli intencją ma być serwer synchronizacji czasu.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Wywoływana przez wyższą warstwę do powiadomienia o zmianie czasu transmisji w trybie multicast.
RegisterCorrectionFromServerOrNtp(void)
void
Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy synchronizację czasu z dowolnym serwerem lub przy użyciu pewnych niezawodnych metod, takich jak NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Wywołana przez zespół wyższego poziomu, aby poinformować, że właśnie zakończyliśmy sesję synchronizacji z innymi lokalnymi koordynatorami.
Shutdown(void)
zatrzymać usługę bez względu na jej rolę.
Sync(const bool aForceDiscoverAgain)
zsynchronizować dane za pomocą istniejących kontaktów.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
zsynchronizować dane, używając podanej listy kontaktów.
SyncWithService(WeaveConnection *const aConnection)
Przeprowadź synchronizację przy użyciu danego połączenia TCP oraz powiązanego szyfrowania i identyfikatora klucza.

Funkcje chronione

AbortOnError(const WEAVE_ERROR aCode)
void
wewnętrzne przerwanie, jeśli kod nie ma wartości WEAVE_NO_ERROR
AutoSyncNow(void)
void
funkcja wewnętrzna do rozpoczynania sesji automatycznej synchronizacji
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)
wywołania zwrotnego do warstwy aplikacji.
ClearState(void)
void
DestroyCommContext(void)
bool
Zamknij ExchangeContext weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
przywróć przedział w celu przechowywania informacji kontaktowych.
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
podaj następny prawidłowy i nieaktywny kontakt, z którym chcesz porozmawiać
GetNumNotYetCompletedContacts(void)
int16_t
sprawdzić liczbę prawidłowych kontaktów, ale jeszcze nie udało nam się z nimi porozmawiać.
GetNumReliableResponses(void)
int16_t
uzyskać liczbę zebranych do tej pory „rzetelnych” odpowiedzi.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
unieważnij wszystkie kontakty lokalne
InvalidateServiceContact(void)
void
unieważnić kontakt z usługą
RegisterCommError(Contact *const aContact)
void
zarejestrować błąd komunikacji w przypadku określonego kontaktu i w razie potrzeby skrócić okres automatycznego wykrywania. Parametr aContact może zawierać wartość NULL, co oznacza, że nie mamy z kim rozmawiać. W ten sposób skróć okres automatycznego wykrywania.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
wyślij do kontaktu żądanie synchronizacji pojedynczej transmisji.
SetAllCompletedContactsToIdle(void)
int16_t
zresetuj wszystkie ukończone kontakty do stanu bezczynności, ale nie dotykaj odpowiedzi.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
ustaw wszystkie prawidłowe kontakty lokalne w stan nieaktywny i wyczyść odpowiedź.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
utworzenie nowej platformy Weave Exchange umożliwiającej komunikację pojedynczą.
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
przechowuj informacje kontaktowe węzła, który właśnie wysłał nam powiadomienie o zmianie czasu
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
przetwarza odpowiedź pochodzącą z żądania multiemisji
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
przetwarza odpowiedź pochodzącą z żądania pojedynczego
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
zainicjować dla roli Klient.
_InitServer(const bool aIsAlwaysFresh)
zainicjować dla roli serwera.
_ShutdownClient(void)
zatrzymuje klient niedostępny w wywołaniach zwrotnych.
_ShutdownCoordinator(void)
zatrzymuje koordynatora niedostępnego w wywołaniach zwrotnych.
_ShutdownServer(void)
zatrzymywać serwer, który nie jest dostępny w wywołaniach zwrotnych.

Chronione funkcje statyczne

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
wywołanie zwrotne z Weave Exchange po nadejściu żądania synchronizacji godziny;
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
wywołanie zwrotne z Weave Timer po przekroczeniu niestabilnej bariery po rozruchu
IsOperationalState(ClientState aState)
bool
Określ, czy dany stan działa.
_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

stany używane na potrzeby funkcji automatycznej synchronizacji.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

kontekst komunikacji.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

te funkcje przejścia stanu mają charakter wewnętrzny i nie mogą zwracać kodu błędu, ponieważ poprzedni stan nie ma do nich możliwości ich obsługi.

Każda awaria spowoduje późniejszą zmianę stanu (może to być przekroczenie limitu czasu). Nawet jeśli minutnik się nie uda, nie będziemy w stanie działać, przez co możemy zawieszać się w niewłaściwym stanie.

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
)

Typy publiczne

ClientState

 ClientState

bieżący stan tego klienta synchronizacji czasu

CommState

 CommState

stanu komunikacji z określonym kontaktem.

To jest publiczne, ponieważ Kontakt jest publiczny

ContributorFilter

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

oddzwonienie ma miejsce tuż przed obliczeniem korekty czasu na podstawie odpowiedzi.

warstwa aplikacji może zastąpić parametr aContact[i].mResponseStatus na kResponseStatus_Invalid, tak aby odpowiedź była ignorowana w obliczeniach.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w Init.
[in] aContact
tablica kontaktów i stanów odpowiedzi
[in] aSize
liczba rekordów w tablicy aContact

OnSyncRequestReceivedHandler

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

aby poinformować nas, że właśnie otrzymaliśmy żądanie synchronizacji godziny.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w Init.
[in] aMsgInfo
Element WeaveMessageInfo zawierający informacje o otrzymanym żądaniu synchronizacji w czasie, w tym dane o nadawcy.
[in] aLikelyhood
prawdopodobieństwo uzyskania odpowiedzi zgodnie z żądaniem źródła
[in] aIsTimeCoordinator
Prawda, jeśli węzeł źródłowy jest koordynatorem synchronizacji czasu
Zwroty
Ma wartość false, a wyszukiwarka zignoruje to żądanie

ResponseStatus

 ResponseStatus

stanu przechowywanej odpowiedzi na określony kontakt.

To jest publiczne, ponieważ Kontakt jest publiczny

ServerState

 ServerState

bieżący stan tego serwera synchronizacji czasu

Właściwości
kServerState_Idle

serwer jest gotowy do odpowiadania na żądania z normalnymi ustawieniami

kServerState_UnreliableAfterBoot

czas zarezerwowany na potrzeby synchronizacji czasu systemowego przez serwer przy użyciu innych środków ma znaczenie tylko wtedy, gdy parametr aIsNeverFresh ma wartość true (prawda) w przypadku wywołania Init.

SyncFailedHandler

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

wywołanie zwrotne ma miejsce, gdy synchronizacja (w tym automatyczna synchronizacja) zostanie uznana za nieudaną.

Pamiętaj, że wywołanie zwrotne nie jest wykonywane, jeśli przerwano działanie w celu zatrzymania synchronizacji

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w Init.
[in] aErrorCode
przyczyna niepowodzenia

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

wywołanie zwrotne ma miejsce, gdy synchronizacja zostanie uznana za udaną (w tym automatyczną), ale przed zastosowaniem wyniku.

Pamiętaj, że pomyślne wyniki nie oznaczają, że mamy odpowiednie wyniki. Jeśli nie otrzymano odpowiedzi, parametr aNumContributor miałby wartość 0. Warstwa aplikacji może zastąpić parametr aContact[i].mResponseStatus na kResponseStatus_Invalid, co spowoduje zignorowanie odpowiedzi w obliczeniach.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w Init.
[in] aOffsetUsec
ilość korekty w Usec
[in] aIsReliable
to poprawka uznawana przez wbudowaną logikę za wiarygodną
[in] aIsServer
Czy korekta pochodzi z serwerów?
[in] aNumContributor
liczbę węzłów, które przyczyniły się do tej korekty. Wartość 0 oznacza, że nie ma wyników operacji synchronizacji.
Zwroty
true (prawda), jeśli przesunięcie ma być używane do korygowania czasu systemowego. Jeśli aNumContributor wynosi 0, zwracana wartość jest ignorowana.

TimeChangeNotificationHandler

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

aby poinformować nas o tym, że właśnie otrzymaliśmy powiadomienie o zmianie godziny.

przy włączonym trybie automatycznej synchronizacji zaplanowana jest synchronizacja czasu tuż po tym wywołaniu zwrotnym. W przeciwnym razie warstwa aplikacji może wybrać wywołanie rodziny funkcji synchronizacji, aby bezpośrednio rozpocząć operację synchronizacji, której nie ogranicza zwykła reguła braku dostępności podczas wywołania zwrotnego. Należy jednak pamiętać, że to specjalne wywołanie zwrotne znajduje się nadal nad stosem wywołań zwrotnych warstwy wymiany Weave.

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych warstwy aplikacji ustawiony w Init.
[in] aNodeId
identyfikator węzła wysyłającego żądanie
[in] aNodeAddr
adres węzła wysyłającego żądanie

Atrybuty publiczne

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Jeśli jej nie skonfigurujesz, implementacja domyślna zawsze zwraca wartość „true” (prawda).

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Jeśli zasada nie jest skonfigurowana, domyślne zachowanie przyjmuje wszystkie wyniki z wyjątkiem bardzo małych poprawek serwera

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

metoda szyfrowania komunikacji lokalnej

mKeyId

uint16_t mKeyId

identyfikator klucza używany do komunikacji lokalnej

Atrybuty chronione

mApp

void * mApp

wskaźnik do danych z wyższej warstwy

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Połączenie TCP używane do komunikacji z usługą.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Dane kontaktowe zebrane podczas badania.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

wartość true w przypadku wywołania zwrotnego do wyższego poziomu

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Rzeczywista rola tego węzła.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Należy pamiętać, że musi to być czas uruchamiania, ponieważ potrzebujemy wyrównania za czas snu.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Należy pamiętać, że musi to być czas uruchamiania, ponieważ potrzebujemy wyrównania za czas snu.

Funkcje publiczne

Przerwij

WEAVE_ERROR Abort(
  void
)

wymusza powrót do stanu bezczynności, przerywając pracę.

Pamiętaj, że nie zostanie wywołana żadna udana lub nieudana synchronizacja. Wszystkie giełdy Weave zostaną zamknięte. Połączenia TCP nie będą miały wpływu na dalsze połączenie. Brak operacji w przypadku użytkowników, którzy są już w stanie bezczynności. Opcja niedostępna w wywołaniach zwrotnych.

Szczegóły
Zwroty
Powodzenie: WEAVE_NO_ERROR

DisableAutoSync

void DisableAutoSync(
  void
)

wyłączyć automatyczną synchronizację.

dostępne tylko w stanie bezczynności. Funkcja niedostępna w wywołaniach zwrotnych.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

włączyć automatyczną synchronizację.

dostępne tylko w stanie bezczynności, wykrywanie odbywa się od razu i nie jest dostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aSyncPeriod_msec
liczba ms między synchronizacją
[in] aNominalDiscoveryPeriod_msec
liczba ms między wykrywaniem, jeśli nie zaobserwowano błędu komunikacji
[in] aShortestDiscoveryPeriod_msec
najkrótszy czas między wykrywaniem (w ms), jeśli zaobserwowano błąd komunikacji
Zwroty
Powodzenie: WEAVE_NO_ERROR

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

prosta metoda pobierania określająca maksymalną liczbę kontaktów, które są przechowywane w tym mechanizmie w konfiguracji tej wyszukiwarki

GetClientState

ClientState GetClientState(
  void
) const 

prosta metoda pobierania dla stanu klienta

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

wyodrębnienia prawdopodobieństwa stałej.

wynik będzie prawidłowy tylko po ukończeniu operacji synchronizacji, w ramach wywołań zwrotnych OnSyncSucceeded i OnSyncFailed. W przeciwnym razie jest on przejściowy i może reprezentować bieżące prawdopodobieństwo, a nie kolejne, które zostanie użyte.

Szczegóły
Zwroty
prawdopodobieństwo użycia odpowiedzi w następnym żądaniu

GetServerState

ServerState GetServerState(
  void
) const 

prosta metoda pobierająca dla stanu serwera

InitClient

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

zainicjować tego klienta.

niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych z wyższej warstwy, używany w wywołaniach zwrotnych do wyższej warstwy.
[in] aExchangeMgr
Wskaźnik do ogólnego obiektu menedżera Weave Exchange
[in] aRole
może mieć wartość kTimeSyncRole_Client lub kTimeSyncRole_Coordinator
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach.
[in] aKeyId
identyfikator klucza używany w żądaniach i odpowiedziach
[in] aInitialLikelyhood
wstępne prawdopodobieństwo wykorzystania na etapie wykrywania
Zwroty
Powodzenie: 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
)

zainicjowania tego koordynatora.

Szczegóły
Parametry
[in] aExchangeMgr
Wskaźnik do ogólnego obiektu menedżera Weave Exchange
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach.
[in] aKeyId
identyfikator klucza używany w żądaniach i odpowiedziach
[in] aSyncPeriod_msec
liczba ms między synchronizacją
[in] aNominalDiscoveryPeriod_msec
najkrótszy czas między wykrywaniem (w ms), jeśli nie zaobserwowano błędu w komunikacji
[in] aShortestDiscoveryPeriod_msec
najmniejsza liczba ms między wykrywaniem, jeśli zaobserwowano błąd komunikacji
Zwroty
Powodzenie: WEAVE_NO_ERROR

InitServer

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

dla roli serwera musi być wywołana jako pierwsza funkcja po utworzeniu obiektu, jeśli intencją ma być serwer synchronizacji czasu.

niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aApp
Wskaźnik do danych z wyższej warstwy, używany w wywołaniach zwrotnych do wyższej warstwy.
[in] aExchangeMgr
Wskaźnik do ogólnego obiektu menedżera Weave Exchange
[in] aIsAlwaysFresh
można ustawić na wartość prawda , aby wskazać, że serwer jest zawsze synchronizowany oprócz początkowego niepewnego czasu. Dla koordynatora powinna mieć wartość fałsz.
Zwroty
Powodzenie: WEAVE_NO_ERROR

MulticastTimeChangeNotification

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

Wywoływana przez wyższą warstwę do powiadomienia o zmianie czasu transmisji w trybie multicast.

niedostępne w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aEncryptionType
typ szyfrowania, który ma być użyty w przypadku tego powiadomienia
[in] aKeyId
identyfikator klucza, który ma być używany dla tego powiadomienia

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Wywoływana przez wyższą warstwę, aby wskazać, że właśnie zakończyliśmy synchronizację czasu z dowolnym serwerem lub przy użyciu pewnych niezawodnych metod, takich jak NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Wywołana przez zespół wyższego poziomu, aby poinformować, że właśnie zakończyliśmy sesję synchronizacji z innymi lokalnymi koordynatorami.

Szczegóły
Parametry
[in] aNumContributor
liczba koordynatorów przypisanych do tej synchronizacji czasu

Wyłączono

WEAVE_ERROR Shutdown(
  void
)

zatrzymać usługę bez względu na jej rolę.

Ta funkcja musi zostać wywołana w celu prawidłowego odzyskania przydzielonych zasobów, zanim będzie możliwe kolejne wywołanie którejkolwiek funkcji inicjowania. Nie jest ona dostępna w wywołaniach zwrotnych.

Szczegóły
Zwroty
Powodzenie: WEAVE_NO_ERROR

Synchronizuj

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

zsynchronizować dane za pomocą istniejących kontaktów.

Operacja synchronizacji może się nie powieść, jeśli nie będą dostępne żadne prawidłowe kontakty. Ustaw aForceDiscoverAgain na true, aby natychmiast wymuszać wykrywanie. Dostępne tylko w stanie bezczynności. Funkcja niedostępna w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aForceDiscoverAgain
true (prawda), jeśli wszystkie istniejące kontakty zostaną usunięte i przeprowadzona zostanie operacja wykrywania
Zwroty
Powodzenie: WEAVE_NO_ERROR

SyncWithNodes

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

zsynchronizować dane, używając podanej listy kontaktów.

istniejąca lista kontaktów zostałaby opróżniona. Dostępna tylko w stanie bezczynności. Funkcja niedostępna w wywołaniach zwrotnych.

Szczegóły
Parametry
[in] aNumNode
liczba kontaktów w węzłach tablicy
[in] aNodes
tablica rejestrów kontaktów
Zwroty
Powodzenie: WEAVE_NO_ERROR

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

Przeprowadź synchronizację przy użyciu danego połączenia TCP oraz powiązanego szyfrowania i identyfikatora klucza.

Element wywołujący musi przejąć własność połączenia TCP po zakończeniu synchronizacji. Żadne wywołanie zwrotne dla połączenia TCP nie zostanie zastąpione, ponieważ powstanie nowa giełda Weave Exchange, a wywołania zwrotne ustawione na podstawie tego kontekstu będą dostępne tylko w stanie bezczynności. Nie są dostępne w przypadku wywołań zwrotnych.

Szczegóły
Parametry
[in] aConnection
Wskaźnik połączenia z Weave
Zwroty
Powodzenie: WEAVE_NO_ERROR

TimeSyncNode

 TimeSyncNode(
  void
)

Funkcje chronione

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

wewnętrzne przerwanie, jeśli kod nie ma wartości WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

funkcja wewnętrzna do rozpoczynania sesji automatycznej synchronizacji

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
)

wywołania zwrotnego do warstwy aplikacji.

Aby wywołać wywołanie zwrotne o błędzie, ustaw aIsSuccessful na wartość false (fałsz)

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

Zamknij ExchangeContext weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

przywróć przedział w celu przechowywania informacji kontaktowych.

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

podaj następny prawidłowy i nieaktywny kontakt, z którym chcesz porozmawiać

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

sprawdzić liczbę prawidłowych kontaktów, ale jeszcze nie udało nam się z nimi porozmawiać.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

uzyskać liczbę zebranych do tej pory „rzetelnych” odpowiedzi.

aby ustalić, czy udało nam się zebrać wystarczającą liczbę odpowiedzi

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

unieważnij wszystkie kontakty lokalne

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

unieważnić kontakt z usługą

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

zarejestrować błąd komunikacji w przypadku określonego kontaktu i w razie potrzeby skrócić okres automatycznego wykrywania. Parametr aContact może zawierać wartość NULL, co oznacza, że nie mamy z kim rozmawiać. W ten sposób skróć okres automatycznego wykrywania.

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

wyślij do kontaktu żądanie synchronizacji pojedynczej transmisji.

*rIsMessageSent wskazuje, czy wiadomość została wysłana. Błędy komunikacji, takie jak nieosiągalny adres, nie są zwracane, więc wywołujący powinien sprawdzić zarówno kod zwrotny, jak i *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

zresetuj wszystkie ukończone kontakty do stanu bezczynności, ale nie dotykaj odpowiedzi.

jest wywoływane między 2 rundami komunikacji do tego samego węzła

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

ustaw wszystkie prawidłowe kontakty lokalne w stan nieaktywny i wyczyść odpowiedź.

To połączenie jest nazywane, zanim zaczniemy kontaktować się z nimi po kolei.

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

utworzenie nowej platformy Weave Exchange umożliwiającej komunikację pojedynczą.

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

przechowuj informacje kontaktowe węzła, który właśnie wysłał nam powiadomienie o zmianie czasu

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

przetwarza odpowiedź pochodzącą z żądania multiemisji

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

przetwarza odpowiedź pochodzącą z żądania pojedynczego

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

zainicjować dla roli Klient.

Przeznaczona do użytku wewnętrznego przez grupę funkcji publicznych Init. Przed zwróceniem należy ustawić wartość mClientState. Niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aEncryptionType
typ szyfrowania używany w żądaniach i odpowiedziach.
[in] aKeyId
identyfikator klucza używany w żądaniach i odpowiedziach
[in] aInitialLikelyhood
wstępne prawdopodobieństwo wykorzystania na etapie wykrywania
Zwroty
Powodzenie: WEAVE_NO_ERROR

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

zainicjować dla roli serwera.

Przeznaczona do użytku wewnętrznego przez grupę funkcji publicznych Init. Przed zwróceniem należy ustawić wartość mClientState. Niedostępne w wywołaniach zwrotnych

Szczegóły
Parametry
[in] aIsAlwaysFresh
można ustawić na wartość prawda , aby wskazać, że serwer jest zawsze synchronizowany oprócz początkowego niepewnego czasu. Dla koordynatora powinna mieć wartość fałsz.
Zwroty
Powodzenie: WEAVE_NO_ERROR

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

zatrzymuje klient niedostępny w wywołaniach zwrotnych.

Szczegóły
Zwroty
Powodzenie: WEAVE_NO_ERROR

_Koordynator wyłączenia

WEAVE_ERROR _ShutdownCoordinator(
  void
)

zatrzymuje koordynatora niedostępnego w wywołaniach zwrotnych.

Szczegóły
Zwroty
Powodzenie: WEAVE_NO_ERROR

_Wyłączenie serwera

WEAVE_ERROR _ShutdownServer(
  void
)

zatrzymywać serwer, który nie jest dostępny w wywołaniach zwrotnych.

Szczegóły
Zwroty
Powodzenie: WEAVE_NO_ERROR

Chronione funkcje statyczne

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
)

wywołanie zwrotne z Weave Exchange po nadejściu żądania synchronizacji godziny;

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
)

wywołanie zwrotne z Weave Timer po przekroczeniu niestabilnej bariery po rozruchu

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Określ, czy dany stan działa.

Wygodna metoda sprawdzania, czy stan ClientState oznacza stan operacyjny, tj. klient zakończył inicjowanie i nie jest w trakcie wyłączania.

Szczegóły
Parametry
[in] aState
stan do oceny
Zwroty
Wartość true, jeśli stan przypada po zakończeniu inicjowania i przed rozpoczęciem wyłączania. W przeciwnym razie ma wartość false (fałsz).

_OnSyncSukces

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)