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

Zusammenfassung

Übernahme

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

Konstruktoren und Zerstörer

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
die für die automatische Synchronisierung verwendet werden.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
Kommunikationskontext.
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 hätte, 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
Kommunikationsstatus mit einem bestimmten Kontakt.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
erfolgt unmittelbar vor der Berechnung der Zeitkorrektur aus den Antworten.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
um anzuzeigen, dass wir gerade eine Anfrage zur Zeitsynchronisierung erhalten haben.
ResponseStatus enum
Status einer gespeicherten Antwort für 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(*
erfolgt, wenn die Synchronisierung als fehlgeschlagen angesehen wird, 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(*
Der Callback erfolgt, nachdem die Synchronisierung als erfolgreich betrachtet 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(*
um anzuzeigen, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Öffentliche Attribute

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Wenn nichts festgelegt ist, gibt die Standardimplementierung immer „true“ zurück
OnSyncSucceeded
Ist die Richtlinie nicht konfiguriert, werden standardmäßig alle Ergebnisse mit Ausnahme sehr kleiner Serverkorrekturen verwendet.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
Verschlüsselungsmethode für die lokale Kommunikation
mKeyId
uint16_t
Schlüssel-ID, die für die lokale Kommunikation verwendet wird

Geschützte Attribute

mApp
void *
Zeiger auf Daten einer höheren Ebene
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 Erkennung ermittelt wurden.
mIsAlwaysFresh
bool
mIsInCallback
bool
true, wenn wir uns in einem Callback für höhere Layer befinden.
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Tatsächliche Rolle dieses Knotens.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Es muss eine Startzeit sein, da wir eine Ausgleichszahlung für die Ruhezeit benötigen.
mTimestampLastLocalSync_usec
timesync_t
Es muss eine Startzeit sein, da wir eine Ausgleichszahlung für die Ruhezeit benötigen.

Öffentliche Funktionen

Abort(void)
den Motor in den Leerlaufzustand zurückversetzen, wodurch alle Vorgänge abgebrochen werden.
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 zu aktivieren.
GetCapacityOfContactList(void) const
int
Einfacher Getter für die maximale Anzahl von Kontakten, für die diese Engine konfiguriert ist
GetClientState(void) const
Simple Getter für Clientstatus
GetNextLikelihood(void) const
int8_t
um die Wahrscheinlichkeit einer persistenten Operation zu extrahieren.
GetServerState(void) const
Simple Getter für den Serverstatus
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
diesen Client zu initialisieren.
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)
diesen Koordinator zu initialisieren.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
Die Initialisierung für die Server-Rolle muss als erste Funktion nach der Objektkonstruktion aufgerufen werden, wenn ein Zeitsynchronisierungsserver beabsichtigt sein soll.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Wird von höherer Ebene für die Multicast-Benachrichtigung über Zeitänderungen aufgerufen.
RegisterCorrectionFromServerOrNtp(void)
void
Wird von höherer Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Synchronisierung mit einem beliebigen Server oder über zuverlässige Methoden wie NTP abgeschlossen haben.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Wird von höherer Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Synchronisierung mit anderen lokalen Koordinatoren abgeschlossen haben.
Shutdown(void)
den Dienst beenden, egal welche Rolle er spielt.
Sync(const bool aForceDiscoverAgain)
mit vorhandenen Kontakten synchronisieren.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
mit 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 aCode nicht WEAVE_NO_ERROR ist
AutoSyncNow(void)
void
Interne Funktion zum Starten einer automatischen Synchronisierungssitzung
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 Rückruf zur Anwendungsschicht herbeizuführen.
ClearState(void)
void
DestroyCommContext(void)
bool
Schließen Sie den Weave-ExchangeContext.
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
Slot zurückgeben, um Kontaktdaten zu speichern
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
nächsten gültigen und inaktiven Kontakt für die Unterhaltung 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 Anzahl der "zuverlässigen" die bisher gesammelten Antworten.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
alle lokalen Kontakte entwerten
InvalidateServiceContact(void)
void
den Kontakt zum Dienst ungültig machen
RegisterCommError(Contact *const aContact)
void
Registrieren Sie Kommunikationsfehler bei einem bestimmten Kontakt und verkürzen Sie den Zeitraum für die automatische Erkennung, falls erforderlich kann ein Kontakt NULL sein, um anzuzeigen, dass wir niemanden zum Gespräch haben, und dadurch nur 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 Status zurücksetzen, ohne auf die Antwort zu tippen
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
alle gültigen lokalen Kontakte auf inaktiv setzen und die Antwort löschen.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
Neuen Weave Exchange für 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
Eine Antwort verarbeiten, die von einer Unicast-Anfrage zurückgegeben wird
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
Initialisierung für die Rolle "Client".
_InitServer(const bool aIsAlwaysFresh)
für die Serverrolle initialisiert werden.
_ShutdownClient(void)
den Client anhalten, der in Callbacks nicht verfügbar ist.
_ShutdownCoordinator(void)
Das Beenden des Koordinators ist in Callbacks nicht verfügbar.
_ShutdownServer(void)
zum Beenden des Servers, der in Callbacks nicht 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 bei Eingang einer zeitlichen Synchronisierungsanfrage
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 des Weave-Timers, wenn die unzuverlässige Startbarriere übergeben wurde
IsOperationalState(ClientState aState)
bool
Bestimmt, ob der angegebene 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

die für die automatische Synchronisierung verwendet werden.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

Kommunikationskontext.

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 hätte, sie zu verarbeiten.

Ein Fehler führt zu einem anderen Statusübergang (könnte eine Zeitüberschreitung sein). Wenn selbst der Timer fehlschlägt, haben wir keine Chance und können in einem falschen Status hängen bleiben.

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

Kommunikationsstatus mit einem bestimmten Kontakt.

Dies ist öffentlich, weil Contact öffentlich ist.

ContributorFilter

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

erfolgt unmittelbar vor der Berechnung der Zeitkorrektur aus den Antworten.

Anwendungsschicht könnte aContact[i].mResponseStatus mit kResponseStatus_Ungültig ü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] aContact
Liste mit Kontakten 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 zu zeigen, dass wir gerade eine Anfrage zur Zeitsynchronisierung erhalten haben.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aMsgInfo
Eine WeaveMessageInfo mit Informationen über die empfangene Zeitsynchronisierungsanfrage, einschließlich Informationen zum Absender.
[in] aLikelyhood
Wahrscheinlichkeit einer Antwort wie vom Urheber angefordert
[in] aIsTimeCoordinator
"true", wenn der Ausgangsknoten ein Zeitsynchronisierungskoordinator ist
Rückgabe
false ist, und die Suchmaschine ignoriert diese Anfrage.

ResponseStatus

 ResponseStatus

Status einer gespeicherten Antwort für einen bestimmten Kontakt.

Dies ist öffentlich, weil Contact öffentlich ist.

ServerState

 ServerState

Aktueller Status dieses Time Sync Servers

Attribute
kServerState_Idle

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

kServerState_UnreliableAfterBoot

Zeit, die für den Server reserviert ist, um seine Systemzeit auf andere Weise zu synchronisieren. Dies ist nur sinnvoll, wenn aIsAlwaysFresh beim Aufrufen von Init wahr ist.

SyncFailedHandler

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

erfolgt, wenn die Synchronisierung als fehlgeschlagen angesehen wird, einschließlich der automatischen Synchronisierung.

Beachte, dass der Rückruf nicht erfolgt, wenn der Abbruch 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)

Der Callback erfolgt, nachdem die Synchronisierung als erfolgreich betrachtet wurde, einschließlich der automatischen Synchronisierung, aber bevor das Ergebnis angewendet wird.

„Erfolgreich“ bedeutet nicht, dass passende Ergebnisse vorliegen. Falls keine Antwort empfangen wird, wird aNumContributor auf 0 gesetzt. Die Anwendungsschicht könnte aContact[i].mResponseStatus in kResponseStatus_Ungültig ü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 Usec
[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 keine Ergebnisse für die Synchronisierung gibt.
Rückgabe
true, wenn dieser Offset zur Anpassung der Systemzeit verwendet werden soll. Falls aNumContributor 0 ist, wird der Rückgabewert ignoriert.

TimeChangeNotificationHandler

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

um anzuzeigen, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Wenn der automatische Synchronisierungsmodus aktiviert ist, wird kurz nach diesem Rückruf automatisch eine Zeitsynchronisierung geplant. Andernfalls kann die Anwendungsebene die Sync-Funktionsfamilie aufrufen, um die Synchronisierung direkt zu starten, die nicht durch die normale Regel "In Callback nicht verfügbar" eingeschränkt ist. Es ist jedoch zu beachten, dass sich dieser spezielle Callback immer noch ü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
anfragende Knoten-ID
[in] aNodeAddr
Adresse des anfragenden Knotens

Öffentliche Attribute

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Wenn nichts festgelegt ist, gibt die Standardimplementierung immer „true“ zurück

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Ist die Richtlinie nicht konfiguriert, werden standardmäßig alle Ergebnisse mit Ausnahme sehr kleiner Serverkorrekturen verwendet.

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

Verschlüsselungsmethode für die lokale Kommunikation

mKeyId

uint16_t mKeyId

Schlüssel-ID, die für die lokale Kommunikation verwendet wird

Geschützte Attribute

mApp

void * mApp

Zeiger auf Daten einer höheren Ebene

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 Erkennung ermittelt wurden.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true, wenn wir uns in einem Callback für höhere Layer 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

Es muss eine Startzeit sein, da wir eine Ausgleichszahlung für die Ruhezeit benötigen.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Es muss eine Startzeit sein, da wir eine Ausgleichszahlung für die Ruhezeit benötigen.

Öffentliche Funktionen

Abbrechen

WEAVE_ERROR Abort(
  void
)

den Motor in den Leerlaufzustand zurückversetzen, wodurch alle Vorgänge abgebrochen werden.

Es wird kein Synchronisierungs- erfolg oder -fehler aufgerufen. werden alle Weave Exchanges geschlossen. TCP-Verbindungen sind davon nicht betroffen. keine Operation erforderlich ist, wenn wir uns bereits im Ruhezustand befinden. nicht in Callbacks verfügbar.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

DisableAutoSync

void DisableAutoSync(
  void
)

die automatische Synchronisierung zu deaktivieren.

ist 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 zu aktivieren.

ist nur im inaktiven Zustand verfügbar. werden also sofort entdeckt. nicht in Callbacks verfügbar.

Details
Parameter
[in] aSyncPeriod_msec
Anzahl der Millisekunden zwischen Synchronisierung
[in] aNominalDiscoveryPeriod_msec
Anzahl der Millisekunden zwischen der Erkennung, wenn kein Kommunikationsfehler festgestellt wird
[in] aShortestDiscoveryPeriod_msec
kürzeste Zeit zwischen der Erkennung in ms, wenn ein Kommunikationsfehler aufgetreten ist
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 

Simple Getter für Clientstatus

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

um die Wahrscheinlichkeit einer persistenten Operation zu extrahieren.

Das Ergebnis ist erst nach Abschluss der Synchronisierung innerhalb der Rückrufe von OnSyncSucceeded und OnSyncFailed gültig. Andernfalls ist sie vorübergehend und wird möglicherweise eher als die aktuelle Wahrscheinlichkeit verwendet.

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

GetServerState

ServerState GetServerState(
  void
) const 

Simple Getter für den Serverstatus

InitClient

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

diesen Client zu initialisieren.

nicht in Callbacks verfügbar

Details
Parameter
[in] aApp
Ein Zeiger auf Daten einer höheren Ebene, der in Callbacks für höhere Ebenen verwendet wird.
[in] aExchangeMgr
Ein 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, die für Anfragen und Antworten verwendet werden soll
[in] aInitialLikelyhood
anfängliche Wahrscheinlichkeit für die Nutzung in der Erkennungsphase
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
)

diesen Koordinator zu initialisieren.

Details
Parameter
[in] aExchangeMgr
Ein 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, die für Anfragen und Antworten verwendet werden soll
[in] aSyncPeriod_msec
Anzahl der Millisekunden zwischen der Synchronisierung
[in] aNominalDiscoveryPeriod_msec
kürzeste Zeit zwischen der Erkennung in Millisekunden, wenn kein Kommunikationsfehler beobachtet wird
[in] aShortestDiscoveryPeriod_msec
kleinste Anzahl von ms zwischen der Erkennung, wenn ein Kommunikationsfehler aufgetreten ist
Rückgabe
WEAVE_NO_ERROR bei Erfolg

InitServer

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

Die Initialisierung für die Server-Rolle muss als erste Funktion nach der Objektkonstruktion aufgerufen werden, wenn ein Zeitsynchronisierungsserver beabsichtigt sein soll.

nicht in Callbacks verfügbar

Details
Parameter
[in] aApp
Ein Zeiger auf Daten einer höheren Ebene, der in Callbacks für höhere Ebenen verwendet wird.
[in] aExchangeMgr
Ein Verweis auf das systemweite Weave Exchange Manager-Objekt
[in] aIsAlwaysFresh
kann auf "true" gesetzt werden, um anzugeben, dass der Server außer der anfänglichen unzuverlässigen Zeit immer synchronisiert wird. 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 höherer Ebene für die Multicast-Benachrichtigung über Zeitänderungen 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 höherer Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Synchronisierung mit einem beliebigen Server oder über zuverlässige Methoden wie NTP abgeschlossen haben.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Wird von höherer Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Synchronisierung 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 beenden, egal welche Rolle er spielt.

Diese Funktion muss aufgerufen werden, um zugewiesene Ressourcen ordnungsgemäß freizugeben, bevor eine weitere Init-Funktion aufgerufen werden kann. nicht in Callbacks verfügbar.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Synchronisieren

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

mit vorhandenen Kontakten synchronisieren.

Wenn keine gültigen Kontakte verfügbar sind, kann die Synchronisierung fehlschlagen. Setzen Sie „aForceDiscoverAgain“ auf „true“, um die Erkennung sofort zu erzwingen. ist nur im inaktiven Zustand verfügbar. nicht in Callbacks verfügbar.

Details
Parameter
[in] aForceDiscoverAgain
"true", wenn alle vorhandenen Kontakte geleert und der Erkennungsvorgang ausgeführt werden sollen
Rückgabe
WEAVE_NO_ERROR bei Erfolg

SyncWithNodes

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

mit der angegebenen Kontaktliste synchronisieren.

vorhandenen Kontaktlisten gelöscht. ist nur im inaktiven Zustand verfügbar. nicht in Callbacks verfügbar.

Details
Parameter
[in] aNumNode
Anzahl der Kontakte in Array aNodes
[in] aNodes
Array mit 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.

Der Aufrufer muss nach Abschluss der Synchronisierung die Inhaberschaft der TCP-Verbindung übernehmen. Für die TCP-Verbindung wird kein Callback überschrieben, da ein neuer Weave Exchange erstellt wird und Callbacks, die auf diesem Kontext basieren, nur im inaktiven Zustand verfügbar sind. nicht in Callbacks verfügbar.

Details
Parameter
[in] aConnection
Ein Zeiger zur 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 aCode nicht WEAVE_NO_ERROR ist

AutoSyncNow

void AutoSyncNow(
  void
)

Interne Funktion zum Starten einer automatischen Synchronisierungssitzung

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 Rückruf zur Anwendungsschicht herbeizuführen.

Setze „aIsSuccessful“ auf „false“, um den Fehler-Callback auszulösen.

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

Schließen Sie den Weave-ExchangeContext.

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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

Slot zurückgeben, um Kontaktdaten zu speichern

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

nächsten gültigen und inaktiven Kontakt für die Unterhaltung 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 Anzahl der "zuverlässigen" die bisher gesammelten Antworten.

aufgerufen, um zu ermitteln, ob wir eine ausreichende Anzahl von Antworten

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

alle lokalen Kontakte entwerten

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

den Kontakt zum Dienst ungültig machen

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

Registrieren Sie Kommunikationsfehler bei einem bestimmten Kontakt und verkürzen Sie den Zeitraum für die automatische Erkennung, falls erforderlich kann einKontakt NULL sein, um anzuzeigen, dass wir niemanden zum Gespräch haben, und dadurch nur 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 gibt an, ob die Nachricht gesendet wurde. Kommunikationsfehler wie „address not Reachable“ (Adresse nicht erreichbar) werden nicht zurückgegeben. Der Anrufer muss daher sowohl den Rückgabecode als auch *rIsMessageSent prüfen.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

alle abgeschlossenen Kontakte wieder auf inaktiven Status zurücksetzen, ohne auf die Antwort zu tippen

Dies wird zwischen zwei Kommunikationsrunden mit demselben Knoten aufgerufen.

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

alle gültigen lokalen Kontakte auf inaktiv setzen und die Antwort löschen.

Dieser wird aufgerufen, bevor wir sie einzeln kontaktieren.

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Neuen Weave Exchange für 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
)

Eine Antwort verarbeiten, die von einer Unicast-Anfrage zurückgegeben wird

_InitClient

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

Initialisierung für die Rolle "Client".

Vorgesehen zur internen Verwendung von öffentlichen Funktionen der Init-Familie. 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, die für Anfragen und Antworten verwendet werden soll
[in] aInitialLikelyhood
anfängliche Wahrscheinlichkeit für die Nutzung in der Erkennungsphase
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

für die Serverrolle initialisiert werden.

Vorgesehen zur internen Verwendung von öffentlichen Funktionen der Init-Familie. Vor der Rückgabe muss mClientState festgelegt werden. nicht in Callbacks verfügbar

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

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

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

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

Stoppen des Koordinators, der in Callbacks nicht verfügbar ist.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

zum Beenden des Servers, der in Callbacks nicht 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 bei Eingang einer zeitlichen Synchronisierungsanfrage

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 des Weave-Timers, wenn die unzuverlässige Startbarriere übergeben wurde

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Bestimmt, ob der angegebene Status betriebsbereit ist.

Praktische Methode, um festzustellen, ob ClientState den Betriebsstatus angibt, d.h. ob der Client die Initialisierung abgeschlossen hat und gerade nicht heruntergefahren wird.

Details
Parameter
[in] aState
zu bewertender Status
Rückgabe
"true", wenn der Status nach Abschluss der Initialisierung und vor dem Start 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
)