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 dell'ora
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Callback dopo entrambi i tentativi di sincronizzazione dell'ora completati.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Callback 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
utilizzata per memorizzare i tempi di volo una sola andata.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
utilizzato per archiviare il timestamp quando viene registrato un risultato
mRemoteTimestamp_usec
timesync_t
utilizzata per archiviare l'ora di sistema del nodo remoto quando stava per essere inviato il messaggio di risposta
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 con l'associazione specificata ed effettua una richiamata utilizzando il puntatore fornito.

Funzioni protette

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
invalida 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 dell'ora

Proprietà
kClientState_Idle

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

kClientState_Sync_1

Primo tentativo di sincronizzazione dell'ora in corso.

kClientState_Sync_2

Secondo tentativo di sincronizzazione dell'ora in corso.

SyncCompletionHandler

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

Callback dopo entrambi i tentativi di sincronizzazione dell'ora completati.

Se aErrorCode è WEAVE_NO_ERROR, è stato effettuato almeno un tentativo. In caso contrario, entrambi con errore e aErrorCode indica l'ultimo errore.

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

TimeChangeNotificationHandler

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

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

Impostalo su NULL su Init. Se non viene configurato, l'opzione Notifica di cambio di orario verrà ignorata. Il livello app è autorizzato a chiamare Abort and Sync in questo callback.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aEC
Contesto di Exchange utilizzato per questo messaggio in arrivo, utilizzabile per convalidarne 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

utilizzata per memorizzare i tempi di volo una 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

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

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Funzioni pubbliche

Interrompi

void Abort(
  void
)

Interrompi l'operazione di sincronizzazione dell'ora attuale.

Rilascia Associazione. Interrompi scambio attivo. Torna allo stato di inattività.

GetClientState

ClientState GetClientState(
  void
) const 

Recupera lo stato attuale di questo client.

Dettagli
Restituisce
stato attuale

Inizializzazione

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 si registra con Time Change Notification.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello superiore, utilizzato nei callback al livello superiore.
[in] aExchangeMgr
Un puntatore a Exchange Manager, che verrebbe utilizzato per la registrazione per il gestore di messaggi delle notifiche di cambio temporale
Restituisce
WEAVE_NO_ERROR all'esito positivo

Sincronizza

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Esegui la sincronizzazione con l'associazione specificata ed effettua una richiamata utilizzando il puntatore fornito.

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

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

Funzioni protette

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

invalida 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
)

_AbortWithCallback

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
)