Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl:: Weben:: Profile:: Zeit:: TimeSyncNode

Zusammenfassung

Erbe

Erbt von: nl :: Weave :: Profile :: Time :: _ TimeSyncNodeBase

Konstruktoren und Destruktoren

TimeSyncNode (void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
Zustände, die für die automatische Synchronisierungsfunktion verwendet werden.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
kommunikativen Kontext.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
Diese Zustandsübergangsfunktionen sind intern und können keinen Fehlercode zurückgeben, da der vorherige Zustand 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 aufzählen
aktueller Status dieses Time Sync Client
CommState aufzählen
Status der Kommunikation zu einem bestimmten Kontakt.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) Typdef
void(*
Rückruf erfolgt kurz bevor wir die Zeitkorrektur aus Antworten berechnen.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) Typdef
bool(*
Rückruf, um anzuzeigen, dass wir gerade eine Zeitsynchronisierungsanfrage erhalten haben.
ResponseStatus aufzählen
Status der gespeicherten Antwort zu einem bestimmten Kontakt.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
aufzählen
aktueller Status dieses Time Sync Servers
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) Typdef
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) Typdef
bool(*
Der Rückruf erfolgt, nachdem die Synchronisierung als erfolgreich angesehen wurde, einschließlich der automatischen Synchronisierung, jedoch bevor das Ergebnis angewendet wird.
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) Typdef
void(*
Rückruf, um anzuzeigen, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Öffentliche Attribute

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
wenn nicht gesetzt, gibt die Standardimplementierung immer true zurück
OnSyncSucceeded
wenn nicht gesetzt, nimmt das Standardverhalten alle Ergebnisse, mit Ausnahme von sehr kleinen Serverkorrekturen
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
Verschlüsselungsverfahren 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 höherer Schichten
mClientState
mConnectionToService
TCP-Verbindung, die verwendet wird, um mit dem Dienst zu kommunizieren.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Kontaktinformation gelernt ganz Entdeckung.
mIsAlwaysFresh
bool
mIsInCallback
bool
wahr, wenn wir uns in einem Rückruf zu 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 die Bootzeit sein muss, da wir eine Kompensation für die Schlafzeit benötigen
mTimestampLastLocalSync_usec
timesync_t
Beachten Sie, dass es die Bootzeit sein muss, da wir eine Kompensation für die Schlafzeit benötigen

Öffentliche Funktionen

Abort (void)
Zwingen Sie den Motor, in den Leerlaufzustand zurückzukehren, und brechen Sie alles ab, was er tut.
DisableAutoSync (void)
void
Deaktivieren Sie die automatische Synchronisierung.
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
Aktivieren Sie die automatische Synchronisierung.
GetCapacityOfContactList (void) const
int
einfacher Getter für die maximale Anzahl von Kontakten, die diese Engine speichern kann
GetClientState (void) const
einfacher Getter für Clientstatus
GetNextLikelihood (void) const
int8_t
Extrahieren Sie die Wahrscheinlichkeit für persistent.
GetServerState (void) const
einfacher 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 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 initialisieren.
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
initialize für die Serverrolle muss als erste Funktion nach der Objektkonstruktion aufgerufen werden, wenn die Absicht besteht, ein Time Sync Server zu sein.
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Wird von einer höheren Schicht aufgerufen, um eine Benachrichtigung über die Zeitänderung zu senden.
RegisterCorrectionFromServerOrNtp (void)
void
Wird von einer höheren Schicht aufgerufen, um anzuzeigen, dass wir gerade eine Zeitsynchronisation mit einem beliebigen Server oder über zuverlässige Mittel wie NTP abgeschlossen haben.
RegisterLocalSyncOperation (const uint8_t aNumContributor)
void
Wird von einer höheren Ebene aufgerufen, um anzuzeigen, dass wir gerade eine Zeitsynchronisation mit anderen lokalen Koordinatoren abgeschlossen haben.
Shutdown (void)
stoppen Sie den Dienst, 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)
Synchronisierung mit der angegebenen TCP-Verbindung und der zugehörigen Verschlüsselung und Schlüssel-ID.

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 Auto-Sync-Sitzung
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)
Induzieren Sie einen Rückruf an die Anwendungsschicht.
ClearState (void)
void
DestroyCommContext (void)
bool
schließen Sie die Webart ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
Geben Sie einen Slot zurück, um Kontaktinformationen zu speichern
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
Holen Sie sich den nächsten gültigen und freien Kontakt, mit dem Sie sprechen können
GetNumNotYetCompletedContacts (void)
int16_t
erhalten Sie die Anzahl der gültigen Kontakte, aber wir haben noch nicht mit ihnen gesprochen.
GetNumReliableResponses (void)
int16_t
erhalten Sie die Anzahl der bisher gesammelten "zuverlässigen" Antworten.
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts (void)
void
alle lokalen Kontakte ungültig machen
InvalidateServiceContact (void)
void
Kontakt zum Service 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 aContact kann NULL sein, um anzuzeigen, dass wir niemanden haben, mit dem wir sprechen können
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
Senden Sie eine Unicast-Synchronisierungsanfrage an einen Kontakt.
SetAllCompletedContactsToIdle (void)
int16_t
Setzen Sie alle abgeschlossenen Kontakte wieder in den Ruhezustand zurück, berühren Sie jedoch nicht die Antwort.
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)
Erstellen Sie eine neue Weave Exchange für die Unicast-Kommunikation
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
die Kontaktinformationen eines Knotens speichern, der uns gerade eine Zeitänderungsbenachrichtigung gesendet hat
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
eine Antwort verarbeiten, die von einer Multicast-Anfrage zurückkommt
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse)
void
eine Antwort verarbeiten, die von einer Unicast-Anfrage zurückkommt
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
für die Client-Rolle initialisieren.
_InitServer (const bool aIsAlwaysFresh)
für die Serverrolle initialisieren.
_ShutdownClient (void)
Stoppen Sie den Client, der in Rückrufen nicht verfügbar ist.
_ShutdownCoordinator (void)
Stoppen Sie den Koordinator, der bei Rückrufen nicht verfügbar ist.
_ShutdownServer (void)
Stoppen Sie den Server, der in Rückrufen 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, wenn eine Zeitsynchronisierungsanfrage 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
Rückruf von Weave Timer, wenn wir die unzuverlässige After-Boot-Barriere passiert haben
IsOperationalState ( ClientState aState)
bool
Bestimmen Sie, ob der gegebene Zustand 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

Zustände, die für die automatische Synchronisierungsfunktion verwendet werden.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveKontakt

Contact * mActiveContact

kommunikativen Kontext.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

Diese Zustandsübergangsfunktionen sind intern und können keinen Fehlercode zurückgeben, da der vorherige Zustand keine Möglichkeit hätte, sie zu verarbeiten.

Jeder Fehler führt schließlich zu einem weiteren Zustandsübergang (könnte eine Zeitüberschreitung sein), selbst wenn der Timer fehlschlägt, sind wir außer Kontrolle und könnten in einem falschen Zustand hängen

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

Kundenstatus

 ClientState

aktueller Status dieses Time Sync Client

KommState

 CommState

Status der Kommunikation zu einem bestimmten Kontakt.

Dies ist in der Öffentlichkeit , weil Kontakt in der Öffentlichkeit

Beitragsfilter

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

Rückruf erfolgt kurz bevor wir die Zeitkorrektur aus Antworten berechnen.

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

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf App-Layer-Daten, festgelegt in Init.
[in] aContact
Reihe von Kontakten und Antwortstatus
[in] aSize
Anzahl der Datensätze im aContact-Array

OnSyncRequestReceivedHandler

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

Rückruf, um anzuzeigen, dass wir gerade eine Zeitsynchronisierungsanfrage erhalten haben.

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf App-Layer-Daten, festgelegt in Init.
[in] aMsgInfo
A WeaveMessageInfo enthält Informationen über die Zeitsynchronisationsanforderung empfangen werden , einschließlich der Informationen über den Absender.
[in] aLikelyhood
Antwortwahrscheinlichkeit wie vom Absender angefordert requested
[in] aIsTimeCoordinator
true, wenn der Ursprungsknoten ein Zeitsynchronisationskoordinator ist
Kehrt zurück
false und die Engine ignoriert diese Anfrage

Antwortstatus

 ResponseStatus

Status der gespeicherten Antwort zu einem bestimmten Kontakt.

Dies ist in der Öffentlichkeit , weil Kontakt in der Öffentlichkeit

Serverstatus

 ServerState

aktueller Status dieses Time Sync Servers

Eigenschaften
kServerState_Idle

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

kServerState_UnreliableAfterBoot

Zeit, die für den Server reserviert ist, um seine Systemzeit auf andere Weise zu synchronisieren, 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.

Beachten Sie, dass kein Rückruf erfolgt, wenn Abort aufgerufen wird, um die Synchronisierung zu beenden

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf App-Layer-Daten, festgelegt in Init.
[in] aErrorCode
Grund für das Scheitern

SyncSucceededHandler

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

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

Beachten Sie, dass erfolgreich nicht bedeutet, dass wir anwendbare Ergebnisse haben. Falls keine Antwort empfangen wurde, würde aNumContributor auf 0 gesetzt. Anwendungsschicht könnte aContact[i].mResponseStatus in kResponseStatus_Invalid überschreiben, sodass die Antwort bei der Berechnung ignoriert würde

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf App-Layer-Daten, festgelegt in Init.
[in] aOffsetUsec
Korrekturbetrag in Gebrauchc
[in] aIsReliable
ist die Korrektur, die von der eingebauten Logik als zuverlässig angesehen wird
[in] aIsServer
kommt die Korrektur von Server(n)
[in] aNumContributor
Anzahl der Knoten, die zu dieser Korrektur beigetragen haben. 0 bedeutet, dass keine Ergebnisse vom Synchronisierungsvorgang vorliegen.
Kehrt zurück
true , wenn dieser Offset verwendet werden soll, um die Systemzeit anzupassen. falls aNumContributor 0 ist, wird der Rückgabewert ignoriert.

TimeChangeNotificationHandler

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

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

Wenn der Auto-Sync-Modus aktiviert ist, wird kurz nach diesem Rückruf automatisch eine Zeitsynchronisation geplant. andernfalls kann die Anwendungsschicht wählen, die Sync-Funktionsfamilie aufzurufen, um den Sync-Vorgang direkt zu starten, der nicht durch die normale Nicht-Verfügbar-in-Rückruf-Regel eingeschränkt ist. Es muss jedoch beachtet werden, dass sich dieser spezielle Callback immer noch oben auf dem Callback-Stack der Weave-Austauschschicht befindet.

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf App-Layer-Daten, festgelegt in Init.
[in] aNodeId
Anfordernde Knoten-ID
[in] aNodeAddr
anfragende Knotenadresse

Öffentliche Attribute

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

wenn nicht gesetzt, gibt die Standardimplementierung immer true zurück

OnSyncErfolgreich

SyncSucceededHandler OnSyncSucceeded

wenn nicht gesetzt, nimmt das Standardverhalten alle Ergebnisse, mit Ausnahme von sehr kleinen Serverkorrekturen

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

Verschlüsselungsverfahren 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 höherer Schichten

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

TCP-Verbindung, die verwendet wird, um mit dem Dienst zu kommunizieren.

mKontakte

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Kontaktinformation gelernt ganz Entdeckung.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

wahr, wenn wir uns in einem Rückruf zu einer höheren Ebene befinden

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRolle

TimeSyncRole mRole

Tatsächliche Rolle dieses Knotens.

mServerState

ServerState mServerState

mServiceKontakt

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Beachten Sie, dass es die Bootzeit sein muss, da wir eine Kompensation für die Schlafzeit benötigen

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Beachten Sie, dass es die Bootzeit sein muss, da wir eine Kompensation für die Schlafzeit benötigen

Öffentliche Funktionen

Abbrechen

WEAVE_ERROR Abort(
  void
)

Zwingen Sie den Motor, in den Leerlaufzustand zurückzukehren, und brechen Sie alles ab, was er tut.

Beachten Sie, dass kein Synchronisierungserfolg oder -fehler aufgerufen würde. alle Web-Börsen würden geschlossen. TCP-Verbindungen würden nicht weiter berührt. keine Operation, wenn wir uns bereits im Ruhezustand befinden. bei Rückrufen nicht verfügbar.

Einzelheiten
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

AutoSync deaktivieren

void DisableAutoSync(
  void
)

Deaktivieren Sie die automatische Synchronisierung.

nur im Ruhezustand verfügbar. bei Rückrufen nicht verfügbar.

AutoSync aktivieren

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

Aktivieren Sie die automatische Synchronisierung.

nur im Ruhezustand verfügbar. Entdeckung geschieht sofort. bei Rückrufen nicht verfügbar.

Einzelheiten
Parameter
[in] aSyncPeriod_msec
Anzahl der Millisekunden zwischen der Synchronisierung
[in] aNominalDiscoveryPeriod_msec
Anzahl der ms zwischen Erkennung, wenn kein Kommunikationsfehler beobachtet wird
[in] aShortestDiscoveryPeriod_msec
kürzeste Zeit zwischen Entdeckung, in ms, wenn Kommunikationsfehler beobachtet wurde
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

einfacher Getter für die maximale Anzahl von Kontakten, die diese Engine speichern kann

GetClientState

ClientState GetClientState(
  void
) const 

einfacher Getter für Clientstatus

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

Extrahieren Sie die Wahrscheinlichkeit für persistent.

das Ergebnis wäre nur gültig, nachdem der Synchronisierungsvorgang innerhalb von Rückrufen von OnSyncSucceeded und OnSyncFailed abgeschlossen ist. andernfalls ist es vorübergehend und könnte eher die aktuelle Wahrscheinlichkeit als die nächste sein, die verwendet wird.

Einzelheiten
Kehrt zurück
Wahrscheinlichkeit, dass die Antwort in der nächsten Anfrage verwendet wird

GetServerState

ServerState GetServerState(
  void
) const 

einfacher 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 initialisieren.

bei Rückrufen nicht verfügbar

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf Daten einer höheren Schicht, der in Rückrufen zu einer höheren Schicht verwendet wird.
[in] aExchangeMgr
Ein Zeiger 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 Entdeckungsphase verwendet zu werden
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

InitKoordinator

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 initialisieren.

Einzelheiten
Parameter
[in] aExchangeMgr
Ein Zeiger 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 Entdeckung, in ms, wenn kein Kommunikationsfehler beobachtet wird
[in] aShortestDiscoveryPeriod_msec
kleinste Anzahl von ms zwischen Entdeckung, wenn Kommunikationsfehler beobachtet wurde
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

InitServer

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

initialize für die Serverrolle muss als erste Funktion nach der Objektkonstruktion aufgerufen werden, wenn die Absicht besteht, ein Time Sync Server zu sein.

bei Rückrufen nicht verfügbar

Einzelheiten
Parameter
[in] aApp
Ein Zeiger auf Daten einer höheren Schicht, der in Rückrufen zu einer höheren Schicht verwendet wird.
[in] aExchangeMgr
Ein Zeiger auf das systemweite Weave Exchange Manager-Objekt
[in] aIsAlwaysFresh
kann auf true gesetzt werden, um anzuzeigen, dass der Server mit Ausnahme der anfänglichen unzuverlässigen Zeit immer synchronisiert wird. wird für den Koordinator auf false gesetzt.
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

MulticastTimeChangeNotification

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

Wird von einer höheren Schicht aufgerufen, um eine Benachrichtigung über die Zeitänderung per Multicast zu senden.

bei Rückrufen nicht verfügbar.

Einzelheiten
Parameter
[in] aEncryptionType
Art der Verschlüsselung, die 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 Schicht aufgerufen, um anzuzeigen, dass wir gerade eine Zeitsynchronisation mit einem beliebigen Server oder über zuverlässige Mittel wie NTP abgeschlossen haben.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

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

Einzelheiten
Parameter
[in] aNumContributor
Anzahl der Koordinatoren, die zu dieser Zeitsynchronisation beigetragen haben

Schließen

WEAVE_ERROR Shutdown(
  void
)

stoppen Sie den Dienst, egal welche Rolle er spielt.

Diese Funktion muss aufgerufen werden, um zugewiesene Ressourcen richtig zurückzufordern, bevor ein weiterer Aufruf einer der init-Funktionen erfolgen kann. bei Rückrufen nicht verfügbar.

Einzelheiten
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

Synchronisieren

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

mit vorhandenen Kontakten synchronisieren.

Der Synchronisierungsvorgang kann fehlschlagen, wenn keine gültigen Kontakte verfügbar sind. Setzen Sie aForceDiscoverAgain auf true, um die Erkennung sofort zu erzwingen. nur im Ruhezustand verfügbar. bei Rückrufen nicht verfügbar.

Einzelheiten
Parameter
[in] aForceDiscoverAgain
true , wenn alle vorhandenen Kontakte geleert und die Ermittlungsoperation durchgeführt werden soll
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

Mit Knoten synchronisieren

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

mit der angegebenen Kontaktliste synchronisieren.

bestehende Kontaktliste würde geleert. nur im Ruhezustand verfügbar. bei Rückrufen nicht verfügbar.

Einzelheiten
Parameter
[in] aNumNode
Anzahl der Kontakte im Array aNodes
[in] aNodes
Reihe von Kontaktdatensätzen
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

Mit Dienst synchronisieren

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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

Der Aufrufer muss den Besitz der TCP-Verbindung übernehmen, nachdem die Synchronisierung abgeschlossen ist. für die TCP-Verbindung würde kein Callback überschrieben, da ein neuer Weave Exchange erstellt und Callbacks über diesen Kontext gesetzt würden, die nur im Ruhezustand verfügbar sind. bei Rückrufen nicht verfügbar.

Einzelheiten
Parameter
[in] aConnection
Ein Hinweis auf die Weave-Verbindung
Kehrt zurück
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 Auto-Sync-Sitzung

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
)

Induzieren Sie einen Rückruf an die Anwendungsschicht.

setze aIsSuccessful auf false, um den Fehler-Callback auszulösen

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

schließen Sie die Webart ExchangeContext

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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

Geben Sie einen Slot zurück, um Kontaktinformationen zu speichern

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

Holen Sie sich den nächsten gültigen und freien Kontakt, mit dem Sie sprechen können

GetNumNotYetCompletedKontakte

int16_t GetNumNotYetCompletedContacts(
  void
)

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

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

erhalten Sie die Anzahl der bisher gesammelten "zuverlässigen" Antworten.

angerufen, um festzustellen, ob wir genügend Antworten gesammelt haben

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
)

Kontakt zum Service 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 aContact kann NULL sein, um anzuzeigen, dass wir niemanden haben, mit dem wir sprechen können

SendSyncRequest

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

Senden Sie eine Unicast-Synchronisierungsanfrage an einen Kontakt.

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

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

Setzen Sie alle abgeschlossenen Kontakte wieder in den Ruhezustand zurück, berühren Sie jedoch nicht die Antwort.

dies wird zwischen zwei Kommunikationsrunden zum selben Knoten aufgerufen

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

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

Dies wird aufgerufen, bevor wir sie einzeln kontaktieren

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Erstellen Sie eine neue Weave Exchange für die Unicast-Kommunikation

StoreBenachrichtigungKontakt

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

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

MulticastSyncResponse aktualisieren

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

eine Antwort verarbeiten, die von einer Multicast-Anfrage zurückkommt

UnicastSyncResponse aktualisieren

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

eine Antwort verarbeiten, die von einer Unicast-Anfrage zurückkommt

_InitClient

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

für die Client-Rolle initialisieren.

Zur internen Verwendung durch die Init-Familie öffentlicher Funktionen vorgesehen. Muss mClientState vor der Rückgabe setzen. bei Rückrufen nicht verfügbar

Einzelheiten
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 Entdeckungsphase verwendet zu werden
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

für die Serverrolle initialisieren.

Zur internen Verwendung durch die Init-Familie öffentlicher Funktionen vorgesehen. Muss mClientState vor der Rückgabe setzen. bei Rückrufen nicht verfügbar

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

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

Stoppen Sie den Client, der in Rückrufen nicht verfügbar ist.

Einzelheiten
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

_ShutdownKoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

Stoppen Sie den Koordinator, der bei Rückrufen nicht verfügbar ist.

Einzelheiten
Kehrt zurück
WEAVE_NO_ERROR bei Erfolg

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

Stoppen Sie den Server, der in Rückrufen nicht verfügbar ist.

Einzelheiten
Kehrt zurück
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 Zeitsynchronisierungsanfrage 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
)

Rückruf von Weave Timer, wenn wir die unzuverlässige After-Boot-Barriere passiert haben

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Bestimmen Sie, ob der gegebene Zustand betriebsbereit ist.

Bequeme Methode, um festzustellen, ob der ClientState den Betriebszustand bezeichnet, dh der Client hat die Initialisierung abgeschlossen und ist nicht dabei, herunterzufahren.

Einzelheiten
Parameter
[in] aState
zu bewertender Zustand
Kehrt zurück
true, wenn der Zustand nach Abschluss der Initialisierung und vor Beginn des Herunterfahrens fällt, andernfalls false.

_OnSyncErfolgreich

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