nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

Résumé

Types publics

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
énum
état actuel de ce client de synchronisation temporelle
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Rappel après les deux tentatives de synchronisation.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Rappel pour indiquer que nous venons de recevoir une notification de changement d'heure.

Types protégés

@324 énum

Attributs publics

OnTimeChangeNotificationReceived

Attributs protégés

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
pour stocker le temps de vol aller simple.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
utilisé pour stocker le code temporel lorsqu'un résultat est enregistré
mRemoteTimestamp_usec
timesync_t
utilisé pour stocker l'heure système du nœud distant, lorsque le message de réponse était sur le point d'être envoyé
mUnadjTimestampLastSent_usec
timesync_t

Fonctions publiques

Abort(void)
void
Annulez l'opération de synchronisation de l'heure en cours.
GetClientState(void) const
Récupérer l'état actuel de ce client
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Initialisez ce client.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Synchronisation à l'aide de la Binding donnée et rappel à l'aide du pointeur fourni.

Fonctions protégées

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Invalider les informations enregistrées pour la correction de l'heure
IsRegisteredResultValid(void)
bool
Vérifiez si les informations enregistrées pour la correction de l'heure sont valides.
OnResponseTimeout(void)
void
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState(void)
void
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest(void)
SetClientState(const ClientState state)
void
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
void

Fonctions statiques protégées

HandleResponseTimeout(ExchangeContext *aEC)
void
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

Types publics

ClientState

 ClientState

état actuel de ce client de synchronisation temporelle

Propriétés
kClientState_Idle

Initialisée, en attente de la notification de changement d'heure, mais aucune opération de synchronisation de l'heure n'est en cours.

kClientState_Sync_1

Première tentative de synchronisation en cours.

kClientState_Sync_2

Deuxième tentative de synchronisation en cours.

SyncCompletionHandler

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

Rappel après les deux tentatives de synchronisation.

Si aErrorCode est WEAVE_NO_ERROR, cela signifie qu'au moins une tentative a réussi. Sinon, les deux erreurs "aErrorCode" indiquent le dernier échec.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aErrorCode
WEAVE_NO_ERROR si au moins une opération de synchronisation aboutit
[in] aCorrectedSystemTime
Valide uniquement si aErrorCode est WEAVE_NO_ERROR

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

Rappel pour indiquer que nous venons de recevoir une notification de changement d'heure.

Définissez sa valeur à NULL sur Init. Si cette règle n'est pas configurée, la notification de changement d'heure est ignorée. La couche d'application est autorisée à appeler "Annuler et synchroniser" dans ce rappel.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aEC
Contexte Exchange utilisé pour ce message entrant, qui peut être utilisé pour valider son authenticité

Types protégés

@324

 @324

Attributs publics

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Attributs protégés

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

pour stocker le temps de vol aller simple.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

utilisé pour stocker l'horodatage lorsqu'un résultat est enregistré

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

utilisé pour stocker l'heure système du nœud distant, lorsque le message de réponse était sur le point d'être envoyé

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Fonctions publiques

Annuler

void Abort(
  void
)

Annulez l'opération de synchronisation de l'heure en cours.

Libérez Binding. Annuler l'échange actif. Revenir à l'état inactif.

GetClientState

ClientState GetClientState(
  void
) const 

Récupérer l'état actuel de ce client

Détails
Renvoie
état actuel

Init

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

Initialisez ce client.

Doit être appelé avant que d'autres fonctions puissent être utilisées. Zéro/NULL initialise toutes les données internes et s'enregistre auprès de la notification de changement d'heure.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche supérieure, utilisé dans les rappels de la couche supérieure.
[in] aExchangeMgr
Un pointeur vers Exchange Manager, qui servirait à s'inscrire au gestionnaire de messages de la notification de changement d'heure
Renvoie
WEAVE_NO_ERROR en cas de réussite

Synchroniser

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Synchronisation à l'aide de la Binding donnée et rappel à l'aide du pointeur fourni.

Si une opération de synchronisation temporelle est en cours, elle est annulée implicitement sans qu'un rappel ne soit effectué. Non disponible pour le rappel OnSyncCompleted, mais autorisée dans OnTimeChangeNotificationReceived . En cas d'erreur, la méthode Abort est appelée implicitement avant d'être renvoyée à partir de cette fonction.

Détails
Paramètres
[in] aBinding
Une liaison à utiliser pour contacter le serveur de temps
[in] OnSyncCompleted
Fonction de rappel à utiliser une fois les opérations de synchronisation terminées
Renvoie
WEAVE_NO_ERROR en cas de réussite

Fonctions protégées

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Invalider les informations enregistrées pour la correction de l'heure

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Vérifiez si les informations enregistrées pour la correction de l'heure sont valides.

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Fonctions statiques protégées

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)