nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

Zusammenfassung

Öffentliche Typen

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
Aktueller Status dieses Time Sync-Clients
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Rückruf, nachdem beide Zeitsynchronisierungsversuche abgeschlossen wurden.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Rückruf, um anzuzeigen, dass wir gerade eine Benachrichtigung zur Zeitänderung erhalten haben.

Geschützte Typen

@324 enum

Öffentliche Attribute

OnTimeChangeNotificationReceived

Geschützte Attribute

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
zur Speicherung der Hinflugzeit verwendet.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
zum Speichern eines Zeitstempels bei der Registrierung eines Ergebnisses
mRemoteTimestamp_usec
timesync_t
wird verwendet, um die Systemzeit des Remote-Knotens zu speichern, als die Antwortnachricht gesendet werden sollte
mUnadjTimestampLastSent_usec
timesync_t

Öffentliche Funktionen

Abort(void)
void
Aktuellen Synchronisierungsvorgang abbrechen.
GetClientState(void) const
Rufen Sie den aktuellen Status dieses Clients ab.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Initialisieren Sie diesen Client.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Synchronisieren Sie das angegebene Binding und führen Sie mit dem bereitgestellten Zeiger einen Rückruf durch.

Geschützte Funktionen

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Die registrierten Informationen zur Zeitkorrektur ungültig machen
IsRegisteredResultValid(void)
bool
Prüfen Sie, ob die registrierten Informationen für die Zeitkorrektur gültig sind.
OnResponseTimeout(void)
void
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState(void)
void
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest(void)
SetClientState(const ClientState state)
void
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
void

Geschützte statische Funktionen

HandleResponseTimeout(ExchangeContext *aEC)
void
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

Öffentliche Typen

ClientState

 ClientState

Aktueller Status dieses Time Sync-Clients

Attribute
kClientState_Idle

Initialisiert, es wird auf eine Benachrichtigung über die Zeitänderung gewartet, es findet jedoch kein tatsächlicher Synchronisierungsvorgang statt.

kClientState_Sync_1

Funktioniert beim ersten Synchronisierungsversuch.

kClientState_Sync_2

Ab dem zweiten Synchronisierungsversuch läuft.

SyncCompletionHandler

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

Rückruf, nachdem beide Zeitsynchronisierungsversuche abgeschlossen wurden.

Wenn aErrorCode WEAVE_NO_ERROR lautet, war mindestens ein Versuch erfolgreich. Andernfalls weisen beide Fehler bei aErrorCode auf den letzten Fehler hin.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aErrorCode
WEAVE_NO_ERROR, wenn mindestens ein Synchronisierungsvorgang erfolgreich war
[in] aCorrectedSystemTime
Nur gültig, wenn der Fehlercode WEAVE_NO_ERROR lautet

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

Rückruf, um anzuzeigen, dass wir gerade eine Benachrichtigung zur Zeitänderung erhalten haben.

Bei Init auf NULL festlegen. Wenn die Richtlinie nicht konfiguriert ist, wird die Zeitänderungsbenachrichtigung ignoriert. Die App-Ebene darf in diesem Callback den Vorgang „Abort“ und „Synchronisierung“ aufrufen.

Details
Parameter
[in] aApp
Ein Zeiger auf Daten der App-Ebene, die in Init festgelegt wurden.
[in] aEC
Exchange-Kontext für diese eingehende Nachricht, der zur Überprüfung der Authentizität verwendet werden kann

Geschützte Typen

@324

 @324

Öffentliche Attribute

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Geschützte Attribute

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

zur Speicherung der Hinflugzeit verwendet.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

zum Speichern eines Zeitstempels bei der Registrierung eines Ergebnisses

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

wird verwendet, um die Systemzeit des Remote-Knotens zu speichern, als die Antwortnachricht gesendet werden sollte

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Aktuellen Synchronisierungsvorgang abbrechen.

Binding freigeben. Aktiven Austausch abbrechen. In den inaktiven Zustand zurückversetzen.

GetClientState

ClientState GetClientState(
  void
) const 

Rufen Sie den aktuellen Status dieses Clients ab.

Details
Rückgabe
Aktueller Status

Init

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

Initialisieren Sie diesen Client.

Muss aufgerufen werden, bevor andere Funktionen verwendet werden können. Mit Null/NULL werden alle internen Daten initialisiert und mit der Zeitänderungsbenachrichtigung registriert.

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 Zeiger auf den Exchange Manager, der bei der Registrierung für den Nachrichten-Handler „Zeitänderungsbenachrichtigung“ verwendet wird
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Synchronisieren

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Synchronisieren Sie das angegebene Binding und führen Sie mit dem bereitgestellten Zeiger einen Rückruf durch.

Wenn gerade eine Zeitsynchronisierung stattfindet, wird dieser implizit abgebrochen, ohne dass ein Rückruf erfolgt. Nicht im Rückruf OnSyncCompleted verfügbar, aber in OnTimeChangeNotificationReceived zulässig . Bei einem Fehler würde der Abbruch implizit aufgerufen, bevor von dieser Funktion zurückgegeben wird.

Details
Parameter
[in] aBinding
Binding, das zum Kontaktieren des Zeitservers verwendet werden soll
[in] OnSyncCompleted
Callback-Funktion, die nach Abschluss der Synchronisierungsvorgänge verwendet werden soll
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Geschützte Funktionen

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Die registrierten Informationen zur Zeitkorrektur ungültig machen

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Prüfen Sie, ob die registrierten Informationen für die Zeitkorrektur gültig sind.

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Geschützte statische Funktionen

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)