nl::Weave::Profiles::Time::TimeSyncNode

Resumen

Herencia

Se hereda de: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Constructores y destructores

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
estados usados para la función de sincronización automática.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
de comunicación.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
Estas funciones de transición de estado son internas y no pueden mostrar un código de error, ya que el estado anterior no tendría forma de controlarlas.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Tipos públicos

ClientState enum
estado actual de este cliente de sincronización de tiempo
CommState enum
estado de la comunicación con un contacto determinado.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
la devolución de llamada se realiza justo antes de que calculemos la corrección de tiempo a partir de las respuestas.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
para indicar que acabamos de recibir una solicitud de sincronización de hora.
ResponseStatus enum
estado de la respuesta almacenada a un contacto determinado.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
estado actual de este servidor de sincronización de tiempo
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
La devolución de llamada se produce cuando se considera que la sincronización falló, incluida la sincronización automática.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
La devolución de llamada ocurre después de que la sincronización se considera exitosa, incluida la sincronización automática, pero antes de que se aplique el resultado.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
para indicar que acabamos de recibir una notificación de cambio de hora.

Atributos públicos

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Si no la estableces, la implementación predeterminada siempre mostrará el valor "true"
OnSyncSucceeded
Si no la estableces, el comportamiento predeterminado mostrará todos los resultados, excepto por las pequeñas correcciones del servidor.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
método de encriptación para comunicaciones locales
mKeyId
uint16_t
ID de clave que se usa para la comunicación local

Atributos protegidos

mApp
void *
puntero hacia los datos de la capa superior
mClientState
mConnectionToService
Conexión TCP utilizada para comunicarse con el servicio.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Información de contacto obtenida durante el descubrimiento.
mIsAlwaysFresh
bool
mIsInCallback
bool
true si estamos en una devolución de llamada a la capa superior
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Rol real de este nodo.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Ten en cuenta que debe ser durante el inicio, ya que necesitamos una compensación por el tiempo de sueño.
mTimestampLastLocalSync_usec
timesync_t
Ten en cuenta que debe ser durante el inicio, ya que necesitamos una compensación por el tiempo de sueño.

Funciones públicas

Abort(void)
forzar al motor a volver al estado inactivo, lo que anula todo lo que hace.
DisableAutoSync(void)
void
inhabilitar la sincronización automática.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
habilitar la sincronización automática
GetCapacityOfContactList(void) const
int
Es un método get simple que indica la cantidad máxima de contactos que este motor está configurado para almacenar.
GetClientState(void) const
método get simple para el estado del cliente
GetNextLikelihood(void) const
int8_t
extraer la probabilidad de persistencia.
GetServerState(void) const
método get simple para el estado del servidor
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicializar este cliente.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
inicializamos este coordinador.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
La inicialización para el rol de servidor debe llamarse como la primera función después de la construcción del objeto si la intención es ser un servidor de sincronización de tiempo.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
La capa superior llama a la notificación de cambio de tiempo de multidifusión.
RegisterCorrectionFromServerOrNtp(void)
void
Llamada por una capa superior para indicar que acabamos de terminar una ronda de sincronización con cualquier servidor o a través de algún medio confiable, como NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
La capa superior llama a este número para indicar que acabamos de terminar una ronda de sincronización con otros coordinadores locales.
Shutdown(void)
detener el servicio, sin importar el rol que desempeñe.
Sync(const bool aForceDiscoverAgain)
se sincronizarán con los contactos existentes.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
sincronizar con la lista de contactos proporcionada.
SyncWithService(WeaveConnection *const aConnection)
sincroniza con la conexión TCP determinada y la encriptación y el ID de clave asociados.

Funciones protegidas

AbortOnError(const WEAVE_ERROR aCode)
void
anulación interna si aCode no es WEAVE_NO_ERROR
AutoSyncNow(void)
void
función interna para iniciar una sesión de sincronización automática
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
inducir la devolución de llamada a la capa de aplicación.
ClearState(void)
void
DestroyCommContext(void)
bool
cierra ExchangeContext de Weave.
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
devolver un espacio para almacenar la información de contacto
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
conseguir el próximo contacto inactivo y válido con el que hablar
GetNumNotYetCompletedContacts(void)
int16_t
obtener la cantidad de contactos válidos, pero aún no hablamos con ellos.
GetNumReliableResponses(void)
int16_t
obtener la cantidad de registros las respuestas recopiladas hasta el momento.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
invalidar todos los contactos locales
InvalidateServiceContact(void)
void
invalidar el contacto con el servicio
RegisterCommError(Contact *const aContact)
void
Registrar el error de comunicación en un contacto determinado y acortar el período de detección automática, si es necesario. aContact puede ser NULL para indicar que no hay nadie con quien comunicarse y, por lo tanto, acortar el período de detección automática.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
enviar una solicitud de sincronización de unidifusión a un contacto
SetAllCompletedContactsToIdle(void)
int16_t
restablece todos los contactos completados al estado inactivo nuevamente, pero no toques la respuesta.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
establece todos los contactos locales válidos en el estado inactivo y borra la respuesta.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
crear un nuevo intercambio de Weave para la comunicación unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
Almacenar la información de contacto de un nodo que nos acaba de enviar una notificación de cambio de hora.
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
procesar una respuesta que proviene de una solicitud de multidifusión
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
procesar una respuesta que proviene de una solicitud de unidifusión
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
se inicializa para el rol de cliente.
_InitServer(const bool aIsAlwaysFresh)
inicializar para el rol de servidor.
_ShutdownClient(void)
detener el cliente no disponible en las devoluciones de llamada.
_ShutdownCoordinator(void)
detener el coordinador no está disponible en las devoluciones de llamada.
_ShutdownServer(void)
detener el servidor no disponible en devoluciones de llamada.

Funciones estáticas protegidas

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
devolución de llamada de Weave Exchange cuando llega una solicitud de sincronización de hora
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
devolución de llamada de Weave Timer cuando pasamos la barrera después del inicio, que no es confiable.
IsOperationalState(ClientState aState)
bool
Determinar si un estado determinado es operativo
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

estados usados para la función de sincronización automática.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

de comunicación.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

Estas funciones de transición de estado son internas y no pueden mostrar un código de error, ya que el estado anterior no tendría forma de controlarlas.

Cualquier falla generará, finalmente, otra transición de estado (podría ser tiempo de espera agotado). Si incluso el temporizador falla, saldremos del truco y podríamos colgar en un estado incorrecto.

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  void
)

Tipos públicos

ClientState

 ClientState

estado actual de este cliente de sincronización de tiempo

CommState

 CommState

estado de la comunicación con un contacto determinado.

Esto es público porque Contact es público.

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

la devolución de llamada se realiza justo antes de que calculemos la corrección de tiempo a partir de las respuestas.

la capa de la aplicación podría reemplazar aContact[i].mResponseStatus por kResponseStatus_Invalid de la respuesta para que se pase por alto en el cálculo.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado en Init.
[in] aContact
array de contactos y estado de respuesta
[in] aSize
la cantidad de registros en la matriz aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

para indicar que acabamos de recibir una solicitud de sincronización de hora.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado en Init.
[in] aMsgInfo
Un WeaveMessageInfo que contenga información sobre la solicitud de sincronización de hora recibida, incluida información sobre el remitente.
[in] aLikelyhood
más alta probabilidad de respuesta según lo solicitado por el autor.
[in] aIsTimeCoordinator
true si el nodo de origen es un coordinador de sincronización de tiempo
Resultado que se muestra
false, y el motor ignorará esta solicitud

ResponseStatus

 ResponseStatus

estado de la respuesta almacenada a un contacto determinado.

Esto es público porque Contact es público.

ServerState

 ServerState

estado actual de este servidor de sincronización de tiempo

Propiedades
kServerState_Idle

el servidor está listo para responder las solicitudes con una configuración normal

kServerState_UnreliableAfterBoot

tiempo reservado para que el servidor sincronice su hora de sistema a través de otros medios que solo son significativos si aIs AlwaysFresh es verdadero cuando se llama a Init.

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

La devolución de llamada se produce cuando se considera que la sincronización falló, incluida la sincronización automática.

Ten en cuenta que la devolución de llamada no se produce si se llama a Abort para detener la sincronización.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado en Init.
[in] aErrorCode
motivo de la falla

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

La devolución de llamada ocurre después de que la sincronización se considera exitosa, incluida la sincronización automática, pero antes de que se aplique el resultado.

Ten en cuenta que tener éxito no significa que tengamos resultados aplicables. En caso de que no se reciba una respuesta, aNumContributor se establecería en 0. La capa de aplicación podría reemplazar aContact[i].mResponseStatus por kResponseStatus_Invalid, de modo que la respuesta se ignoraría en el cálculo.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado en Init.
[in] aOffsetUsec
cantidad de corrección en uso
[in] aIsReliable
si la corrección se considera confiable por la lógica integrada
[in] aIsServer
¿la corrección proviene de los servidores?
[in] aNumContributor
la cantidad de nodos que contribuyeron a esta corrección. 0 significa que no hay resultados de la operación de sincronización.
Resultado que se muestra
true si este desplazamiento se debe usar para ajustar la hora del sistema. en caso de que aNumContributor sea 0, se ignorará el valor que se devuelve.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

para indicar que acabamos de recibir una notificación de cambio de hora.

si el modo de sincronización automática está habilitado, se programará una sincronización de tiempo poco después de esta devolución de llamada automática. De lo contrario, la capa de la aplicación puede optar por llamar a la familia de funciones de sincronización para iniciar directamente la operación de sincronización no restringida por la regla normal de devolución de llamada de no disponible. sin embargo, se debe tener en cuenta que esta devolución de llamada especial aún se encuentra en la parte superior de la pila de devoluciones de llamada de la capa de intercambio de Weave.

Detalles
Parámetros
[in] aApp
Es un puntero a los datos de la capa de la app, configurado en Init.
[in] aNodeId
solicitando ID de nodo
[in] aNodeAddr
solicitando dirección de nodo

Atributos públicos

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Si no la estableces, la implementación predeterminada siempre mostrará el valor "true"

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Si no la estableces, el comportamiento predeterminado mostrará todos los resultados, excepto por las pequeñas correcciones del servidor.

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

método de encriptación para comunicaciones locales

mKeyId

uint16_t mKeyId

ID de clave que se usa para la comunicación local

Atributos protegidos

mApp

void * mApp

puntero hacia los datos de la capa superior

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Es la conexión TCP que se usa para comunicarse con el servicio.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Información de contacto obtenida durante el descubrimiento.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true si estamos en una devolución de llamada a la capa superior

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Rol real de este nodo.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Ten en cuenta que debe ser durante el inicio, ya que necesitamos una compensación por el tiempo de sueño.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Ten en cuenta que debe ser durante el inicio, ya que necesitamos una compensación por el tiempo de sueño.

Funciones públicas

Anular

WEAVE_ERROR Abort(
  void
)

forzar al motor a volver al estado inactivo, lo que anula todo lo que hace.

Ten en cuenta que no se llamará a una sincronización correcta o fallida. se cerrarían todos los intercambios de Weave. y las conexiones TCP no se conectarán más. funcionamiento, si el estado de la actividad es inactivo. no están disponibles en devoluciones de llamada.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

DisableAutoSync

void DisableAutoSync(
  void
)

inhabilitar la sincronización automática.

solo está disponible en estado inactivo. no están disponibles en devoluciones de llamada.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

habilitar la sincronización automática

solo está disponible en estado inactivo. el descubrimiento se hace de inmediato. no están disponibles en devoluciones de llamada.

Detalles
Parámetros
[in] aSyncPeriod_msec
cantidad de ms entre la sincronización
[in] aNominalDiscoveryPeriod_msec
cantidad de ms entre el descubrimiento, si no se observa ningún error de comunicación
[in] aShortestDiscoveryPeriod_msec
menor tiempo entre el descubrimiento, en ms, si se observa un error de comunicación
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

Es un método get simple que indica la cantidad máxima de contactos que este motor está configurado para almacenar.

GetClientState

ClientState GetClientState(
  void
) const 

método get simple para el estado del cliente

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

extraer la probabilidad de persistencia.

el resultado solo será válido después de que se complete la operación de sincronización, dentro de las devoluciones de llamada de OnSyncSucceeded y OnSyncFailed. de lo contrario, es transitoria y podría ser la probabilidad actual en lugar de la siguiente.

Detalles
Resultado que se muestra
probabilidad de que la respuesta se utilice en la próxima solicitud

GetServerState

ServerState GetServerState(
  void
) const 

método get simple para el estado del servidor

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

inicializamos este cliente.

no disponible en devoluciones de llamada

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 al objeto de Weave Exchange Manager de todo el sistema
[in] aRole
puede ser kTimeSyncRole_Client o kTimeSyncRole_Coordinator
[in] aEncryptionType
el tipo de encriptación que se usará para las solicitudes y respuestas
[in] aKeyId
ID de clave que se usará para las solicitudes y respuestas
[in] aInitialLikelyhood
probabilidad inicial de que se use en la etapa de descubrimiento
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

inicializamos este coordinador.

Detalles
Parámetros
[in] aExchangeMgr
Un puntero al objeto de Weave Exchange Manager de todo el sistema
[in] aEncryptionType
el tipo de encriptación que se usará para las solicitudes y respuestas
[in] aKeyId
ID de clave que se usará para las solicitudes y respuestas
[in] aSyncPeriod_msec
cantidad de ms entre la sincronización
[in] aNominalDiscoveryPeriod_msec
menor tiempo entre el descubrimiento, en ms, si no se observa un error de comunicación
[in] aShortestDiscoveryPeriod_msec
menor cantidad de ms entre la detección, si se observó un error de comunicación
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

La inicialización para el rol de servidor debe llamarse como la primera función después de la construcción del objeto si la intención es ser un servidor de sincronización de tiempo.

no disponible en devoluciones de llamada

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 al objeto de Weave Exchange Manager de todo el sistema
[in] aIsAlwaysFresh
Se puede configurar como verdadera para indicar que el servidor siempre está sincronizado excepto por el momento inicial poco confiable. debe configurarse como false para Coordinator.
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Llama a la capa superior a la notificación de cambio de tiempo de multidifusión.

no están disponibles en devoluciones de llamada.

Detalles
Parámetros
[in] aEncryptionType
tipo de encriptación que se usará para esta notificación
[in] aKeyId
ID de clave que se usará para esta notificación

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Llamada por una capa superior para indicar que acabamos de terminar una ronda de sincronización con cualquier servidor o a través de algún medio confiable, como NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

La capa superior llama a este número para indicar que acabamos de terminar una ronda de sincronización con otros coordinadores locales.

Detalles
Parámetros
[in] aNumContributor
cantidad de coordinadores contribuyeron a esta sincronización de tiempo

Cierre

WEAVE_ERROR Shutdown(
  void
)

detener el servicio, sin importar el rol que desempeñe.

Se debe llamar a esta función para reclamar adecuadamente los recursos asignados, antes de que se pueda realizar otra llamada a cualquiera de las funciones init. no están disponibles en devoluciones de llamada.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

Sincronizar

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

se sincronizarán con los contactos existentes.

la operación de sincronización puede fallar si no hay contactos válidos disponibles. configura aForceDiscoverAgain como verdadero para forzar el descubrimiento de inmediato solo está disponible en estado inactivo. no están disponibles en devoluciones de llamada.

Detalles
Parámetros
[in] aForceDiscoverAgain
true si se deben limpiar todos los contactos existentes y se debe realizar la operación de descubrimiento
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

sincronizar con la lista de contactos proporcionada.

la lista de contactos existente se eliminará. solo está disponible en estado inactivo. no están disponibles en devoluciones de llamada.

Detalles
Parámetros
[in] aNumNode
cantidad de contactos en los aNodes del array
[in] aNodes
array de registros de contactos
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

sincroniza con la conexión TCP determinada y la encriptación y el ID de la clave asociados.

el emisor debe ser el propietario de la conexión TCP cuando finaliza la sincronización. ninguna devolución de llamada se reemplaza para la conexión TCP, ya que se crea un nuevo intercambio de Weave y las devoluciones de llamada establecidas sobre ese contexto solo están disponibles en estado inactivo. no están disponibles en devoluciones de llamada.

Detalles
Parámetros
[in] aConnection
Un puntero a la conexión de Weave
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

TimeSyncNode

 TimeSyncNode(
  void
)

Funciones protegidas

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

anulación interna si aCode no es WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

función interna para iniciar una sesión de sincronización automática

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

inducir la devolución de llamada a la capa de la aplicación.

establece aIsSuccessful como false para inducir la devolución de llamada de error

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

cierra ExchangeContext de Weave.

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

devolver un espacio para almacenar la información de contacto

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

conseguir el próximo contacto inactivo y válido con el que hablar

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

obtener la cantidad de contactos válidos, pero aún no hablamos con ellos.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

obtener la cantidad de registros las respuestas recopiladas hasta el momento.

para determinar si reunimos una cantidad suficiente de respuestas

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

invalidar todos los contactos locales

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

invalidar el contacto con el servicio

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

Registrar el error de comunicación en un contacto determinado y acortar el período de detección automática, si es necesario. aContact puede ser NULL para indicar que no hay nadie con quien comunicarse y, por lo tanto, acortar el período de detección automática.

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

enviar una solicitud de sincronización de unidifusión a un contacto

*Se configurará rIsMessageSent para indicar si el mensaje se envió. No se devuelven errores de comunicación como dirección inalcanzable, por lo que el emisor debe verificar tanto el código de retorno como *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

restablece todos los contactos completados al estado inactivo nuevamente, pero no toques la respuesta.

Se llama entre dos rondas de comunicación al mismo nodo.

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

establece todos los contactos locales válidos en el estado inactivo y borra la respuesta.

se llama a este mensaje antes de que comencemos a contactarlos uno por uno

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

crear un nuevo intercambio de Weave para la comunicación unicast

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

Almacenar la información de contacto de un nodo que nos acaba de enviar una notificación de cambio de hora.

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

procesar una respuesta que proviene de una solicitud de multidifusión

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

procesar una respuesta que proviene de una solicitud de unidifusión

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

se inicializa para el rol de cliente.

Diseñado para ser utilizado internamente por la familia de funciones públicas Init. Se debe configurar mClientState antes de la devolución. no disponible en devoluciones de llamada

Detalles
Parámetros
[in] aEncryptionType
el tipo de encriptación que se usará para las solicitudes y respuestas
[in] aKeyId
ID de clave que se usará para las solicitudes y respuestas
[in] aInitialLikelyhood
probabilidad inicial de que se use en la etapa de descubrimiento
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

inicializar para el rol de servidor.

Diseñado para ser utilizado internamente por la familia de funciones públicas Init. Se debe configurar mClientState antes de la devolución. no disponible en devoluciones de llamada

Detalles
Parámetros
[in] aIsAlwaysFresh
se puede configurar como verdadero para indicar que el servidor siempre está sincronizado excepto por el momento inicial poco confiable. debe configurarse como false para Coordinator.
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

detener el cliente no disponible en las devoluciones de llamada.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

detener el coordinador no está disponible en las devoluciones de llamada.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

detener el servidor no disponible en devoluciones de llamada.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR según la ejecución correcta

Funciones estáticas protegidas

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

devolución de llamada de Weave Exchange cuando llega una solicitud de sincronización de hora

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

devolución de llamada de Weave Timer cuando pasamos la barrera después del inicio, que no es confiable.

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determinar si un estado determinado es operativo

Método de conveniencia para determinar si el ClientState denota un estado operativo, es decir, si el cliente completó la inicialización y no está en proceso de apagado.

Detalles
Parámetros
[in] aState
estado que se evaluará
Resultado que se muestra
true si el estado cae después de que se completa la inicialización y antes de que comience el cierre; de lo contrario, es false.

_OnSyncSucceeded

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)