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
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) typedef
void(*
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) typedef
bool(*
per indicare che abbiamo appena ricevuto una richiesta di sincronizzazione dell'ora.
ResponseStatus enum
lo stato della risposta memorizzata per un determinato contatto.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
stato attuale di questo server Time Sync
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
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) typedef
bool(*
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) typedef
void(*
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)
restituire uno slot in cui archiviare i dati di contatto
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
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

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.

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
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aContact
array 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 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 dal mittente
[in] aIsTimeCoordinator
true se il nodo di origine è un coordinatore di sincronizzazione temporale
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
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aErrorCode
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 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
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aOffsetUsec
quantità di correzione in usec
[in] aIsReliable
la correzione è considerata affidabile dalla logica integrata
[in] aIsServer
la correzione proviene dai server
[in] aNumContributor
di nodi che hanno 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 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
[in] aApp
Un puntatore ai dati del livello app, impostato in Init.
[in] aNodeId
richiedendo l'ID nodo
[in] aNodeAddr
indirizzo del nodo richiedente

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
[in] aSyncPeriod_msec
numero di msec tra una sincronizzazione
[in] aNominalDiscoveryPeriod_msec
numero di msec tra un rilevamento e l'altro, se non si osserva alcun errore di comunicazione
[in] aShortestDiscoveryPeriod_msec
tempo più breve tra il rilevamento, in msec, se si è verificato un errore di comunicazione
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

GetClientState

ClientState GetClientState(
  void
) const 

getter semplice per lo stato client

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

GetServerState

ServerState GetServerState(
  void
) const 

semplice getter 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
)

inizializzare questo client.

non disponibile nelle richiamate

Dettagli
Parametri
[in] aApp
Un puntatore a dati di 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
ID chiave da utilizzare per richieste e risposte
[in] aInitialLikelyhood
probabilità iniziale di essere utilizzato per la fase di scoperta
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
[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
ID chiave da utilizzare per richieste e risposte
[in] aSyncPeriod_msec
numero di msec tra una sincronizzazione
[in] aNominalDiscoveryPeriod_msec
tempo più breve tra il rilevamento, in msec, se non si osserva alcun errore di comunicazione
[in] aShortestDiscoveryPeriod_msec
numero minimo di msec tra il rilevamento, se è stato osservato un errore di comunicazione
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
[in] aApp
Un puntatore a dati di 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, tranne che per il momento iniziale di inaffidabilità. deve essere impostato su false per Coordinator.
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
[in] aEncryptionType
tipo di crittografia da usare per questa notifica
[in] aKeyId
ID chiave da usare per questa notifica

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
[in] aNumContributor
numero di coordinatori che hanno contribuito a questa sincronizzazione temporale

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
[in] aForceDiscoverAgain
true se tutti i contatti esistenti devono essere svuotati ed eseguita l'operazione di rilevamento
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
[in] aNumNode
numero di contatti nell'array aNodes
[in] aNodes
array di record dei contatti
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
[in] aConnection
Un puntatore alla connessione Weave
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
)

DestroyCommContext

bool DestroyCommContext(
  void
)

chiudi il riquadro ExchangeContext di Weave

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
[in] aEncryptionType
tipo di crittografia da utilizzare per richieste e risposte
[in] aKeyId
ID chiave da utilizzare per richieste e risposte
[in] aInitialLikelyhood
probabilità iniziale di essere utilizzato per la fase di scoperta
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
[in] aIsAlwaysFresh
potrebbe essere impostato su true per indicare che il server è sempre sincronizzato, tranne che per il momento iniziale di inaffidabilità. deve essere impostato su false per Coordinator.
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
[in] aState
stato da valutare
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
)