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
|
Contact *
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)
|
typedefvoid(*
direkt bevor die Zeitkorrektur aus den Antworten berechnet wird. |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
, um anzugeben, dass wir gerade eine Zeitsynchronisierungsanfrage erhalten haben. |
ResponseStatus
|
enum Status der gespeicherten Antwort an einen bestimmten Kontakt. |
ServerState{
|
enum Aktueller Status dieses Time Sync Servers |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
-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)
|
typedefbool(*
-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)
|
typedefvoid(*
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)
|
Contact *
einen Slot zum Speichern von Kontaktdaten zurückgeben
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
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
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 |
|
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 |
|
||||||||
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 |
|
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 |
|
||||||||||
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 |
|
Ö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 |
|
||||||
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
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
|
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 |
|
||||||||||||
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 |
|
||||||||||||
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 |
|
||||||
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 |
|
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 |
|
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 |
|
||
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 |
|
||||
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 |
|
||
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 )
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 |
|
||||||
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 |
|
||
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 |
|
||
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 )