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(*
Es la devolución de llamada después de que se completan ambos intentos de sincronización.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
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 vuelos 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
usada 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 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)
Sincroniza con 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
Invalidar la información registrada para la corrección de hora
IsRegisteredResultValid(void)
bool
Verifica 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 inicializó, a la espera de la notificación de cambio de hora, pero no se está realizando ninguna operación de sincronización de hora 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)

Es la devolución de llamada después de que se completan ambos intentos de sincronización.

Si aErrorCode es WEAVE_NO_ERROR, al menos un intento tuvo éxito. De lo contrario, ambos fallaron en aErrorCode indica el último error.

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

TimeChangeNotificationHandler

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

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 tiene permitido realizar llamadas a Abort and Sync en esta devolución de llamada.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado 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 vuelos 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

usada 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 sincronización de la hora actual

Liberar vinculación. Anular el intercambio activo. Regresa al estado inactivo.

GetClientState

ClientState GetClientState(
  void
) const 

Recupera el estado actual de este cliente.

Detalles
Resultado que se 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 los datos de la capa superior, que se utiliza en devoluciones de llamada a la capa superior.
[in] aExchangeMgr
Un puntero a Exchange Manager, que se usaría para registrarse en el controlador de mensajes de notificación de cambio de hora
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

Sincronizar

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Sincroniza con 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 anulará implícitamente sin que se realice la 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 llama a Anulación de manera implícita antes de regresar de esta función.

Detalles
Parámetros
[in] aBinding
Vinculación que se utilizará 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
Resultado que se muestra
WEAVE_NO_ERROR si la operación se completó correctamente

Funciones protegidas

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Invalidar la información registrada para la corrección de hora

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

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

_AbortWithCallback

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
)