nl :: Tejido:: Perfiles: Hora:: TimeSyncNode

Resumen

Herencia

Hereda de: nl :: Armadura :: Perfiles :: :: Tiempo _ 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
contexto de comunicación.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
estas funciones de transición de estado son internas y no pueden devolver 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 enumeración
estado actual de este Time Sync Client
CommState enumeración
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 a partir de las respuestas.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
devolución de llamada para indicar que acabamos de recibir una solicitud de sincronización de hora.
ResponseStatus enumeración
estado de la respuesta almacenada a un determinado contacto.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
enumeración
estado actual de este servidor de sincronización horaria
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
la devolución de llamada ocurre cuando la sincronización se considera fallida, 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(*
devolución de llamada 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 devuelve verdadero
OnSyncSucceeded
si no se establece, el comportamiento predeterminado es tomar todos los resultados, excepto las pequeñas correcciones del servidor
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
método de cifrado para la comunicación local
mKeyId
uint16_t
ID de clave utilizada para la comunicación local

Atributos protegidos

mApp
void *
puntero a datos de capa superior
mClientState
mConnectionToService
Conexión TCP utilizada para hablar con el servicio.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Contacto información aprendida a lo largo de descubrimiento.
mIsAlwaysFresh
bool
mIsInCallback
bool
cierto si estamos en una devolución de llamada a una capa superior
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Rol real de este nodo.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
tenga en cuenta que tiene que ser el tiempo de arranque, ya que necesitamos una compensación por el tiempo de suspensión
mTimestampLastLocalSync_usec
timesync_t
tenga en cuenta que tiene que ser el tiempo de arranque, ya que necesitamos una compensación por el tiempo de suspensión

Funciones publicas

Abort (void)
forzar al motor a volver al estado inactivo, abortando todo lo que esté haciendo.
DisableAutoSync (void)
void
deshabilitar 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
captador simple para el número máximo de contactos que este motor está configurado para almacenar
GetClientState (void) const
captador simple para el estado del cliente
GetNextLikelihood (void) const
int8_t
extraer la probabilidad de persistente.
GetServerState (void) const
captador simple para el estado del servidor
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicialice 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)
inicialice este coordinador.
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
initialize 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
Llamado por la capa superior a la notificación de cambio de hora de multidifusión.
RegisterCorrectionFromServerOrNtp (void)
void
Lo llama la capa superior para indicar que acabamos de finalizar una ronda de sincronización de tiempo con cualquier servidor o mediante algún medio confiable como NTP.
RegisterLocalSyncOperation (const uint8_t aNumContributor)
void
Lo llama la capa superior para indicar que acabamos de finalizar una ronda de sincronización de tiempo con otros coordinadores locales.
Shutdown (void)
detener el servicio, independientemente del papel que desempeñe.
Sync (const bool aForceDiscoverAgain)
sincronizar usando contactos existentes.
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[])
sincronizar usando la lista de contactos dada.
SyncWithService ( WeaveConnection *const aConnection)
sincronizar usando la conexión TCP dada y el cifrado asociado y el ID de clave.

Funciones protegidas

AbortOnError (const WEAVE_ERROR aCode)
void
aborto interno si un código 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 devolución de llamada a la capa de aplicación.
ClearState (void)
void
DestroyCommContext (void)
bool
cerrar la armadura de ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
devolver un espacio para almacenar información de contacto
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
conseguir el siguiente contacto válido e inactivo para hablar
GetNumNotYetCompletedContacts (void)
int16_t
obtener la cantidad de contactos que son válidos, pero aún no hemos hablado con ellos.
GetNumReliableResponses (void)
int16_t
Obtenga la cantidad 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 un error de comunicación en un determinado contacto y acortar el período de descubrimiento automático si es necesario un contacto puede ser NULO para indicar que no tenemos a nadie con quien hablar y, por lo tanto, acortar el período de descubrimiento automático
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
enviar una solicitud de sincronización de unidifusión a un contacto.
SetAllCompletedContactsToIdle (void)
int16_t
restablezca todos los contactos completados al estado inactivo nuevamente, pero no toque la respuesta.
SetAllValidContactsToIdleAndInvalidateResponse (void)
int16_t
establezca todos los contactos locales válidos en estado inactivo y borre la respuesta.
SetClientState (const ClientState state)
void
SetupUnicastCommContext ( Contact *const aContact)
crear un nuevo Weave Exchange para la comunicación unidifusión
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 procedente de una solicitud de multidifusión
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse)
void
procesar una respuesta procedente de una solicitud de unidifusión
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inicializar para el rol de Cliente.
_InitServer (const bool aIsAlwaysFresh)
inicializar para el rol de servidor.
_ShutdownClient (void)
detener al cliente no disponible en devoluciones de llamada.
_ShutdownCoordinator (void)
detener el coordinador no disponible en 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 tiempo
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 arranque
IsOperationalState ( ClientState aState)
bool
Determine si el estado dado 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

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

cualquier falla resultará en eventualmente otra transición de estado (podría ser un tiempo de espera) si incluso el temporizador falla, estamos fuera de truco y podríamos colgar en algún 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

Estado del cliente

 ClientState

estado actual de este Time Sync Client

CommState

 CommState

estado de la comunicación con un determinado contacto.

Esto es en el público porque de contacto es en público

ColaboradorFiltro

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 a partir de las respuestas.

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

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa de la aplicación, establecido en Init.
[in] aContact
variedad de contactos y estado de respuesta
[in] aSize
número de registros en la matriz aContact

OnSyncRequestReceivedHandler

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

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

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa de la aplicación, establecido en Init.
[in] aMsgInfo
A WeaveMessageInfo que contiene información acerca de la solicitud de sincronización de tiempo recibida, incluyendo información sobre el remitente.
[in] aLikelyhood
probabilidad de respuesta según lo solicitado por el originador
[in] aIsTimeCoordinator
Verdadero si el nodo de origen es un Coordinador de sincronización de tiempo
Devoluciones
falso y el motor ignorará esta solicitud

ResponseStatus

 ResponseStatus

estado de la respuesta almacenada a un determinado contacto.

Esto es en el público porque de contacto es en público

ServerState

 ServerState

estado actual de este servidor de sincronización horaria

Propiedades
kServerState_Idle

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

kServerState_UnreliableAfterBoot

tiempo reservado para que el servidor sincronice la hora del sistema a través de otros medios, 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 ocurre cuando se considera que la sincronización ha fallado, incluida la sincronización automática.

tenga en cuenta que la devolución de llamada no ocurre si se llama a Abort para detener la sincronización

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa de la aplicación, establecido en Init.
[in] aErrorCode
razón del fracaso

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.

Tenga en cuenta que el éxito no significa que tengamos resultados aplicables. En caso de que no se reciba respuesta, aNumContributor se establecerá en 0. La capa de aplicación podría sobrescribir aContact [i] .mResponseStatus en kResponseStatus_Invalid para que la respuesta se ignore en el cálculo.

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa de la aplicación, establecido en Init.
[in] aOffsetUsec
cantidad de corrección en usoc
[in] aIsReliable
es la corrección considerada confiable por la lógica incorporada
[in] aIsServer
¿La corrección proviene del servidor (es)?
[in] aNumContributor
número de nodos que contribuyeron a esta corrección. 0 significa que no hay resultados de la operación de sincronización.
Devoluciones
Es verdadero si este desplazamiento se utilizará para ajustar la hora del sistema. en caso de que aNumContributor sea 0, el valor de retorno se ignorará.

TimeChangeNotificationHandler

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

devolución de llamada 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 hora poco después de esta devolución de llamada automáticamente. de lo contrario, la capa de aplicación puede optar por llamar a la familia de funciones Sync para iniciar directamente la operación de sincronización no restringida por la regla normal de no disponible en la devolución de llamada. sin embargo, debe tenerse en cuenta que esta devolución de llamada especial sigue estando en la parte superior de la pila de devolución de llamada de la capa de intercambio de Weave.

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa de la aplicación, establecido 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 se establece, la implementación predeterminada siempre devuelve verdadero

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

si no se establece, el comportamiento predeterminado es tomar todos los resultados, excepto las pequeñas correcciones del servidor

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

método de cifrado para la comunicación local

mKeyId

uint16_t mKeyId

ID de clave utilizada para la comunicación local

Atributos protegidos

mApp

void * mApp

puntero a datos de capa superior

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Conexión TCP utilizada para hablar con el servicio.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Contacto información aprendida a lo largo de descubrimiento.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

cierto si estamos en una devolución de llamada a una 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

tenga en cuenta que tiene que ser el tiempo de arranque, ya que necesitamos una compensación por el tiempo de suspensión

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

tenga en cuenta que tiene que ser el tiempo de arranque, ya que necesitamos una compensación por el tiempo de suspensión

Funciones publicas

Abortar

WEAVE_ERROR Abort(
  void
)

forzar al motor a volver al estado inactivo, abortando todo lo que esté haciendo.

tenga en cuenta que no se llamará a la sincronización correcta o incorrecta. todos los intercambios de tejidos estarían cerrados. Las conexiones TCP no se tocarían más. ninguna operación si ya estamos en estado inactivo. no disponible en devoluciones de llamada.

Detalles
Devoluciones
WEAVE_NO_ERROR en caso de éxito

DisableAutoSync

void DisableAutoSync(
  void
)

deshabilitar la sincronización automática.

solo disponible en estado inactivo. no 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 disponible en estado inactivo. el descubrimiento ocurre de inmediato. no disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aSyncPeriod_msec
número de mseg entre sincronizaciones
[in] aNominalDiscoveryPeriod_msec
número de milisegundos entre el descubrimiento, si no se observa ningún error de comunicación
[in] aShortestDiscoveryPeriod_msec
el tiempo más corto entre el descubrimiento, en ms, si se ha observado un error de comunicación
Devoluciones
WEAVE_NO_ERROR en caso de éxito

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

captador simple para el número máximo de contactos que este motor está configurado para almacenar

GetClientState

ClientState GetClientState(
  void
) const 

captador simple para el estado del cliente

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

extraer la probabilidad de persistente.

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 ser la probabilidad actual en lugar de la siguiente que se utilizará.

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

GetServerState

ServerState GetServerState(
  void
) const 

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

inicialice este cliente.

no disponible en devoluciones de llamada

Detalles
Parámetros
[in] aApp
Un puntero a los datos de la capa superior, que se utiliza en devoluciones de llamada a la capa superior.
[in] aExchangeMgr
Un puntero al objeto Weave Exchange Manager de todo el sistema
[in] aRole
puede ser kTimeSyncRole_Client o kTimeSyncRole_Coordinator
[in] aEncryptionType
tipo de cifrado que se utilizará para solicitudes y respuestas
[in] aKeyId
ID de clave que se utilizará para solicitudes y respuestas
[in] aInitialLikelyhood
probabilidad inicial de ser utilizado para la etapa de descubrimiento
Devoluciones
WEAVE_NO_ERROR en caso de éxito

Coordinador inicial

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
)

inicialice este coordinador.

Detalles
Parámetros
[in] aExchangeMgr
Un puntero al objeto Weave Exchange Manager de todo el sistema
[in] aEncryptionType
tipo de cifrado que se utilizará para solicitudes y respuestas
[in] aKeyId
ID de clave que se utilizará para solicitudes y respuestas
[in] aSyncPeriod_msec
número de mseg entre sincronizaciones
[in] aNominalDiscoveryPeriod_msec
el tiempo más corto entre el descubrimiento, en mseg, si no se observa ningún error de comunicación
[in] aShortestDiscoveryPeriod_msec
el menor número de mseg entre el descubrimiento, si se ha observado un error de comunicación
Devoluciones
WEAVE_NO_ERROR en caso de éxito

InitServer

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

initialize 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 a los datos de la capa superior, que se utiliza en devoluciones de llamada a la capa superior.
[in] aExchangeMgr
Un puntero al objeto Weave Exchange Manager de todo el sistema
[in] aIsAlwaysFresh
podría establecerse en verdadero para indicar que el servidor siempre está sincronizado, excepto durante el tiempo inicial no confiable. se establecerá en falso para el Coordinador.
Devoluciones
WEAVE_NO_ERROR en caso de éxito

MulticastTimeChangeNotification

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

Llamado por la capa superior a la notificación de cambio de hora de multidifusión.

no disponible en devoluciones de llamada.

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

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Lo llama la capa superior para indicar que acabamos de finalizar una ronda de sincronización de tiempo con cualquier servidor o mediante algún medio confiable como NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

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

Detalles
Parámetros
[in] aNumContributor
número de coordinadores que contribuyeron a esta sincronización horaria

Cerrar

WEAVE_ERROR Shutdown(
  void
)

detener el servicio, independientemente del papel que desempeñe.

Se debe llamar a esta función para recuperar correctamente los recursos asignados, antes de que se pueda realizar otra llamada a cualquiera de las funciones de inicio. no disponible en devoluciones de llamada.

Detalles
Devoluciones
WEAVE_NO_ERROR en caso de éxito

Sincronizar

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sincronizar usando contactos existentes.

La operación de sincronización podría fallar si no hay contactos válidos disponibles. establezca aForceDiscoverAgain en true para forzar el descubrimiento de inmediato. solo disponible en estado inactivo. no disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aForceDiscoverAgain
Verdadero si todos los contactos existentes deben limpiarse y realizarse la operación de descubrimiento.
Devoluciones
WEAVE_NO_ERROR en caso de éxito

SyncWithNodes

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

sincronizar usando la lista de contactos dada.

la lista de contactos existente se eliminaría. solo disponible en estado inactivo. no disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aNumNode
número de contacto en la matriz aNodes
[in] aNodes
conjunto de registros de contactos
Devoluciones
WEAVE_NO_ERROR en caso de éxito

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

sincronizar usando la conexión TCP dada y el cifrado asociado y el ID de clave.

la persona que llama debe tomar posesión de la conexión TCP después de que finalice la sincronización. no se sobrescribirá ninguna devolución de llamada para la conexión TCP, ya que se crearía un nuevo Weave Exchange y las devoluciones de llamada se establecerían en la parte superior de ese contexto solo disponibles en estado inactivo. no disponible en devoluciones de llamada.

Detalles
Parámetros
[in] aConnection
Un puntero para la conexión de tejido
Devoluciones
WEAVE_NO_ERROR en caso de éxito

TimeSyncNode

 TimeSyncNode(
  void
)

Funciones protegidas

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

aborto interno si un código 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 devolución de llamada a la capa de aplicación.

establezca aIsSuccessful en falso para inducir la devolución de llamada de error

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

cerrar la armadura de ExchangeContext

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContacto

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

devolver un espacio para almacenar información de contacto

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

conseguir el siguiente contacto válido e inactivo para hablar

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

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

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

Obtenga la cantidad de respuestas "confiables" recopiladas hasta el momento.

llamado para determinar si hemos recopilado suficiente número 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 un error de comunicación en un determinado contacto y acortar el período de descubrimiento automático si es necesario un contacto puede ser NULO para indicar que no tenemos a nadie con quien hablar y, por lo tanto, acortar el período de descubrimiento automático

SendSyncRequest

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

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

* rIsMessageSent se configurará para indicar si el mensaje ha sido enviado. los errores de comunicación como la dirección no accesible no se devuelven, por lo que la persona que llama debe verificar tanto el código de retorno como * rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

restablezca todos los contactos completados al estado inactivo nuevamente, pero no toque la respuesta.

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

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

establezca todos los contactos locales válidos en estado inactivo y borre la respuesta.

esto se llama 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 Weave Exchange para la comunicación unidifusión

TiendaNotificandoContacto

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 procedente de una solicitud de multidifusión

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

procesar una respuesta procedente de una solicitud de unidifusión

_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. Debe establecer mClientState antes de regresar. no disponible en devoluciones de llamada

Detalles
Parámetros
[in] aEncryptionType
tipo de cifrado que se utilizará para solicitudes y respuestas
[in] aKeyId
ID de clave que se utilizará para solicitudes y respuestas
[in] aInitialLikelyhood
probabilidad inicial de ser utilizado para la etapa de descubrimiento
Devoluciones
WEAVE_NO_ERROR en caso de éxito

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

inicializar para el rol de servidor.

Diseñado para ser utilizado internamente por la familia Init de funciones públicas. Debe establecer mClientState antes de regresar. no disponible en devoluciones de llamada

Detalles
Parámetros
[in] aIsAlwaysFresh
podría establecerse en verdadero para indicar que el servidor siempre está sincronizado, excepto durante el tiempo inicial no confiable. se establecerá en falso para el Coordinador.
Devoluciones
WEAVE_NO_ERROR en caso de éxito

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

detener al cliente no disponible en devoluciones de llamada.

Detalles
Devoluciones
WEAVE_NO_ERROR en caso de éxito

_Coordinador de apagado

WEAVE_ERROR _ShutdownCoordinator(
  void
)

detener el coordinador no disponible en devoluciones de llamada.

Detalles
Devoluciones
WEAVE_NO_ERROR en caso de éxito

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

detener el servidor no disponible en devoluciones de llamada.

Detalles
Devoluciones
WEAVE_NO_ERROR en caso de éxito

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 tiempo

HandleTimeChangeNotification

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

ManejarUnicastResponseTimeout

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 arranque

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determine si el estado dado es operativo.

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

Detalles
Parámetros
[in] aState
estado a evaluar
Devoluciones
Es verdadero si el estado cae después de que se haya completado la inicialización y antes de que comience el apagado, falso en caso contrario.

_OnSyncSucceeded

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