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

Resumen

Herencia

Hereda de: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Constructores y destructores

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
estados utilizados para la función de sincronización automática.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
el contexto de la comunicación.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
estas funciones de transición de estado son internas y no pueden mostrar código de error, ya que el estado anterior no tendría forma de manejarlas.
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 determinado contacto.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
la devolución de llamada ocurre justo antes de que calculemos la corrección de tiempo 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 tiempo.
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 falla la sincronización, 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 se produce después de que la sincronización se considera exitosa, incluida la 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 se establece, la implementación predeterminada siempre muestra un valor verdadero
OnSyncSucceeded
Si no se establece, el comportamiento predeterminado será recibir todos los resultados, excepto las correcciones muy pequeñas del servidor.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
método de encriptación para la comunicación local
mKeyId
uint16_t
ID de clave utilizado para la comunicación local

Atributos protegidos

mApp
void *
puntero a 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 que se obtuvo 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
Es la función real de este nodo.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Ten en cuenta que debe ser el tiempo de inicio, ya que necesitamos compensación por el tiempo de sueño.
mTimestampLastLocalSync_usec
timesync_t
Ten en cuenta que debe ser el tiempo de inicio, ya que necesitamos compensación por el tiempo de sueño.

Funciones públicas

Abort(void)
forzar al motor para que vuelva al estado inactivo y anula todo lo que esté haciendo.
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
Método get simple para 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
y extraer la probabilidad de recursos persistentes.
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)
inicializar este coordinador.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
Se debe llamar a la inicialización para el rol de servidor 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
Lo llama una capa superior a la notificación de cambio de tiempo de multidifusión.
RegisterCorrectionFromServerOrNtp(void)
void
Lo llama una capa más alta para indicar que acabamos de terminar una ronda de sincronización de tiempo con cualquier servidor o a través de algún medio confiable, como NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Se llama desde una capa superior para indicar que acabamos de finalizar una ronda de sincronización de tiempo con otros coordinadores locales.
Shutdown(void)
detener el servicio, sin importar el rol que desempeñe.
Sync(const bool aForceDiscoverAgain)
sincronizar con los contactos existentes.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
sincronizar usando la lista de contactos proporcionada.
SyncWithService(WeaveConnection *const aConnection)
y sincronizar mediante 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 la 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 horario disponible para almacenar la información de contacto
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
obtener el siguiente contacto válido e inactivo con el que hablar
GetNumNotYetCompletedContacts(void)
int16_t
obtener la cantidad de contactos válidos, pero aún no hemos hablado con ellos.
GetNumReliableResponses(void)
int16_t
obtener el número de respuestas “confiables” 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 hablar 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 Unicast a un contacto
SetAllCompletedContactsToIdle(void)
int16_t
restablecer todos los contactos completados al estado inactivo nuevamente, pero no toques la respuesta.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
establecer todos los contactos locales válidos en estado de inactividad y borrar la respuesta.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
Crear un nuevo Weave Exchange para la comunicación unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
almacenar la información de contacto de un nodo que 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 multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
procesar una respuesta que proviene de una solicitud unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicializar para el rol de cliente.
_InitServer(const bool aIsAlwaysFresh)
para el rol de servidor.
_ShutdownClient(void)
detener al cliente no disponible en las devoluciones de llamada
_ShutdownCoordinator(void)
detener al coordinador no disponible en las devoluciones de llamada
_ShutdownServer(void)
detener el servidor no disponible en las 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 poco confiable después del inicio.
IsOperationalState(ClientState aState)
bool
Determina si el 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 utilizados 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

el contexto de la 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 código de error, ya que el estado anterior no tendría forma de manejarlas.

cualquier falla provocará, al final, otra transición de estado (podría ser tiempo de espera) si incluso el temporizador falla, estamos fuera de juego y podríamos quedarnos 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 determinado contacto.

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 ocurre justo antes de que calculemos la corrección de tiempo de las respuestas.

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

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido en Init.
[in] aContact
array de contactos y estado de la respuesta
[in] aSize
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 tiempo.

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido en Init.
[in] aMsgInfo
Un elemento WeaveMessageInfo que contiene información sobre la solicitud de sincronización de la hora recibida, incluida la información sobre el remitente.
[in] aLikelyhood
probabilidad de respuesta según lo solicitado por el creador
[in] aIsTimeCoordinator
true si el nodo de origen es un coordinador de sincronización de tiempo
Qué 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 solicitudes con la configuración normal

kServerState_UnreliableAfterBoot

tiempo reservado para que el servidor sincronice su hora del sistema a través de algún otro medio solo es significativo si aIsAlwaysFresh 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 falla la sincronización, incluida la sincronización automática.

Ten en cuenta que no se realizará la devolución de llamada si se llama a la función Anulación para detener la sincronización

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido 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 se produce después de que la sincronización se considera exitosa, incluida la 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 ninguna respuesta, se establecerá a NumContributor en 0. La capa de la aplicación podría reemplazar aContact[i].mResponseStatus por kResponseStatus_Invalid para que se ignore la respuesta en el cálculo.

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

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 se habilita el modo de sincronización automática, se programará una sincronización de tiempo poco después de esta devolución de llamada automáticamente. De lo contrario, la capa de la aplicación puede elegir llamar a la familia de funciones de sincronización para iniciar directamente la operación de sincronización que no esté restringida por la regla normal de no disponible en la llamada. Sin embargo, se debe tener en cuenta que esta devolución de llamada especial sigue estando sobre la pila de devolución de llamada de la capa de intercambio de Weave.

Detalles
Parámetros
[in] aApp
Un puntero para los datos de la capa de la app, establecido en Init.
[in] aNodeId
ID de nodo de solicitud
[in] aNodeAddr
solicitando la dirección del nodo

Atributos públicos

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

si no se establece, la implementación predeterminada siempre muestra un valor verdadero

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Si no se establece, el comportamiento predeterminado será recibir todos los resultados, excepto las correcciones muy pequeñas del servidor.

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

método de encriptación para la comunicación local

mKeyId

uint16_t mKeyId

ID de clave utilizado para la comunicación local

Atributos protegidos

mApp

void * mApp

puntero a datos de la capa superior

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Conexión TCP utilizada para comunicarse con el servicio.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Información de contacto que se obtuvo 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

Es la función real de este nodo.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

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

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

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

Funciones públicas

Anular

WEAVE_ERROR Abort(
  void
)

forzar al motor para que vuelva al estado inactivo y anula todo lo que esté haciendo.

Ten en cuenta que no se llamaría si la sincronización se completó correctamente o no. Se cerrarían todos los intercambios de Weave. Las conexiones TCP no se tocarían más. No se produce ninguna operación si ya estamos en estado inactivo. No está disponible en las devoluciones de llamada.

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

DisableAutoSync

void DisableAutoSync(
  void
)

inhabilitar la sincronización automática.

Solo está disponible en estado inactivo. No está disponible 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 realiza de inmediato. No está disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aSyncPeriod_msec
cantidad de ms entre la sincronización
[in] aNominalDiscoveryPeriod_msec
cantidad de ms entre la detección, si no se observa ningún error de comunicación
[in] aShortestDiscoveryPeriod_msec
tiempo más corto entre descubrimiento, en ms, si se observó un error de comunicación
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

Método get simple para 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 

y extraer la probabilidad de recursos persistentes.

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 transitorio y podría constituir la probabilidad actual en lugar de la próxima que se utilizará.

Detalles
Qué muestra
probabilidad de que se use la respuesta 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
)

inicializar este cliente.

no disponible en devoluciones de llamada

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 para el objeto Weave Exchange Manager de todo el sistema
[in] aRole
puede ser kTimeSyncRole_Client o kTimeSyncRole_Coordinator.
[in] aEncryptionType
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 usarse en la etapa de descubrimiento
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

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
)

inicializar este coordinador.

Detalles
Parámetros
[in] aExchangeMgr
Un puntero para el objeto Weave Exchange Manager de todo el sistema
[in] aEncryptionType
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
tiempo más corto entre descubrimiento, en ms, si no se observa ningún error de comunicación
[in] aShortestDiscoveryPeriod_msec
menor cantidad de ms entre detección, si se observó un error de comunicación
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

InitServer

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

Se debe llamar a la inicialización para el rol de servidor 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 datos de capas superiores, que se usa en devoluciones de llamada a una capa superior
[in] aExchangeMgr
Un puntero para el objeto Weave Exchange Manager de todo el sistema
[in] aIsAlwaysFresh
podría configurarse como verdadero para indicar que el servidor siempre está sincronizado, excepto por el tiempo inicial poco confiable. Se debe configurar como falso para el coordinador.
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

MulticastTimeChangeNotification

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

Lo llama una capa superior a la notificación de cambio de tiempo de multidifusión.

no está disponible en las 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á en esta notificación

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Lo llama una capa más alta para indicar que acabamos de terminar una ronda de sincronización de tiempo con cualquier servidor o a través de algún medio confiable, como NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Se llama desde una capa superior para indicar que acabamos de finalizar una ronda de sincronización de tiempo con otros coordinadores locales.

Detalles
Parámetros
[in] aNumContributor
cantidad de coordinadores contribuidos en 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 correctamente los recursos asignados, antes de que se pueda realizar otra llamada a cualquiera de las funciones init. No está disponible en las devoluciones de llamada.

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

Sincronizar

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sincronizar con los contactos existentes.

La operación de sincronización podría fallar si no hay contactos válidos disponibles. Configura aForceDiscoverAgain como verdadera para forzar la detección de inmediato. Solo está disponible en estado inactivo. No está disponible 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 detección
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

SyncWithNodes

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

sincronizar usando la lista de contactos proporcionada.

Se descartará la lista de contactos existente. Solo está disponible en estado inactivo. No está disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aNumNode
cantidad de contactos en un array aNodes
[in] aNodes
array de registros de contactos
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

y sincronizar mediante la conexión TCP determinada y la encriptación y el ID de clave asociados.

El llamador debe asumir la propiedad de la conexión TCP una vez finalizada la sincronización. No se reemplazará ninguna devolución de llamada para la conexión TCP, ya que se creará un nuevo intercambio de Weave y las devoluciones de llamada establecidas sobre ese contexto solo estarán disponibles en estado inactivo. No estarán disponibles en las devoluciones de llamada.

Detalles
Parámetros
[in] aConnection
Un puntero para la conexión de Weave
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

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 falso 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 horario disponible para almacenar la información de contacto

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

obtener el siguiente contacto válido e inactivo con el que hablar

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

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

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

obtener el número de respuestas “confiables” recopiladas hasta el momento.

para determinar si ya hemos recopilado 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 hablar 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 Unicast a un contacto

*rIsMessageSent se configurará para indicar si el mensaje se envió. No se muestran errores de comunicación como "address not reachable", por lo que el emisor debe verificar tanto el código de retorno como *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

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

esto se llama entre dos rondas de comunicación con el mismo nodo

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

establecer todos los contactos locales válidos en estado de inactividad y borrar la respuesta.

lo llamamos antes de empezar a comunicarnos con él uno por uno

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Crear un nuevo Weave Exchange 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 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 multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

procesar una respuesta que proviene de una solicitud unicast

_InitClient

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

inicializar para el rol de cliente.

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

Detalles
Parámetros
[in] aEncryptionType
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 usarse en la etapa de descubrimiento
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

_Servidor inicial

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

para el rol de servidor.

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

Detalles
Parámetros
[in] aIsAlwaysFresh
podría configurarse como verdadero para indicar que el servidor siempre está sincronizado, excepto por el tiempo inicial poco confiable. Se debe configurar como falso para el coordinador.
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

detener al cliente no disponible en las devoluciones de llamada

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

_Coordinador de apagado

WEAVE_ERROR _ShutdownCoordinator(
  void
)

detener al coordinador no disponible en las devoluciones de llamada

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

_Servidor apagado

WEAVE_ERROR _ShutdownServer(
  void
)

detener el servidor no disponible en las devoluciones de llamada

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación fue exitosa

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 poco confiable después del inicio.

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determina si el estado determinado es operativo.

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

Detalles
Parámetros
[in] aState
estado que se evaluará
Qué 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, muestra 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
)