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

Resumo

Tipos públicos

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
estado atual deste cliente de sincronização de tempo
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Chamada de retorno após a conclusão das duas tentativas de sincronização.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Chamada de retorno para indicar que acabamos de receber uma Notificação de alteração de horário.

Tipos protegidos

@324 enum

Atributos públicos

OnTimeChangeNotificationReceived

Atributos protegidos

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
usada para armazenar o tempo de voo só de ida.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
usado para armazenar carimbo de data/hora quando um resultado é registrado
mRemoteTimestamp_usec
timesync_t
usada para armazenar a hora do sistema do nó remoto, quando a mensagem de resposta estava prestes a ser enviada
mUnadjTimestampLastSent_usec
timesync_t

Funções públicas

Abort(void)
void
Cancelar operação de sincronização do horário atual.
GetClientState(void) const
Recuperar o estado atual deste cliente.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inicialize este cliente.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Sincroniza usando a Binding determinada e faz um callback usando o ponteiro fornecido.

Funções protegidas

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Invalidar as informações registradas para correção de horário.
IsRegisteredResultValid(void)
bool
Verifique se as informações registradas para a correção de horário são válidas.
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

Funções estáticas protegidas

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

Tipos públicos

ClientState

 ClientState

estado atual deste cliente de sincronização de tempo

Propriedades
kClientState_Idle

Iniciado, aguardando a Notificação de alteração de horário, mas nenhuma operação de sincronização de horário real está acontecendo.

kClientState_Sync_1

Trabalhando na primeira tentativa de sincronização.

kClientState_Sync_2

Trabalhando na segunda tentativa de sincronização.

SyncCompletionHandler

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

Chamada de retorno após a conclusão das duas tentativas de sincronização de horário.

Se aErrorCode for WEAVE_NO_ERROR, pelo menos uma tentativa será bem-sucedida. Caso contrário, ambos apresentarão falha em aErrorCode indica a falha mais recente.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aErrorCode
WEAVE_NO_ERROR se pelo menos uma operação de sincronização for bem-sucedida.
[in] aCorrectedSystemTime
Válido apenas se o aErrorCode for WEAVE_NO_ERROR

TimeChangeNotificationHandler

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

Chamada de retorno para indicar que acabamos de receber uma Notificação de alteração de horário.

Defina como NULL em Init. Se ela não for definida, a Notificação de alteração de horário será ignorada. A camada de apps tem permissão para chamar "Cancelar e sincronizar" nesse callback.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para os dados da camada do app, definido em Init.
[in] aEC
Contexto de troca usado para a mensagem recebida, que pode ser usado para validar a autenticidade dela

Tipos protegidos

@324

 @324

Atributos públicos

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Atributos protegidos

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

usada para armazenar o tempo de voo só de ida.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

usado para armazenar carimbo de data/hora quando um resultado é registrado

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

usada para armazenar a hora do sistema do nó remoto, quando a mensagem de resposta estava prestes a ser enviada

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Funções públicas

Cancelar

void Abort(
  void
)

Cancelar operação de sincronização do horário atual.

Vinculação. Cancela a troca ativa. Voltar ao estado inativo.

GetClientState

ClientState GetClientState(
  void
) const 

Recuperar o estado atual deste cliente.

Detalhes
Retornos
estado atual

Init

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

Inicialize este cliente.

Precisa ser chamada antes que outras funções possam ser usadas. Zero/NULL inicializa todos os dados internos e se registra com a Notificação de alteração de horário.

Detalhes
Parâmetros
[in] aApp
Um ponteiro para dados de camadas superiores, usado em callbacks para a camada superior.
[in] aExchangeMgr
Um ponteiro para o Gerenciador do Exchange, que é usado no registro do gerenciador de mensagens da Notificação de alteração de horário
Retornos
WEAVE_NO_ERROR em caso de sucesso

Sincronização

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Sincroniza usando a Binding determinada e faz um callback usando o ponteiro fornecido.

Se houver uma operação de sincronização de horário, ela será abortada implicitamente sem que seja feito um retorno de chamada. Não disponível no retorno de chamada OnSyncCompleted, mas permitido em OnTimeChangeNotificationReceived . Em caso de erro, Abort seria chamado implicitamente antes de retornar dessa função.

Detalhes
Parâmetros
[in] aBinding
Binding a ser usada para entrar em contato com o servidor de horário
[in] OnSyncCompleted
Função de callback a ser usada após a conclusão das operações de sincronização de horário
Retornos
WEAVE_NO_ERROR em caso de sucesso

Funções protegidas

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Invalidar as informações registradas para correção de horário.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Verifique se as informações registradas para a correção de horário são válidas.

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
)

Funções estáticas protegidas

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
)