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 funzionalità di sincronizzazione automatica.
|
mIsUrgentDiscoveryPending
|
bool
|
mNominalDiscoveryPeriod_msec
|
int32_t
|
mShortestDiscoveryPeriod_msec
|
int32_t
|
mSyncPeriod_msec
|
int32_t
|
mActiveContact
|
Contact *
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 temporale |
CommState
|
enum lo stato della comunicazione a un determinato contatto. |
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
|
typedefvoid(*
il callback avviene subito prima del calcolo della correzione temporale dalle risposte. |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
per indicare che abbiamo appena ricevuto una richiesta di sincronizzazione dell'ora. |
ResponseStatus
|
enum lo stato della risposta memorizzata per un determinato contatto. |
ServerState{
|
enum stato attuale di questo server Time Sync |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
il callback 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)
|
typedefbool(*
il callback avviene dopo che la sincronizzazione è considerata riuscita, inclusa la sincronizzazione automatica, ma prima che il risultato venga applicato. |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
per indicare che abbiamo appena ricevuto una notifica di cambio di orario. |
Attributi pubblici |
|
---|---|
FilterTimeCorrectionContributor
|
|
OnSyncFailed
|
|
OnSyncRequestReceived
|
se non viene impostato, l'implementazione predefinita restituisce sempre true.
|
OnSyncSucceeded
|
Se non viene configurato, il comportamento predefinito prevede tutti i risultati, ad eccezione delle correzioni molto piccole del server
|
OnTimeChangeNotificationReceived
|
|
mEncryptionType
|
uint8_t
metodo di crittografia per la comunicazione locale
|
mKeyId
|
uint16_t
ID chiave utilizzato per la comunicazione locale
|
Attributi protetti |
|
---|---|
mApp
|
void *
puntatore a dati di 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 ci troviamo in un callback di livello superiore
|
mLastLikelihoodSent
|
int8_t
|
mNumContributorInLastLocalSync
|
uint8_t
|
mRole
|
TimeSyncRole
Ruolo effettivo del nodo.
|
mServerState
|
|
mServiceContact
|
|
mTimestampLastCorrectionFromServerOrNtp_usec
|
timesync_t
tieni presente che deve essere tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno
|
mTimestampLastLocalSync_usec
|
timesync_t
tieni presente che deve essere tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno
|
Funzioni pubbliche |
|
---|---|
Abort(void)
|
il motore torna allo stato di inattività, interrompendo tutte le operazioni.
|
DisableAutoSync(void)
|
void
disattiva la sincronizzazione automatica.
|
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
|
attiva la sincronizzazione automatica.
|
GetCapacityOfContactList(void) const
|
int
semplice getter per il numero massimo di contatti che questo motore è configurato per archiviare
|
GetClientState(void) const
|
getter semplice per lo stato client
|
GetNextLikelihood(void) const
|
int8_t
per estrarre la probabilità di permanente.
|
GetServerState(void) const
|
semplice getter per lo stato del server
|
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
inizializzare 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)
|
inizializzare 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 è un server di sincronizzazione temporale.
|
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
|
void
Chiamata dal livello superiore alla notifica multicast del cambio di data/ora.
|
RegisterCorrectionFromServerOrNtp(void)
|
void
Chiamato dal livello più alto per indicare che abbiamo appena terminato una sincronizzazione di round di sincronizzazione con qualsiasi server o tramite alcuni mezzi affidabili come NTP.
|
RegisterLocalSyncOperation(const uint8_t aNumContributor)
|
void
Chiamato dal livello più alto per indicare che abbiamo appena terminato una sincronizzazione di round di sincronizzazione con altri coordinatori locali.
|
Shutdown(void)
|
interrompere il servizio, a prescindere dal suo ruolo.
|
Sync(const bool aForceDiscoverAgain)
|
sincronizzarli usando i contatti esistenti.
|
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
|
sincronizzarsi utilizzando l'elenco di contatti fornito.
|
SyncWithService(WeaveConnection *const aConnection)
|
sincronizzarsi utilizzando la connessione TCP specificata e la crittografia e l'ID chiave associati.
|
Funzioni protette |
|
---|---|
AbortOnError(const WEAVE_ERROR aCode)
|
void
interruzione interna 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)
|
per indurre il callback al livello dell'applicazione.
|
ClearState(void)
|
void
|
DestroyCommContext(void)
|
bool
chiudi il riquadro ExchangeContext di Weave
|
EndLocalSyncAndTryCalculateTimeFix(void)
|
void
|
EndServiceSyncAndTryCalculateTimeFix(void)
|
void
|
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
|
Contact *
restituire uno slot in cui archiviare i dati di contatto
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
trova il prossimo contatto valido e inattivo con cui parlare
|
GetNumNotYetCompletedContacts(void)
|
int16_t
ottenere il numero di contatti validi, ma non abbiamo ancora parlato.
|
GetNumReliableResponses(void)
|
int16_t
ottenere il numero di risposte "affidabili" raccolte finora.
|
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
|
|
InvalidateAllContacts(void)
|
void
invalida tutti i contatti locali
|
InvalidateServiceContact(void)
|
void
invalida il contatto al servizio
|
RegisterCommError(Contact *const aContact)
|
void
registra l'errore di comunicazione per un determinato contatto e riduci il periodo di individuazione automatica, se necessario. aContact può essere NULL per indicare che non abbiamo nessuno con cui parlare e quindi abbreviare il periodo di individuazione automatica
|
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
|
invia richiesta di sincronizzazione unicast a un contatto.
|
SetAllCompletedContactsToIdle(void)
|
int16_t
Reimpostare di nuovo 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
Archiviare le informazioni di contatto di un nodo che ci ha appena inviato una notifica di modifica dell'ora
|
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)
|
inizializzare per il ruolo Client.
|
_InitServer(const bool aIsAlwaysFresh)
|
inizializzare per il ruolo Server.
|
_ShutdownClient(void)
|
il client non è disponibile nei callback.
|
_ShutdownCoordinator(void)
|
il coordinatore non è disponibile nei callback.
|
_ShutdownServer(void)
|
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
richiamata da Weave Timer quando abbiamo superato la barriera dopo l'avvio
|
IsOperationalState(ClientState aState)
|
bool
Determina se uno stato specificato è 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 funzionalità di sincronizzazione automatica.
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 )
queste funzioni di transizione di stato sono interne e non possono restituire codice di errore perché lo stato precedente non avrebbe modo di gestirle.
qualsiasi errore si tradurrà in un'altra transizione di stato (potrebbe essere timeout) se anche il timer ha esito negativo, il nostro sistema è fuori gioco e potrebbe 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 temporale
CommState
CommState
lo stato della comunicazione a un determinato contatto.
Questa informazione è pubblica perché Contatto è in pubblico
ContributorFilter
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
il callback avviene subito prima del calcolo della correzione temporale dalle risposte.
il livello di applicazione potrebbe sovrascrivere aContact[i].mResponseStatus in kResponseStatus_Invalid in modo da ignorare la risposta nel calcolo
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
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 |
|
||||||||
Restituisce |
false e il motore ignorerà questa richiesta
|
ResponseStatus
ResponseStatus
lo stato della risposta memorizzata per un determinato contatto.
Questa informazione è pubblica perché Contatto è in pubblico
ServerState
ServerState
stato attuale di questo server Time Sync
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 significativi solo se aIsalwaysFresh è vero quando viene chiamato Init |
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
il callback si verifica quando la sincronizzazione viene considerata non riuscita, inclusa la sincronizzazione automatica.
tieni presente che il callback non avviene se viene chiamato Abort per interrompere la sincronizzazione
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
il callback avviene dopo che la sincronizzazione è considerata riuscita, inclusa la sincronizzazione automatica, ma prima che il risultato venga applicato.
Tieni presente che l'esito positivo non indica che i risultati sono disponibili. Nel caso in cui non venisse ricevuta alcuna risposta, aNumContributor verrebbe impostato su 0. Il livello applicazione potrebbe sovrascrivere aContact[i].mResponseStatus in kResponseStatus_Invalid in modo che la risposta venisse ignorata nel calcolo
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Restituisce |
true se questo offset deve essere utilizzato per regolare l'ora del sistema. Nel caso in cui aNumContributor 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 la modalità di sincronizzazione automatica è attivata, verrà pianificata automaticamente una sincronizzazione temporale poco dopo questo callback. In caso contrario, il livello dell'applicazione può scegliere di chiamare la famiglia di funzioni Sync per avviare direttamente l'operazione di sincronizzazione non limitata dalla normale regola not-available-in-call-back. Tuttavia, tieni presente che questo callback speciale si trova ancora sopra lo stack di callback del livello Weave Exchange.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
Attributi pubblici
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnSyncRequestReceived
OnSyncRequestReceivedHandler OnSyncRequestReceived
se non viene impostato, l'implementazione predefinita restituisce sempre true.
OnSyncSucceeded
SyncSucceededHandler OnSyncSucceeded
Se non viene configurato, il comportamento predefinito prevede tutti i risultati, ad eccezione delle correzioni molto piccole del server
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
metodo di crittografia per la comunicazione locale
mKeyId
uint16_t mKeyId
ID chiave utilizzato per la comunicazione locale
Attributi protetti
mApp
void * mApp
puntatore a dati di 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 ci troviamo in un callback di livello superiore
mLastLikelihoodSent
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
mRole
TimeSyncRole mRole
Ruolo effettivo del nodo.
mServerState
ServerState mServerState
mServiceContact
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
tieni presente che deve essere 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 tempo di avvio perché abbiamo bisogno di un compenso per il tempo di sonno
Funzioni pubbliche
Interrompi
WEAVE_ERROR Abort( void )
il motore torna allo stato di inattività, interrompendo tutte le operazioni.
nota che la sincronizzazione non andrà a buon fine o non verrà richiamata. Tutte le piattaforme di scambio Weave verranno chiuse. Le connessioni TCP non verranno ulteriormente toccate. Nessuna operazione se siamo già in stato inattivo. Non disponibile nelle richiamate.
Dettagli | |
---|---|
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
DisableAutoSync
void DisableAutoSync( void )
disattiva la sincronizzazione automatica.
disponibile solo in stato di inattività. Non disponibile nelle richiamate.
EnableAutoSync
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
attiva la sincronizzazione automatica.
disponibile solo in stato di inattività. Il rilevamento avviene subito. Non è disponibile nelle richiamate.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
semplice getter per il numero massimo di contatti che questo motore è configurato per archiviare
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
per estrarre la probabilità di permanente.
il risultato sarebbe valido solo al termine dell'operazione di sincronizzazione, all'interno dei callback di OnSyncSucceeded e OnSyncFailed. In caso contrario, è temporaneo e potrebbe corrispondere alla probabilità corrente anziché al successivo da utilizzare.
Dettagli | |
---|---|
Restituisce |
probabilità che la risposta venga utilizzata nella prossima richiesta
|
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
inizializzare questo client.
non disponibile nelle richiamate
Dettagli | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||
Restituisce |
WEAVE_NO_ERROR in caso di 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 )
inizializzare questo coordinatore.
Dettagli | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||
Restituisce |
WEAVE_NO_ERROR in caso di 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 è un server di sincronizzazione temporale.
non disponibile nelle richiamate
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
Chiamata dal livello superiore alla notifica multicast del cambio di data/ora.
non disponibile nelle richiamate.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
Chiamato dal livello più alto per indicare che abbiamo appena terminato una sincronizzazione di round di sincronizzazione con qualsiasi server o tramite alcuni mezzi affidabili come NTP.
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
Chiamato dal livello più alto per indicare che abbiamo appena terminato una sincronizzazione di round di sincronizzazione con altri coordinatori locali.
Dettagli | |||
---|---|---|---|
Parametri |
|
Arresto
WEAVE_ERROR Shutdown( void )
interrompere il servizio, a prescindere dal suo ruolo.
Questa funzione deve essere chiamata per recuperare correttamente le risorse allocate prima di poter effettuare un'altra chiamata a una qualsiasi funzione di inizializzazione. Non è disponibile nei callback.
Dettagli | |
---|---|
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
Sincronizzazione
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
sincronizzarli usando 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 nelle richiamate.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
sincronizzarsi utilizzando l'elenco di contatti fornito.
l'elenco contatti esistente verrà cancellato. Disponibile solo in stato di inattività. Non disponibile nelle richiamate.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
sincronizzarsi 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 verrà sovrascritto per la connessione TCP, in quanto verrebbe creato un nuovo Weave Exchange e le richiamate impostate in questo contesto saranno disponibili solo in stato di inattività. Non disponibile nelle richiamate.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
TimeSyncNode
TimeSyncNode( void )
Funzioni protette
AbortOnError
void AbortOnError( const WEAVE_ERROR aCode )
interruzione interna 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 )
per indurre il callback al livello dell'applicazione.
imposta aIsSuccessful su false per indurre il callback di errore
ClearState
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
FindReplaceableContact
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
restituire uno slot in cui archiviare i dati di contatto
GetClientStateName
const char *const GetClientStateName( void ) const
GetNextIdleContact
Contact * GetNextIdleContact( void )
trova il prossimo contatto valido e inattivo con cui parlare
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
ottenere il numero di contatti validi, ma non abbiamo ancora parlato.
GetNumReliableResponses
int16_t GetNumReliableResponses( void )
ottenere il numero di risposte "affidabili" raccolte finora.
per stabilire 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 )
invalida il contatto al servizio
RegisterCommError
void RegisterCommError( Contact *const aContact )
registra l'errore di comunicazione per un determinato contatto e riduci il periodo di individuazione automatica, se necessario. aContact può essere NULL per indicare che non abbiamo nessuno con cui parlare e quindi abbreviare il periodo di individuazione automatica
SendSyncRequest
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
invia richiesta di sincronizzazione unicast a un contatto.
*rIsMessageSent verrà impostato per indicare se il messaggio è stato inviato. Gli errori di comunicazione come l'indirizzo non raggiungibile non vengono restituiti, pertanto il chiamante deve controllare sia il codice di ritorno sia *rIsMessageSent.
SetAllCompletedContactsToIdle
int16_t SetAllCompletedContactsToIdle( void )
Reimpostare di nuovo tutti i contatti completati sullo stato di inattività, ma non toccare la risposta.
questo processo 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.
viene chiamato 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 )
Archiviare le informazioni di contatto di un nodo che ci ha appena inviato una notifica di modifica dell'ora
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
ClientInit
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
inizializzare per il ruolo Client.
Destinato a essere utilizzato internamente dalla famiglia di funzioni pubbliche Init. È necessario impostare mClientState prima di Return. Non disponibile nei callback
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
inizializzare per il ruolo Server.
Destinato a essere utilizzato internamente dalla famiglia di funzioni pubbliche Init. È necessario impostare mClientState prima di Return. Non disponibile nei callback
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
ShutdownClient
WEAVE_ERROR _ShutdownClient( void )
il client non è disponibile nei callback.
Dettagli | |
---|---|
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
il coordinatore non è disponibile nei callback.
Dettagli | |
---|---|
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo
|
ShutdownServer
WEAVE_ERROR _ShutdownServer( void )
il server non è disponibile nei callback.
Dettagli | |
---|---|
Restituisce |
WEAVE_NO_ERROR in caso di 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 )
richiamata da Weave Timer quando abbiamo superato la barriera dopo l'avvio
IsOperationalState
bool IsOperationalState( ClientState aState )
Determina se uno stato specificato è operativo.
Metodo pratico per determinare se ClientState indica lo stato operativo, ovvero se il client ha completato l'inizializzazione e non è in fase di arresto.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
true se lo stato scende al termine dell'inizializzazione e prima dell'inizio dell'arresto, altrimenti 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 )