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

Zusammenfassung

Übernahme

Übernommen von: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Konstruktoren und Zerstörer

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
Status der automatischen Synchronisierung
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
Kommunikationskontexts.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
Diese Statusübergangsfunktionen sind intern und können keinen Fehlercode zurückgeben, da der vorherige Status keine Möglichkeit hat, sie zu verarbeiten.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Öffentliche Typen

ClientState enum
Aktueller Status dieses Time Sync-Clients
CommState enum
mit einem bestimmten Kontakt kommunizieren.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
direkt bevor die Zeitkorrektur aus den Antworten berechnet wird.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
, um anzugeben, dass wir gerade eine Zeitsynchronisierungsanfrage erhalten haben.
ResponseStatus enum
Status der gespeicherten Antwort an einen bestimmten Kontakt.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
Aktueller Status dieses Time Sync Servers
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
-Rückruf erfolgt, wenn die Synchronisierung als fehlgeschlagen gilt, einschließlich der automatischen Synchronisierung.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
-Rückruf erfolgt, nachdem die Synchronisierung als erfolgreich angesehen wurde, einschließlich der automatischen Synchronisierung, aber bevor das Ergebnis angewendet wird.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
an, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Öffentliche Attribute

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Wenn die Richtlinie nicht konfiguriert ist, gibt die Standardimplementierung immer „true“ zurück.
OnSyncSucceeded
Wenn die Richtlinie nicht konfiguriert ist, werden standardmäßig alle Ergebnisse bis auf sehr kleine Serverkorrekturen übernommen.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
Verschlüsselungsmethode für die lokale Kommunikation
mKeyId
uint16_t
Schlüssel-ID für die lokale Kommunikation

Geschützte Attribute

mApp
void *
Zeiger auf Daten höherer Ebenen
mClientState
mConnectionToService
TCP-Verbindung, die für die Kommunikation mit dem Dienst verwendet wird.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Kontaktdaten, die während der Auffindbarkeit gewonnen wurden.
mIsAlwaysFresh
bool
mIsInCallback
bool
„true“, wenn wir uns in einem Callback auf einer höheren Ebene befinden
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Tatsächliche Rolle dieses Knotens.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Beachten Sie, dass es sich um die Startzeit handeln muss, da wir einen Ausgleich für die Ruhezeit benötigen.
mTimestampLastLocalSync_usec
timesync_t
Beachten Sie, dass es sich um die Startzeit handeln muss, da wir einen Ausgleich für die Ruhezeit benötigen.

Öffentliche Funktionen

Abort(void)
den Motor in den Leerlaufmodus zurückversetzen zu lassen, wodurch alles, was er gerade tut, abgebrochen wird.
DisableAutoSync(void)
void
die automatische Synchronisierung zu deaktivieren.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
die automatische Synchronisierung aktivieren.
GetCapacityOfContactList(void) const
int
Einfacher Getter für die maximale Anzahl von Kontakten, für die diese Engine konfiguriert ist
GetClientState(void) const
Einfacher Getter für Clientstatus
GetNextLikelihood(void) const
int8_t
die Wahrscheinlichkeit für Persistent zu extrahieren.
GetServerState(void) const
Einfacher Getter für den Server-Status
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
Initialisieren Sie diesen Client.
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)
Initialisieren Sie diesen Koordinator.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
initialisieren für die Serverrolle muss als erste Funktion nach der Objekterstellung aufgerufen werden, wenn es sich um einen Zeitsynchronisierungsserver handelt.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Wird von einer höheren Ebene zur Multicast-Zeitänderung aufgerufen.
RegisterCorrectionFromServerOrNtp(void)
void
Wird von einer höheren Ebene aufgerufen, um anzuzeigen, dass gerade eine Zeitsynchronisierung mit einem beliebigen Server oder über eine zuverlässige Methode wie NTP abgeschlossen wurde.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Wird von einer höheren Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Zeitsynchronisierung mit anderen lokalen Koordinatoren abgeschlossen haben.
Shutdown(void)
den Dienst zu stoppen, egal, welche Rolle er spielt.
Sync(const bool aForceDiscoverAgain)
unter Verwendung vorhandener Kontakte synchronisieren.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
unter Verwendung der angegebenen Kontaktliste synchronisieren.
SyncWithService(WeaveConnection *const aConnection)
mit der angegebenen TCP-Verbindung und der zugehörigen Verschlüsselung und Schlüssel-ID synchronisieren.

Geschützte Funktionen

AbortOnError(const WEAVE_ERROR aCode)
void
Interner Abbruch, wenn ein Code nicht WEAVE_NO_ERROR ist
AutoSyncNow(void)
void
Interne Funktion zum Starten einer Autosynchronisierungssitzung
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)
einen Callback an die Anwendungsebene herbeiführen.
ClearState(void)
void
DestroyCommContext(void)
bool
Weave ExchangeContext schließen
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
einen Slot zum Speichern von Kontaktdaten zurückgeben
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
den nächsten gültigen und inaktiven Kontakt abrufen
GetNumNotYetCompletedContacts(void)
int16_t
die Anzahl der gültigen Kontakte abrufen, aber wir haben noch nicht mit ihnen gesprochen.
GetNumReliableResponses(void)
int16_t
die bisher gesammelten „zuverlässigen“ Antworten abrufen.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
Alle lokalen Kontakte ungültig machen
InvalidateServiceContact(void)
void
den Kontakt mit dem Dienst ungültig machen
RegisterCommError(Contact *const aContact)
void
Kommunikationsfehler bei einem bestimmten Kontakt registrieren und bei Bedarf den Zeitraum für die automatische Erkennung verkürzen
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
Unicast-Synchronisierungsanfrage an einen Kontakt senden.
SetAllCompletedContactsToIdle(void)
int16_t
alle abgeschlossenen Kontakte wieder auf inaktiven Zustand zurücksetzen, aber nicht die Antwort berühren.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
setzen Sie alle gültigen lokalen Kontakte in den Ruhezustand und löschen Sie die Antwort.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
Neuen Weave Exchange für die Unicast-Kommunikation erstellen
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
die Kontaktdaten eines Knotens speichern, der uns gerade eine Zeitänderungsbenachrichtigung gesendet hat
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
Antwort von einer Multicast-Anfrage verarbeiten
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
Antwort von einer Unicast-Anfrage verarbeiten
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
für die Rolle "Client" zu initialisieren.
_InitServer(const bool aIsAlwaysFresh)
für die Rolle „Server“ zu initialisieren.
_ShutdownClient(void)
den Client, der nicht in Callbacks verfügbar ist, zu stoppen.
_ShutdownCoordinator(void)
Koordinator stoppen, der in Callbacks nicht verfügbar ist
_ShutdownServer(void)
und stoppt den Server, der nicht in Callbacks verfügbar ist.

Geschützte statische Funktionen

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
Rückruf von Weave Exchange, wenn eine Anfrage zur zeitlichen Synchronisierung eingeht
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
Callback von Weave Timer, wenn wir das unzuverlässige Verhalten nach der Startbarriere passiert haben.
IsOperationalState(ClientState aState)
bool
Bestimmen, ob der jeweilige Status betriebsbereit ist.
_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

Status der automatischen Synchronisierung

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

Kommunikationskontexts.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

Diese Statusübergangsfunktionen sind intern und können keinen Fehlercode zurückgeben, da der vorherige Status keine Möglichkeit hat, sie zu verarbeiten.

Jeder Fehler führt zu einem anderen Statusübergang (kann eine Zeitüberschreitung sein).

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
)

Öffentliche Typen

ClientState

 ClientState

Aktueller Status dieses Time Sync-Clients

CommState

 CommState

mit einem bestimmten Kontakt kommunizieren.

Dies ist öffentlich, da Contact öffentlich ist.

ContributorFilter

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

direkt bevor die Zeitkorrektur aus den Antworten berechnet wird.

Anwendungsebene könnte aContact[i].mResponseStatus mit kResponseStatus_Invalid überschreiben, sodass die Antwort in der Berechnung ignoriert wird.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aContact
Kontaktarray und Antwortstatus
[in] aSize
Anzahl der Datensätze im Array aContact

OnSyncRequestReceivedHandler

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

, um anzugeben, dass wir gerade eine Zeitsynchronisierungsanfrage erhalten haben.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aMsgInfo
Ein WeaveMessageInfo mit Informationen zur empfangenen Zeitsynchronisierungsanfrage, einschließlich Informationen zum Absender.
[in] aLikelyhood
Wahrscheinlichkeit einer Antwort, wie vom Auftraggeber gefordert
[in] aIsTimeCoordinator
„true“, wenn der Ursprungsknoten ein Zeitsynchronisierungskoordinator ist
Rückgabe
false ist und die Suchmaschine diese Anfrage ignoriert.

ResponseStatus

 ResponseStatus

Status der gespeicherten Antwort an einen bestimmten Kontakt.

Dies ist öffentlich, da Contact öffentlich ist.

ServerState

 ServerState

Aktueller Status dieses Time Sync Servers

Attribute
kServerState_Idle

Der Server ist bereit, mit normalen Einstellungen auf Anfragen zu antworten.

kServerState_UnreliableAfterBoot

Zeit, die dem Server für die Synchronisierung seiner Systemzeit auf andere Weise reserviert ist. Dies ist nur sinnvoll, wenn aIsAlwaysFresh wahr ist, wenn Init aufgerufen wird.

SyncFailedHandler

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

-Rückruf erfolgt, wenn die Synchronisierung als fehlgeschlagen gilt, einschließlich der automatischen Synchronisierung.

Beachte, dass ein Rückruf nicht erfolgt, wenn "Abort" aufgerufen wird, um die Synchronisierung zu stoppen.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aErrorCode
Grund für den Fehler

SyncSucceededHandler

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

-Rückruf erfolgt, nachdem die Synchronisierung als erfolgreich angesehen wurde, einschließlich der automatischen Synchronisierung, aber bevor das Ergebnis angewendet wird.

Hinweis: Erfolg bedeutet nicht, dass wir passende Ergebnisse haben. Falls keine Antwort empfangen wird, würde aNumContributor auf 0 gesetzt werden. Die Anwendungsebene könnte aContact[i].mResponseStatus mit kResponseStatus_Invalid überschreiben, sodass die Antwort bei der Berechnung ignoriert wird.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aOffsetUsec
Korrekturbetrag in Verwendungc
[in] aIsReliable
ist die Korrektur, die von der integrierten Logik als zuverlässig eingestuft wird.
[in] aIsServer
kommt die Korrektur von einem oder mehreren Servern?
[in] aNumContributor
Anzahl der Knoten, die zu dieser Korrektur beigetragen haben. 0 bedeutet, dass es bei der Synchronisierung keine Ergebnisse gibt.
Rückgabe
true, wenn dieser Offset zum Anpassen der Systemzeit verwendet werden soll. Ist für aNumContributor 0 festgelegt, wird der Rückgabewert ignoriert.

TimeChangeNotificationHandler

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

an, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Wenn der automatische Synchronisierungsmodus aktiviert ist, wird kurz nach diesem Callback automatisch eine Zeitsynchronisierung geplant. Andernfalls kann die Anwendungsebene die Synchronisierungsfunktion aufrufen, um den Synchronisierungsvorgang direkt zu starten, der nicht durch die normale Nicht-verfügbar-Rückrufregel eingeschränkt ist. Allerdings ist zu beachten, dass sich dieser spezielle Callback weiterhin über dem Callback-Stack der Weave Exchange-Ebene befindet.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aNodeId
Knoten-ID anfordern
[in] aNodeAddr
Knotenadresse anfordern

Öffentliche Attribute

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Wenn die Richtlinie nicht konfiguriert ist, gibt die Standardimplementierung immer „true“ zurück.

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Wenn die Richtlinie nicht konfiguriert ist, werden standardmäßig alle Ergebnisse bis auf sehr kleine Serverkorrekturen übernommen.

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

Verschlüsselungsmethode für die lokale Kommunikation

mKeyId

uint16_t mKeyId

Schlüssel-ID für die lokale Kommunikation

Geschützte Attribute

mApp

void * mApp

Zeiger auf Daten höherer Ebenen

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

TCP-Verbindung, die für die Kommunikation mit dem Dienst verwendet wird.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Kontaktdaten, die während der Auffindbarkeit gewonnen wurden.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

„true“, wenn wir uns in einem Callback auf einer höheren Ebene befinden

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Tatsächliche Rolle dieses Knotens.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Beachten Sie, dass es sich um die Startzeit handeln muss, da wir einen Ausgleich für die Ruhezeit benötigen.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Beachten Sie, dass es sich um die Startzeit handeln muss, da wir einen Ausgleich für die Ruhezeit benötigen.

Öffentliche Funktionen

Abbrechen

WEAVE_ERROR Abort(
  void
)

den Motor in den Leerlaufmodus zurückversetzen zu lassen, wodurch alles, was er gerade tut, abgebrochen wird.

Beachten Sie, dass keine erfolgreiche oder fehlgeschlagene Synchronisierung aufgerufen wird. Alle Weave-Anzeigenplattformen werden geschlossen. TCP-Verbindungen würden nicht weiter bearbeitet werden. Kein Vorgang, wenn wir bereits inaktiv sind. In Callbacks nicht verfügbar.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

DisableAutoSync

void DisableAutoSync(
  void
)

die automatische Synchronisierung zu deaktivieren.

Nur im inaktiven Zustand verfügbar. Nicht in Callbacks verfügbar.

EnableAutoSync

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

die automatische Synchronisierung aktivieren.

nur im inaktiven Zustand verfügbar. Die Erkennung erfolgt sofort. Nicht in Callbacks verfügbar.

Details
Parameter
[in] aSyncPeriod_msec
Anzahl der ms zwischen der Synchronisierung
[in] aNominalDiscoveryPeriod_msec
Anzahl der ms zwischen Erkennung, wenn kein Kommunikationsfehler beobachtet wird
[in] aShortestDiscoveryPeriod_msec
kürzeste Zeit zwischen Erkennung (in ms, falls Kommunikationsfehler festgestellt wurden)
Rückgabe
WEAVE_NO_ERROR bei Erfolg

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

Einfacher Getter für die maximale Anzahl von Kontakten, für die diese Engine konfiguriert ist

GetClientState

ClientState GetClientState(
  void
) const 

Einfacher Getter für Clientstatus

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

die Wahrscheinlichkeit für Persistent zu extrahieren.

Das Ergebnis ist erst nach Abschluss des Synchronisierungsvorgangs innerhalb der Callbacks von OnSyncSucceeded und OnSyncFailed gültig. Andernfalls ist es vorübergehend und kann die aktuelle Wahrscheinlichkeit sein, nicht die nächste, die verwendet wird.

Details
Rückgabe
Wahrscheinlichkeit, dass eine Antwort in der nächsten Anfrage verwendet wird

GetServerState

ServerState GetServerState(
  void
) const 

Einfacher Getter für den Server-Status

InitClient

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

Initialisieren Sie diesen Client.

nicht in Callbacks verfügbar

Details
Parameter
[in] aApp
Ein Zeiger auf Daten höherer Ebenen, der in Callbacks zu einer höheren Ebene verwendet wird.
[in] aExchangeMgr
Verweis auf das systemweite Weave Exchange Manager-Objekt
[in] aRole
kann entweder kTimeSyncRole_Client oder kTimeSyncRole_Coordinator sein
[in] aEncryptionType
Verschlüsselungstyp, der für Anfragen und Antworten verwendet werden soll
[in] aKeyId
Schlüssel-ID für Anfragen und Antworten
[in] aInitialLikelyhood
anfängliche Wahrscheinlichkeit, für die Erkennungsphase verwendet zu werden
Rückgabe
WEAVE_NO_ERROR bei Erfolg

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
)

Initialisieren Sie diesen Koordinator.

Details
Parameter
[in] aExchangeMgr
Verweis auf das systemweite Weave Exchange Manager-Objekt
[in] aEncryptionType
Verschlüsselungstyp, der für Anfragen und Antworten verwendet werden soll
[in] aKeyId
Schlüssel-ID für Anfragen und Antworten
[in] aSyncPeriod_msec
Anzahl der ms zwischen der Synchronisierung
[in] aNominalDiscoveryPeriod_msec
kürzeste Zeit zwischen Erkennung (in ms), wenn kein Kommunikationsfehler beobachtet wird
[in] aShortestDiscoveryPeriod_msec
Geringste Millisekunde zwischen Erkennung, wenn Kommunikationsfehler festgestellt wurden
Rückgabe
WEAVE_NO_ERROR bei Erfolg

InitServer

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

initialisieren für die Serverrolle muss als erste Funktion nach der Objekterstellung aufgerufen werden, wenn es sich um einen Zeitsynchronisierungsserver handelt.

nicht in Callbacks verfügbar

Details
Parameter
[in] aApp
Ein Zeiger auf Daten höherer Ebenen, der in Callbacks zu einer höheren Ebene verwendet wird.
[in] aExchangeMgr
Verweis auf das systemweite Weave Exchange Manager-Objekt
[in] aIsAlwaysFresh
kann auf "true" gesetzt werden, um anzuzeigen, dass der Server immer synchronisiert ist, mit Ausnahme der anfänglichen unzuverlässigen Zeit. wird für den Koordinator auf "false" gesetzt.
Rückgabe
WEAVE_NO_ERROR bei Erfolg

MulticastTimeChangeNotification

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

Wird von einer höheren Ebene zur Multicast-Zeitänderung aufgerufen.

nicht in Callbacks verfügbar.

Details
Parameter
[in] aEncryptionType
Verschlüsselungstyp, der für diese Benachrichtigung verwendet werden soll
[in] aKeyId
Schlüssel-ID, die für diese Benachrichtigung verwendet werden soll

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Wird von einer höheren Ebene aufgerufen, um anzuzeigen, dass gerade eine Zeitsynchronisierung mit einem beliebigen Server oder über eine zuverlässige Methode wie NTP abgeschlossen wurde.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Wird von einer höheren Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Zeitsynchronisierung mit anderen lokalen Koordinatoren abgeschlossen haben.

Details
Parameter
[in] aNumContributor
Anzahl der Koordinatoren, die zu dieser Zeitsynchronisierung beigetragen haben

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

den Dienst zu stoppen, egal, welche Rolle er spielt.

Diese Funktion muss aufgerufen werden, um zugewiesene Ressourcen wiederherzustellen, bevor ein weiterer Aufruf an eine der init-Funktionen erfolgen kann. Nicht in Callbacks verfügbar.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Synchronisieren

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

unter Verwendung vorhandener Kontakte synchronisieren.

Die Synchronisierung kann fehlschlagen, wenn keine gültigen Kontakte verfügbar sind. Setzen Sie aForceDiscoverAgain auf "true", um die Erkennung sofort zu erzwingen. Nur im inaktiven Zustand verfügbar. Nicht in Rückrufen verfügbar.

Details
Parameter
[in] aForceDiscoverAgain
„true“, wenn alle vorhandenen Kontakte gelöscht und der Erkennungsvorgang durchgeführt werden soll
Rückgabe
WEAVE_NO_ERROR bei Erfolg

SyncWithNodes

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

unter Verwendung der angegebenen Kontaktliste synchronisieren.

Die vorhandene Kontaktliste würde geleert werden. Nur im inaktiven Zustand verfügbar. In Callbacks nicht verfügbar.

Details
Parameter
[in] aNumNode
Anzahl der Kontakte im Array aNodes
[in] aNodes
Array von Kontaktdatensätzen
Rückgabe
WEAVE_NO_ERROR bei Erfolg

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

mit der angegebenen TCP-Verbindung und der zugehörigen Verschlüsselung und Schlüssel-ID synchronisieren.

Aufrufer muss nach Abschluss der Synchronisierung die Inhaberschaft der TCP-Verbindung übernehmen. Für die TCP-Verbindung würde kein Callback überschrieben werden, da ein neuer Weave Exchange erstellt wird und Callbacks zusätzlich zu diesem Kontext nur im inaktiven Zustand verfügbar sind. Bei Callbacks nicht verfügbar.

Details
Parameter
[in] aConnection
Ein Zeiger auf eine Weave-Verbindung
Rückgabe
WEAVE_NO_ERROR bei Erfolg

TimeSyncNode

 TimeSyncNode(
  void
)

Geschützte Funktionen

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

Interner Abbruch, wenn ein Code nicht WEAVE_NO_ERROR ist

AutoSyncNow

void AutoSyncNow(
  void
)

Interne Funktion zum Starten einer Autosynchronisierungssitzung

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
)

einen Callback an die Anwendungsebene herbeiführen.

aIsSuccessful auf "false" setzen, um den Fehlerrückruf auszulösen

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

Weave ExchangeContext schließen

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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

einen Slot zum Speichern von Kontaktdaten zurückgeben

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

den nächsten gültigen und inaktiven Kontakt abrufen

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

die Anzahl der gültigen Kontakte abrufen, aber wir haben noch nicht mit ihnen gesprochen.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

die bisher gesammelten „zuverlässigen“ Antworten abrufen.

aufgerufen, um festzustellen, ob genügend Antworten erfasst wurden.

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

Alle lokalen Kontakte ungültig machen

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

den Kontakt mit dem Dienst ungültig machen

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

Kommunikationsfehler bei einem bestimmten Kontakt registrieren und bei Bedarf den Zeitraum für die automatische Erkennung verkürzen

SendSyncRequest

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

Unicast-Synchronisierungsanfrage an einen Kontakt senden.

*rIsMessageSent wird festgelegt, um anzuzeigen, ob die Nachricht gesendet wurde. Kommunikationsfehler wie nicht erreichbare Adresse werden nicht zurückgegeben, daher muss der Aufrufer sowohl den Rückgabecode als auch *rIsMessageSent prüfen.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

alle abgeschlossenen Kontakte wieder auf inaktiven Zustand zurücksetzen, aber nicht die Antwort berühren.

Dies wird zwischen zwei Kommunikationsrunden mit demselben Knoten aufgerufen.

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

setzen Sie alle gültigen lokalen Kontakte in den Ruhezustand und löschen Sie die Antwort.

Dieser wird aufgerufen, bevor wir mit der Kontaktaufnahme beginnen.

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Neuen Weave Exchange für die Unicast-Kommunikation erstellen

StoreNotifyingContact

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

die Kontaktdaten eines Knotens speichern, der uns gerade eine Zeitänderungsbenachrichtigung gesendet hat

UpdateMulticastSyncResponse

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

Antwort von einer Multicast-Anfrage verarbeiten

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

Antwort von einer Unicast-Anfrage verarbeiten

_InitClient

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

für die Rolle "Client" zu initialisieren.

Zur internen Verwendung durch die Init-Familie öffentlicher Funktionen. Vor der Rückgabe muss mClientState festgelegt werden. Nicht in Callbacks verfügbar.

Details
Parameter
[in] aEncryptionType
Verschlüsselungstyp, der für Anfragen und Antworten verwendet werden soll
[in] aKeyId
Schlüssel-ID für Anfragen und Antworten
[in] aInitialLikelyhood
anfängliche Wahrscheinlichkeit, für die Erkennungsphase verwendet zu werden
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

für die Rolle „Server“ zu initialisieren.

Zur internen Verwendung durch die Init-Familie öffentlicher Funktionen. Vor der Rückgabe muss mClientState festgelegt werden. Nicht in Callbacks verfügbar.

Details
Parameter
[in] aIsAlwaysFresh
kann auf "true" gesetzt werden, um anzuzeigen, dass der Server immer synchronisiert ist, mit Ausnahme der anfänglichen unzuverlässigen Zeit. wird für den Koordinator auf "false" gesetzt.
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_Herunterfahren – Client

WEAVE_ERROR _ShutdownClient(
  void
)

den Client, der nicht in Callbacks verfügbar ist, zu stoppen.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_Herunterfahrenkoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

Koordinator stoppen, der in Callbacks nicht verfügbar ist

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_Herunterfahren

WEAVE_ERROR _ShutdownServer(
  void
)

und stoppt den Server, der nicht in Callbacks verfügbar ist.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Geschützte statische Funktionen

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
)

Rückruf von Weave Exchange, wenn eine Anfrage zur zeitlichen Synchronisierung eingeht

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
)

Callback von Weave Timer, wenn wir das unzuverlässige Verhalten nach der Startbarriere passiert haben.

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Bestimmen, ob der jeweilige Status betriebsbereit ist.

Praktische Methode, um zu bestimmen, ob ClientState einen Betriebszustand angibt, d.h., der Client hat die Initialisierung abgeschlossen und wird nicht heruntergefahren.

Details
Parameter
[in] aState
auszuwertender Zustand
Rückgabe
"true", wenn der Status nach Abschluss der Initialisierung und vor dem Beginn des Herunterfahrens fällt, andernfalls "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
)