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
|
Contact *
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)
|
typedefvoid(*
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)
|
typedefbool(*
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{
|
enum estado actual de este servidor de sincronización de tiempo |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
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)
|
typedefbool(*
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)
|
typedefvoid(*
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)
|
Contact *
devolver un espacio para almacenar la información de contacto
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
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
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 |
|
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 |
|
||||||||
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 |
|
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 |
|
||||||||||
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 |
|
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 |
|
||||||
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 |
|
||||||||||||
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 |
|
||||||||||||
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 |
|
||||||
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 |
|
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 |
|
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 |
|
||
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 |
|
||||
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 |
|
||
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 )
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 |
|
||||||
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 |
|
||
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 |
|
||
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 )