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

Riepilogo

Tipi pubblici

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
stato attuale di questo client di sincronizzazione temporale
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Richiama dopo aver completato entrambi i tentativi di sincronizzazione dell'ora.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Richiama per indicare che abbiamo appena ricevuto una notifica di cambio di orario.

Tipi protetti

@324 enum

Attributi pubblici

OnTimeChangeNotificationReceived

Attributi protetti

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
utilizzato per memorizzare i tempi dei voli di sola andata.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
utilizzato per archiviare il timestamp quando viene registrato un risultato
mRemoteTimestamp_usec
timesync_t
utilizzato per archiviare l'ora di sistema del nodo remoto, quando il messaggio di risposta stava per essere inviato
mUnadjTimestampLastSent_usec
timesync_t

Funzioni pubbliche

Abort(void)
void
Interrompi l'operazione di sincronizzazione dell'ora attuale.
GetClientState(void) const
Recupera lo stato attuale di questo client.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inizializza questo client.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Esegui la sincronizzazione utilizzando l'associazione specificata ed effettua un callback utilizzando il puntatore fornito.

Funzioni protette

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Annulla le informazioni registrate per la correzione dell'ora.
IsRegisteredResultValid(void)
bool
Verifica che le informazioni registrate per la correzione dell'ora siano valide.
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

Funzioni statiche protette

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

Tipi pubblici

ClientState

 ClientState

stato attuale di questo client di sincronizzazione temporale

Proprietà
kClientState_Idle

Inizializzata, in attesa della notifica di modifica dell'ora, ma non è in corso alcuna operazione di sincronizzazione dell'ora effettiva.

kClientState_Sync_1

Al primo tentativo di sincronizzazione in corso.

kClientState_Sync_2

Stiamo lavorando al secondo tentativo di sincronizzazione temporale.

SyncCompletionHandler

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

Richiama dopo aver completato entrambi i tentativi di sincronizzazione dell'ora.

Se aErrorCode è WEAVE_NO_ERROR, almeno un tentativo è riuscito. In caso contrario, entrambi gli errori aErrorCode indicano l'ultimo errore.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aErrorCode
WEAVE_NO_ERROR se almeno un'operazione di sincronizzazione ha esito positivo
[in] aCorrectedSystemTime
Valido solo se aErrorCode è WEAVE_NO_ERROR

TimeChangeNotificationHandler

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

Richiama per indicare che abbiamo appena ricevuto una notifica di cambio di orario.

Imposta il valore NULL su Init. Se non viene configurato, la notifica di cambio di orario viene ignorata. Il livello dell'app è autorizzato a chiamare Abort and Sync in questo callback.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aEC
Contesto di Exchange utilizzato per il messaggio in arrivo, che può essere usato per confermarne l'autenticità

Tipi protetti

@324

 @324

Attributi pubblici

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Attributi protetti

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

utilizzato per memorizzare i tempi dei voli di sola andata.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

utilizzato per archiviare il timestamp quando viene registrato un risultato

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

utilizzato per archiviare l'ora di sistema del nodo remoto, quando il messaggio di risposta stava per essere inviato

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Funzioni pubbliche

Interrompi

void Abort(
  void
)

Interrompi l'operazione di sincronizzazione dell'ora attuale.

Rilascia Binding. Interrompi lo scambio attivo. Torna allo stato inattivo.

GetClientState

ClientState GetClientState(
  void
) const 

Recupera lo stato attuale di questo client.

Dettagli
Restituisce
stato attuale

Inizia

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

Inizializza questo client.

Deve essere chiamata prima di poter utilizzare altre funzioni. Zero/NULL inizializza tutti i dati interni e registrati con Time Change Notification.

Dettagli
Parametri
[in] aApp
Un puntatore a dati di livello superiore, utilizzato nei callback al livello superiore.
[in] aExchangeMgr
Un puntatore a Exchange Manager, che viene utilizzato nella registrazione per il gestore di messaggi Time Change Notification
Restituisce
WEAVE_NO_ERROR in caso di esito positivo

Sincronizzazione

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Esegui la sincronizzazione utilizzando l'associazione specificata ed effettua un callback utilizzando il puntatore fornito.

Un'operazione di sincronizzazione dell'ora in corso viene interrotta implicitamente senza che venga effettuato il callback. Non disponibile nel callback OnSyncCompletato, ma consentito in OnTimeChangeNotificationReceived . In caso di errore, Interrompi viene chiamato in modo implicito prima di tornare da questa funzione.

Dettagli
Parametri
[in] aBinding
Binding da utilizzare per contattare il server dell'ora
[in] OnSyncCompleted
Funzione di callback da utilizzare dopo il completamento delle operazioni di sincronizzazione dell'ora
Restituisce
WEAVE_NO_ERROR in caso di esito positivo

Funzioni protette

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Annulla le informazioni registrate per la correzione dell'ora.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Verifica che le informazioni registrate per la correzione dell'ora siano valide.

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
)

_Interrompi con richiamata

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Funzioni statiche protette

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
)