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

Ringkasan

Jenis publik

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
kondisi saat ini Klien Sinkronisasi Waktu
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Callback setelah kedua upaya sinkronisasi waktu selesai.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Callback untuk menunjukkan bahwa kami baru saja menerima Notifikasi Perubahan Waktu.

Jenis yang dilindungi

@324 enum

Atribut publik

OnTimeChangeNotificationReceived

Atribut yang dilindungi

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
digunakan untuk menyimpan waktu penerbangan satu arah.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
yang digunakan untuk menyimpan Stempel waktu saat hasil didaftarkan
mRemoteTimestamp_usec
timesync_t
yang digunakan untuk menyimpan waktu sistem {i>node<i} jarak jauh, ketika pesan respons akan dikirim
mUnadjTimestampLastSent_usec
timesync_t

Fungsi publik

Abort(void)
void
Batalkan operasi sinkronisasi waktu saat ini.
GetClientState(void) const
Mengambil status klien saat ini.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inisialisasi klien ini.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Menyinkronkan menggunakan Binding yang ditentukan dan membuat callback menggunakan pointer yang diberikan.

Fungsi yang dilindungi

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Membatalkan informasi terdaftar untuk koreksi waktu.
IsRegisteredResultValid(void)
bool
Periksa apakah informasi terdaftar untuk koreksi waktu valid.
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

Fungsi statis yang dilindungi

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

Jenis publik

ClientState

 ClientState

kondisi saat ini Klien Sinkronisasi Waktu

Properti
kClientState_Idle

Diinisialisasi, menunggu Notifikasi Perubahan Waktu, tetapi tidak ada operasi sinkronisasi waktu sebenarnya yang terjadi.

kClientState_Sync_1

Sedang mengerjakan upaya sinkronisasi pertama kali.

kClientState_Sync_2

Sedang mengerjakan upaya sinkronisasi kedua kalinya.

SyncCompletionHandler

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

Callback setelah kedua upaya sinkronisasi waktu selesai.

Jika aErrorCode adalah WEAVE_NO_ERROR, berarti setidaknya satu upaya berhasil. Jika tidak, keduanya gagal di aErrorCode menunjukkan kegagalan terbaru.

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aErrorCode
WEAVE_NO_ERROR jika berhasil melakukan minimal satu kali operasi sinkronisasi
[in] aCorrectedSystemTime
Hanya valid jika aErrorCode adalah WEAVE_NO_ERROR

TimeChangeNotificationHandler

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

Callback untuk menunjukkan bahwa kami baru saja menerima Notifikasi Perubahan Waktu.

Setel ke NULL pada Init. Jika tidak disetel, Notifikasi Perubahan Waktu akan diabaikan. Lapisan aplikasi diizinkan untuk memanggil Abort dan Sinkronisasi di callback ini.

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aEC
Konteks pertukaran yang digunakan untuk pesan masuk ini, yang dapat digunakan untuk memvalidasi keasliannya

Jenis yang dilindungi

@324

 @324

Atribut publik

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Atribut yang dilindungi

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

digunakan untuk menyimpan waktu penerbangan satu arah.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

yang digunakan untuk menyimpan Stempel waktu saat hasil didaftarkan

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

yang digunakan untuk menyimpan waktu sistem {i>node<i} jarak jauh, ketika pesan respons akan dikirim

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Fungsi publik

Batalkan

void Abort(
  void
)

Batalkan operasi sinkronisasi waktu saat ini.

Lepaskan Binding. Batalkan pertukaran aktif. Kembali ke status tidak ada aktivitas.

GetClientState

ClientState GetClientState(
  void
) const 

Mengambil status klien saat ini.

Detail
Hasil
kondisi saat ini

Inisiasi

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

Inisialisasi klien ini.

Harus dipanggil sebelum fungsi lain dapat digunakan. Nol/NULL melakukan inisialisasi semua data internal dan mendaftar dengan Notifikasi Perubahan Waktu.

Detail
Parameter
[in] aApp
Pointer ke data lapisan yang lebih tinggi, digunakan dalam callback ke lapisan yang lebih tinggi.
[in] aExchangeMgr
Pointer ke Exchange Manager, yang akan digunakan saat mendaftar pengendali pesan Notifikasi Perubahan Waktu
Hasil
WEAVE_NO_ERROR saat berhasil

Sinkronisasi

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Menyinkronkan menggunakan Binding yang ditentukan dan membuat callback menggunakan pointer yang diberikan.

Jika ada operasi sinkronisasi waktu yang sedang berlangsung, operasi tersebut akan dibatalkan secara implisit tanpa dibuat callback. Tidak tersedia di callback OnSyncCompleted, tetapi diizinkan di OnTimeChangeNotificationReceived . Jika error, Abort akan dipanggil secara implisit sebelum kembali dari fungsi ini.

Detail
Parameter
[in] aBinding
Binding yang akan digunakan untuk menghubungi server waktu
[in] OnSyncCompleted
Fungsi callback yang akan digunakan setelah operasi sinkronisasi waktu selesai
Hasil
WEAVE_NO_ERROR saat berhasil

Fungsi yang dilindungi

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Membatalkan informasi terdaftar untuk koreksi waktu.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Periksa apakah informasi terdaftar untuk koreksi waktu valid.

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
)

_Batalkan Dengan Callback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Fungsi statis yang dilindungi

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
)