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

Riepilogo

Eredità

Eredita da: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Costruttori e distruttori

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
stati utilizzati per la funzione di sincronizzazione automatica.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
contesto della comunicazione.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
queste funzioni di transizione di stato sono interne e non possono restituire codice di errore perché lo stato precedente non avrebbe modo di gestirle.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Tipi pubblici

ClientState enum
stato attuale di questo client di sincronizzazione dell'ora
CommState enum
stato della comunicazione a un determinato contatto.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
avviene subito prima di calcolare la correzione temporale dalle risposte.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
per indicare che abbiamo appena ricevuto una richiesta di sincronizzazione dell'ora.
ResponseStatus enum
stato della risposta memorizzata per un determinato contatto.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
stato attuale di questo server di sincronizzazione dell'ora
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
si verifica quando la sincronizzazione viene considerata non riuscita, inclusa la sincronizzazione automatica.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
il callback viene eseguito dopo che la sincronizzazione è considerata riuscita, inclusa la sincronizzazione automatica, ma prima dell'applicazione del risultato.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
per indicare che abbiamo appena ricevuto una notifica di cambio di orario.

Attributi pubblici

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Se non impostato, l'implementazione predefinita restituisce sempre true
OnSyncSucceeded
Se il criterio non viene configurato, il comportamento predefinito riceve tutti i risultati, ad eccezione delle correzioni del server molto piccole
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
metodo di crittografia per le comunicazioni locali
mKeyId
uint16_t
ID chiave utilizzato per la comunicazione locale

Attributi protetti

mApp
void *
puntatore ai dati del livello superiore
mClientState
mConnectionToService
Connessione TCP utilizzata per comunicare con il servizio.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Informazioni di contatto apprese durante il rilevamento.
mIsAlwaysFresh
bool
mIsInCallback
bool
true se stiamo richiamando al livello superiore
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Ruolo effettivo di questo nodo.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Tieni presente che deve essere il tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno
mTimestampLastLocalSync_usec
timesync_t
Tieni presente che deve essere il tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno

Funzioni pubbliche

Abort(void)
costringe il motore a tornare allo stato di inattività, interrompendo qualsiasi attività.
DisableAutoSync(void)
void
disattiva la sincronizzazione automatica.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
attivare la sincronizzazione automatica.
GetCapacityOfContactList(void) const
int
getter semplice per il numero massimo di contatti configurati da questo motore
GetClientState(void) const
getter semplice per lo stato del client
GetNextLikelihood(void) const
int8_t
per estrarre la probabilità di eventi persistenti.
GetServerState(void) const
getter semplice per lo stato del server
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
inizializza questo client.
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)
inizializza questo coordinatore.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
l'inizializzazione per il ruolo Server deve essere chiamata come prima funzione dopo la creazione dell'oggetto se l'intenzione è quella di essere un server di sincronizzazione dell'ora.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Chiamata dal livello superiore alla notifica di modifica dell'ora multicast.
RegisterCorrectionFromServerOrNtp(void)
void
Chiamato da un livello superiore per indicare che abbiamo appena terminato una fase di sincronizzazione temporale con qualsiasi server o con mezzi affidabili come NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Chiamato da un livello superiore per indicare che abbiamo appena terminato un periodo di sincronizzazione con altri coordinatori locali.
Shutdown(void)
interrompere il servizio, indipendentemente dal ruolo.
Sync(const bool aForceDiscoverAgain)
usare i contatti esistenti.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
eseguire la sincronizzazione utilizzando l'elenco di contatti fornito.
SyncWithService(WeaveConnection *const aConnection)
eseguire la sincronizzazione utilizzando la connessione TCP specificata e la crittografia e l'ID chiave associati.

Funzioni protette

AbortOnError(const WEAVE_ERROR aCode)
void
interrompi interno se aCode non è WEAVE_NO_ERROR
AutoSyncNow(void)
void
funzione interna per avviare una sessione di sincronizzazione automatica
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)
indurre il callback al livello dell'applicazione.
ClearState(void)
void
DestroyCommContext(void)
bool
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
restituire uno spazio per archiviare i dati di contatto
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
trova il successivo contatto valido e inattivo con cui parlare
GetNumNotYetCompletedContacts(void)
int16_t
recuperare il numero di contatti validi, ma non abbiamo ancora parlato con loro.
GetNumReliableResponses(void)
int16_t
per ottenere il numero di "affidabili" risposte raccolte finora.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
invalida tutti i contatti locali
InvalidateServiceContact(void)
void
invalidare il contatto al servizio
RegisterCommError(Contact *const aContact)
void
registrare l'errore di comunicazione su un determinato contatto e abbreviare il periodo di rilevamento automatico, se necessario. aContact può essere NULL per indicare che non abbiamo nessuno con cui parlare, quindi abbreviare il periodo di rilevamento automatico
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
invia richiesta di sincronizzazione unicast a un contatto.
SetAllCompletedContactsToIdle(void)
int16_t
reimpostare tutti i contatti completati sullo stato di inattività, ma non toccare la risposta.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
Impostare tutti i contatti locali validi sullo stato di inattività e cancellare la risposta.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
Creare un nuovo Weave Exchange per la comunicazione unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
archivia i dati di contatto di un nodo che ci ha appena inviato una notifica di modifica dell'orario
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
elaborare una risposta proveniente da una richiesta multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
elaborare una risposta proveniente da una richiesta unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
viene inizializzata per il ruolo Client.
_InitServer(const bool aIsAlwaysFresh)
viene inizializzata per il ruolo Server.
_ShutdownClient(void)
il client non disponibile nei callback.
_ShutdownCoordinator(void)
arresta il coordinatore non disponibile nei callback.
_ShutdownServer(void)
Arresta il server non disponibile nei callback.

Funzioni statiche protette

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
callback da Weave Exchange quando arriva una richiesta di sincronizzazione dell'ora
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
callback da Weave Timer quando abbiamo superato la barriera di avvio inaffidabile
IsOperationalState(ClientState aState)
bool
Determina se un determinato stato è 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

stati utilizzati per la funzione di sincronizzazione automatica.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

contesto della comunicazione.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

queste funzioni di transizione di stato sono interne e non possono restituire codice di errore perché lo stato precedente non avrebbe modo di gestirle.

eventuali errori si tradurranno a un'altra transizione di stato (potrebbe essere timeout) se anche il timer non funziona, siamo fuori gioco e potremmo bloccarsi in uno stato sbagliato

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
)

Tipi pubblici

ClientState

 ClientState

stato attuale di questo client di sincronizzazione dell'ora

CommState

 CommState

stato della comunicazione a un determinato contatto.

Questo è un luogo pubblico perché Contact è pubblico

ContributorFilter

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

avviene subito prima di calcolare la correzione temporale dalle risposte.

il livello dell'applicazione potrebbe sovrascrivere aContact[i].mResponseStatus in kResponseStatus_invalid in modo che la risposta venga ignorata nel calcolo

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aContact
gamma di contatti e stato della risposta
[in] aSize
numero di record nell'array aContact

OnSyncRequestReceivedHandler

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

per indicare che abbiamo appena ricevuto una richiesta di sincronizzazione dell'ora.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aMsgInfo
Un elemento WeaveMessageInfo contenente informazioni sulla richiesta di sincronizzazione dell'ora ricevuta, incluse informazioni sul mittente.
[in] aLikelyhood
probabilità di risposta come richiesto dall'originatore
[in] aIsTimeCoordinator
true se il nodo di origine è un coordinatore di sincronizzazione del tempo
Restituisce
false e il motore ignorerà questa richiesta

ResponseStatus

 ResponseStatus

stato della risposta memorizzata per un determinato contatto.

Questo è un luogo pubblico perché Contact è pubblico

ServerState

 ServerState

stato attuale di questo server di sincronizzazione dell'ora

Proprietà
kServerState_Idle

il server è pronto a rispondere alle richieste con impostazioni normali

kServerState_UnreliableAfterBoot

Tempo riservato al server per sincronizzare l'ora del sistema con altri mezzi. Significativo solo se aIs AlwaysFresh è true quando viene chiamato Init

SyncFailedHandler

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

si verifica quando la sincronizzazione viene considerata non riuscita, inclusa la sincronizzazione automatica.

Tieni presente che la richiamata non viene eseguita se viene chiamata l'opzione Interrompi per interrompere la sincronizzazione

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aErrorCode
il motivo dell'errore

SyncSucceededHandler

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

il callback viene eseguito dopo che la sincronizzazione è considerata riuscita, inclusa la sincronizzazione automatica, ma prima dell'applicazione del risultato.

Tieni presente che l'esito positivo non significa che sono disponibili risultati applicabili. Nel caso in cui non venisse ricevuta alcuna risposta, aNumContributor verrà impostato su 0. Il livello dell'applicazione potrebbe sovrascrivere aContact[i].mResponseStatus in kResponseStatus_Failed in modo che la risposta venga ignorata nel calcolo

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aOffsetUsec
correzione in uso
[in] aIsReliable
è la correzione considerata affidabile dalla logica integrata
[in] aIsServer
la correzione proviene dai server
[in] aNumContributor
numero di nodi che ha contribuito a questa correzione. 0 significa che non ci sono risultati dall'operazione di sincronizzazione.
Restituisce
true se questo offset deve essere utilizzato per regolare l'ora di sistema. nel caso in cui aNumCollaboratore sia 0, il valore restituito verrà ignorato.

TimeChangeNotificationHandler

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

per indicare che abbiamo appena ricevuto una notifica di cambio di orario.

se viene attivata la modalità di sincronizzazione automatica, la sincronizzazione dell'ora verrà programmata subito dopo questo callback automatico. altrimenti il livello dell'applicazione può scegliere di chiamare la famiglia di funzioni Sync per avviare direttamente un'operazione di sincronizzazione non limitata dalla normale regola non disponibile in caso di richiamata. devi però notare che questo callback speciale è ancora in cima allo stack di callback dello strato di scambio Weave.

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello dell'app, impostato in Init.
[in] aNodeId
che richiede l'ID nodo
[in] aNodeAddr
indirizzo nodo che richiede la richiesta

Attributi pubblici

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Se non impostato, l'implementazione predefinita restituisce sempre true

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Se il criterio non viene configurato, il comportamento predefinito riceve tutti i risultati, ad eccezione delle correzioni del server molto piccole

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

metodo di crittografia per le comunicazioni locali

mKeyId

uint16_t mKeyId

ID chiave utilizzato per la comunicazione locale

Attributi protetti

mApp

void * mApp

puntatore ai dati del livello superiore

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Connessione TCP utilizzata per comunicare con il servizio.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Informazioni di contatto apprese durante il rilevamento.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true se stiamo richiamando al livello superiore

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Ruolo effettivo di questo nodo.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Tieni presente che deve essere il tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Tieni presente che deve essere il tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno

Funzioni pubbliche

Interrompi

WEAVE_ERROR Abort(
  void
)

costringe il motore a tornare allo stato di inattività, interrompendo qualsiasi attività.

Tieni presente che non viene richiesta nessuna sincronizzazione riuscita o non riuscita. tutte le piattaforme Weave verrebbero chiuse. le connessioni TCP non verrebbero ulteriormente toccate. nessuna operazione se siamo già in stato di inattività. non disponibile nei callback.

Dettagli
Restituisce
WEAVE_NO_ERROR all'esito positivo

DisableAutoSync

void DisableAutoSync(
  void
)

disattiva la sincronizzazione automatica.

disponibile solo in stato di inattività. non disponibile nei callback.

EnableAutoSync

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

attivare la sincronizzazione automatica.

disponibile solo in stato di inattività. la scoperta avviene immediatamente. non disponibile nei callback.

Dettagli
Parametri
[in] aSyncPeriod_msec
numero di msec tra la sincronizzazione
[in] aNominalDiscoveryPeriod_msec
numero di msec tra il rilevamento, se non si osserva alcun errore di comunicazione
[in] aShortestDiscoveryPeriod_msec
il tempo che intercorre tra il rilevamento, in msec, se si è osservato un errore di comunicazione
Restituisce
WEAVE_NO_ERROR all'esito positivo

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

getter semplice per il numero massimo di contatti configurati da questo motore

GetClientState

ClientState GetClientState(
  void
) const 

getter semplice per lo stato del client

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

per estrarre la probabilità di eventi persistenti.

il risultato sarà valido solo al termine dell'operazione di sincronizzazione, entro i callback di OnSyncSucceeded e OnSyncFailed. altrimenti è transitorio e potrebbe essere la probabilità attuale piuttosto che quella successiva da utilizzare.

Dettagli
Restituisce
probabilità che la risposta venga utilizzata nella prossima richiesta

GetServerState

ServerState GetServerState(
  void
) const 

getter semplice per lo stato del server

InitClient

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

inizializza questo client.

non disponibile nei callback

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello superiore, utilizzato nei callback al livello superiore.
[in] aExchangeMgr
Un puntatore all'oggetto Weave Exchange Manager a livello di sistema
[in] aRole
può essere kTimeSyncRole_Client o kTimeSyncRole_Coordinator
[in] aEncryptionType
tipo di crittografia da utilizzare per richieste e risposte
[in] aKeyId
l'ID chiave da utilizzare per richieste e risposte
[in] aInitialLikelyhood
probabilità iniziale di essere utilizzato per la fase di rilevamento
Restituisce
WEAVE_NO_ERROR all'esito positivo

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
)

inizializza questo coordinatore.

Dettagli
Parametri
[in] aExchangeMgr
Un puntatore all'oggetto Weave Exchange Manager a livello di sistema
[in] aEncryptionType
tipo di crittografia da utilizzare per richieste e risposte
[in] aKeyId
l'ID chiave da utilizzare per richieste e risposte
[in] aSyncPeriod_msec
numero di msec tra la sincronizzazione
[in] aNominalDiscoveryPeriod_msec
il tempo che intercorre tra il rilevamento, in msec, se non viene osservato alcun errore di comunicazione
[in] aShortestDiscoveryPeriod_msec
il numero di msec minimo tra il rilevamento, se si è osservato un errore di comunicazione
Restituisce
WEAVE_NO_ERROR all'esito positivo

InitServer

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

l'inizializzazione per il ruolo Server deve essere chiamata come prima funzione dopo la creazione dell'oggetto se l'intenzione è quella di essere un server di sincronizzazione dell'ora.

non disponibile nei callback

Dettagli
Parametri
[in] aApp
Un puntatore ai dati del livello superiore, utilizzato nei callback al livello superiore.
[in] aExchangeMgr
Un puntatore all'oggetto Weave Exchange Manager a livello di sistema
[in] aIsAlwaysFresh
potrebbe essere impostato su true per indicare che il server è sempre sincronizzato, ad eccezione del tempo iniziale inaffidabile. deve essere impostato su false per Coordinator.
Restituisce
WEAVE_NO_ERROR all'esito positivo

MulticastTimeChangeNotification

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

Chiamata dal livello superiore alla notifica di modifica dell'ora multicast.

non disponibile nei callback.

Dettagli
Parametri
[in] aEncryptionType
tipo di crittografia da usare per questa notifica
[in] aKeyId
ID chiave da utilizzare per questa notifica

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Chiamato da un livello superiore per indicare che abbiamo appena terminato una fase di sincronizzazione temporale con qualsiasi server o con mezzi affidabili come NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Chiamato da un livello superiore per indicare che abbiamo appena terminato un periodo di sincronizzazione con altri coordinatori locali.

Dettagli
Parametri
[in] aNumContributor
numero di coordinatori che hanno contribuito a questa sincronizzazione temporale

Arresto

WEAVE_ERROR Shutdown(
  void
)

interrompere il servizio, indipendentemente dal ruolo.

Questa funzione deve essere chiamata per recuperare correttamente le risorse allocate prima che possa essere effettuata un'altra chiamata a una qualsiasi funzione init. non disponibile nei callback.

Dettagli
Restituisce
WEAVE_NO_ERROR all'esito positivo

Sincronizza

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

usare i contatti esistenti.

l'operazione di sincronizzazione potrebbe non riuscire se non sono disponibili contatti validi. imposta aForceDiscoverAgain su true per forzare immediatamente il rilevamento. disponibile solo in stato di inattività. non disponibile nei callback.

Dettagli
Parametri
[in] aForceDiscoverAgain
true se tutti i contatti esistenti devono essere cancellati ed eseguita l'operazione di rilevamento
Restituisce
WEAVE_NO_ERROR all'esito positivo

SyncWithNodes

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

eseguire la sincronizzazione utilizzando l'elenco di contatti fornito.

viene cancellato l'elenco contatti esistente. disponibile solo in stato di inattività. non disponibile nei callback.

Dettagli
Parametri
[in] aNumNode
numero di contatti negli aNodi di array
[in] aNodes
array di record dei contatti
Restituisce
WEAVE_NO_ERROR all'esito positivo

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

eseguire la sincronizzazione utilizzando la connessione TCP specificata e la crittografia e l'ID chiave associati.

Il chiamante deve assumere la proprietà della connessione TCP al termine della sincronizzazione. nessun callback verrebbe sovrascritto per la connessione TCP, poiché verrebbe creato un nuovo Weave Exchange e i callback impostati in cima a quel contesto sono disponibili solo in stato inattivo. non disponibile nei callback.

Dettagli
Parametri
[in] aConnection
Un puntatore alla connessione Weave
Restituisce
WEAVE_NO_ERROR all'esito positivo

TimeSyncNode

 TimeSyncNode(
  void
)

Funzioni protette

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

interrompi interno se aCode non è WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

funzione interna per avviare una sessione di sincronizzazione automatica

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
)

indurre il callback al livello dell'applicazione.

Impostare aIsSuccessful su false per indurre il callback di errore

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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

restituire uno spazio per archiviare i dati di contatto

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

trova il successivo contatto valido e inattivo con cui parlare

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

recuperare il numero di contatti validi, ma non abbiamo ancora parlato con loro.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

per ottenere il numero di "affidabili" risposte raccolte finora.

per determinare se abbiamo raccolto un numero sufficiente di risposte

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

invalida tutti i contatti locali

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

invalidare il contatto al servizio

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

registrare l'errore di comunicazione su un determinato contatto e abbreviare il periodo di rilevamento automatico, se necessario. aContact può essere NULL per indicare che non abbiamo nessuno con cui parlare, quindi abbreviare il periodo di rilevamento automatico

SendSyncRequest

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

invia richiesta di sincronizzazione unicast a un contatto.

*rIsMessageSent sarà impostato per indicare se il messaggio è stato inviato. gli errori di comunicazione come l'indirizzo non raggiungibile non vengono restituiti, quindi il chiamante controllerà sia il codice di ritorno che *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

reimpostare tutti i contatti completati sullo stato di inattività, ma non toccare la risposta.

questo viene chiamato tra due cicli di comunicazione verso lo stesso nodo

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

Impostare tutti i contatti locali validi sullo stato di inattività e cancellare la risposta.

la chiamata viene chiamata prima di iniziare a contattarli uno alla volta

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Creare un nuovo Weave Exchange per la comunicazione unicast

StoreNotifyingContact

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

archivia i dati di contatto di un nodo che ci ha appena inviato una notifica di modifica dell'orario

UpdateMulticastSyncResponse

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

elaborare una risposta proveniente da una richiesta multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

elaborare una risposta proveniente da una richiesta unicast

_InitClient

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

vengono inizializzate per il ruolo Client.

Destinato all'utilizzo interno dalla famiglia di funzioni pubbliche Init. È necessario impostare mClientState prima del reso. non disponibile nei callback

Dettagli
Parametri
[in] aEncryptionType
tipo di crittografia da utilizzare per richieste e risposte
[in] aKeyId
l'ID chiave da utilizzare per richieste e risposte
[in] aInitialLikelyhood
probabilità iniziale di essere utilizzato per la fase di rilevamento
Restituisce
WEAVE_NO_ERROR all'esito positivo

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

vengono inizializzate per il ruolo Server.

Destinato all'utilizzo interno dalla famiglia di funzioni pubbliche Init. È necessario impostare mClientState prima del reso. non disponibile nei callback

Dettagli
Parametri
[in] aIsAlwaysFresh
potrebbe essere impostato su true per indicare che il server è sempre sincronizzato, ad eccezione del tempo iniziale inaffidabile. deve essere impostato su false per Coordinator.
Restituisce
WEAVE_NO_ERROR all'esito positivo

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

il client non disponibile nei callback.

Dettagli
Restituisce
WEAVE_NO_ERROR all'esito positivo

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

arresta il coordinatore non disponibile nei callback.

Dettagli
Restituisce
WEAVE_NO_ERROR all'esito positivo

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

Arresta il server non disponibile nei callback.

Dettagli
Restituisce
WEAVE_NO_ERROR all'esito positivo

Funzioni statiche protette

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
)

callback da Weave Exchange quando arriva una richiesta di sincronizzazione dell'ora

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
)

callback da Weave Timer quando abbiamo superato la barriera di avvio inaffidabile

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Determina se un determinato stato è operativo.

Metodo pratico per determinare se ClientState indica lo stato operativo, ovvero il client ha completato l'inizializzazione e non è in procinto di arresto.

Dettagli
Parametri
[in] aState
stato da valutare
Restituisce
true se lo stato scende dopo il completamento dell'inizializzazione e prima dell'inizio dell'arresto, false negli altri casi.

_OnSyncSucceeded

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