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 nach Abschluss beider Synchronisierungsversuche.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Rückruf, um anzugeben, dass wir gerade eine Zeitänderungsbenachrichtigung erhalten haben.

Geschützte Typen

@324 enum

Öffentliche Attribute

OnTimeChangeNotificationReceived

Geschützte Attribute

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
wird verwendet, um die einfache Flugzeit zu speichern.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
Wird zum Speichern des Zeitstempels verwendet, wenn ein Ergebnis registriert wird
mRemoteTimestamp_usec
timesync_t
wird verwendet, um die Systemzeit des Remote-Knotens zu speichern, als die Antwortnachricht demnächst gesendet werden sollte
mUnadjTimestampLastSent_usec
timesync_t

Öffentliche Funktionen

Abort(void)
void
Aktuelle Zeitsynchronisierung abbrechen.
GetClientState(void) const
Aktuellen Status dieses Clients abrufen.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Initialisieren Sie diesen Client.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Führen Sie eine Synchronisierung mit dem angegebenen Binding durch und erstellen Sie mit dem angegebenen Zeiger einen Callback.

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, auf Benachrichtigung zur Zeitänderung wird gewartet, aber es findet keine Zeitsynchronisierung statt.

kClientState_Sync_1

Beim ersten Synchronisierungsversuch wird gearbeitet.

kClientState_Sync_2

Beim zweiten Synchronisierungsversuch wird gearbeitet.

SyncCompletionHandler

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

Rückruf nach Abschluss beider Synchronisierungsversuche.

Wenn der Fehlercode WEAVE_NO_ERROR lautet, war mindestens ein Versuch erfolgreich. Andernfalls weist der Fehlercode 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 ist

TimeChangeNotificationHandler

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

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

Bei Init auf NULL setzen. Ist die Richtlinie nicht konfiguriert, wird die Benachrichtigung zur Zeitänderung ignoriert. Die App-Ebene darf in diesem Callback „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 Validierung ihrer 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

wird verwendet, um die einfache Flugzeit zu speichern.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

Wird zum Speichern des Zeitstempels verwendet, wenn ein Ergebnis registriert wird

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

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

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Aktuelle Zeitsynchronisierung abbrechen.

Lassen Sie Bindung los. Aktive Anzeigenplattform abbrechen. Zurück in den Ruhezustand wechseln.

GetClientState

ClientState GetClientState(
  void
) const 

Aktuellen Status dieses Clients abrufen.

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 höherer Ebenen, der in Callbacks zu einer höheren Ebene verwendet wird.
[in] aExchangeMgr
Verweis auf den Exchange-Manager, der bei der Registrierung des Nachrichten-Handlers für die Zeitänderungsbenachrichtigung verwendet werden würde
Rückgabe
WEAVE_NO_ERROR bei Erfolg

Synchronisieren

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Führen Sie eine Synchronisierung mit dem angegebenen Binding durch und erstellen Sie mit dem angegebenen Zeiger einen Callback.

Wenn eine zeitliche Synchronisierung stattfindet, wird diese implizit abgebrochen, ohne dass ein Callback erfolgt. Nicht verfügbar im Callback OnSyncCompleted, aber zulässig in OnTimeChangeNotificationReceived . Bei einem Fehler wird der Abbruch implizit aufgerufen, bevor von dieser Funktion zurückgegeben wird.

Details
Parameter
[in] aBinding
Bindung für die Kontaktaufnahme mit dem Zeitserver
[in] OnSyncCompleted
Callback-Funktion, die nach Abschluss der zeitlichen 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
)

_AbbrechenWithCallback

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
)