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

Resumen

Tipos públicos

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
Estado actual de este cliente de sincronización de tiempo
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Devolución de llamada después de que se hayan completado ambos intentos de sincronización.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Es la devolución de llamada para indicar que acabamos de recibir una notificación de cambio de hora.

Tipos protegidos

@324 enum

Atributos públicos

OnTimeChangeNotificationReceived

Atributos protegidos

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
que se usa para almacenar el tiempo de vuelo de ida solo.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
Se usa para almacenar la marca de tiempo cuando se registra un resultado.
mRemoteTimestamp_usec
timesync_t
se utiliza para almacenar la hora del sistema del nodo remoto, cuando el mensaje de respuesta estaba a punto de enviarse
mUnadjTimestampLastSent_usec
timesync_t

Funciones públicas

Abort(void)
void
Anular la operación de sincronización de la hora actual
GetClientState(void) const
Recupera el estado actual de este cliente.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inicializa este cliente.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
La sincronización usa la Binding determinada y realiza una devolución de llamada con el puntero proporcionado.

Funciones protegidas

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Invalida la información registrada para la corrección de hora.
IsRegisteredResultValid(void)
bool
Comprueba si la información registrada para la corrección de hora es válida.
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

Funciones estáticas protegidas

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

Tipos públicos

ClientState

 ClientState

Estado actual de este cliente de sincronización de tiempo

Propiedades
kClientState_Idle

Se inicializa, a la espera de la notificación de cambio de hora, pero no se produce ninguna operación de sincronización de tiempo real.

kClientState_Sync_1

Se está trabajando en el primer intento de sincronización.

kClientState_Sync_2

Se está trabajando en el segundo intento de sincronización.

SyncCompletionHandler

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

Devolución de llamada después de que se hayan completado ambos intentos de sincronización.

Si aErrorCode es WEAVE_NO_ERROR, se realizó al menos un intento correctamente. De lo contrario, ambos fallidos en aErrorCode indican el último error.

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido en Init.
[in] aErrorCode
WEAVE_NO_ERROR si se realiza correctamente al menos una operación de sincronización de tiempo
[in] aCorrectedSystemTime
Solo es válido si el aErrorCode es WEAVE_NO_ERROR.

TimeChangeNotificationHandler

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

Es la devolución de llamada para indicar que acabamos de recibir una notificación de cambio de hora.

Configúralo como NULL en Init. Si no la estableces, se ignorará la notificación de cambio de hora. La capa de la app puede llamar a Anulación y sincronización en esta devolución de llamada.

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido en Init.
[in] aEC
Contexto de intercambio usado para este mensaje entrante, que se puede usar para validar su autenticidad

Tipos protegidos

@324

 @324

Atributos públicos

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Atributos protegidos

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

que se usa para almacenar el tiempo de vuelo de ida solo.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

Se usa para almacenar la marca de tiempo cuando se registra un resultado.

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

se utiliza para almacenar la hora del sistema del nodo remoto, cuando el mensaje de respuesta estaba a punto de enviarse

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Funciones públicas

Anular

void Abort(
  void
)

Anular la operación de sincronización de la hora actual

Vinculación de lanzamiento. Anular el intercambio activo Regresa al estado inactivo.

GetClientState

ClientState GetClientState(
  void
) const 

Recupera el estado actual de este cliente.

Detalles
Qué muestra
estado actual

Init

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

Inicializa este cliente.

Se debe llamar antes de que se puedan usar otras funciones. Cero/NULL inicializan todos los datos internos y se registran con la notificación de cambio de hora.

Detalles
Parámetros
[in] aApp
Un puntero para datos de capas superiores, que se usa en devoluciones de llamada a una capa superior
[in] aExchangeMgr
Un puntero al administrador de Exchange, que se usaría para registrarse en el controlador de mensajes de notificación de cambio de hora
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

Sincronizar

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

La sincronización usa la Binding determinada y realiza una devolución de llamada con el puntero proporcionado.

Si hay una operación de sincronización de tiempo en curso, se abortará de forma implícita sin que se realice una devolución de llamada. No está disponible en la devolución de llamada OnSyncCompleted, pero se permite en OnTimeChangeNotificationReceived . Si se produce un error, se llamará a Abort de forma implícita antes de regresar de esta función.

Detalles
Parámetros
[in] aBinding
Vinculación que se usará para comunicarse con el servidor de hora
[in] OnSyncCompleted
Función de devolución de llamada que se usará después de que se completen las operaciones de sincronización
Qué muestra
WEAVE_NO_ERROR cuando se completa de forma correcta

Funciones protegidas

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Invalida la información registrada para la corrección de hora.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Comprueba si la información registrada para la corrección de hora es válida.

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
)

_Anular con devolución de llamada

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Funciones estáticas protegidas

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
)