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

Ringkasan

Jenis publik

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
status saat ini dari Klien Sinkronisasi Waktu ini
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Callback setelah kedua upaya sinkronisasi 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
digunakan untuk menyimpan Stempel Waktu saat hasil didaftarkan
mRemoteTimestamp_usec
timesync_t
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
Ambil status saat ini dari klien ini.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Inisialisasi klien ini.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Menyinkronkan menggunakan Binding yang diberikan dan membuat callback menggunakan pointer yang disediakan.

Fungsi yang dilindungi

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

status saat ini dari Klien Sinkronisasi Waktu ini

Properti
kClientState_Idle

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

kClientState_Sync_1

Sedang mencoba saat sinkronisasi pertama.

kClientState_Sync_2

Sedang mengerjakan upaya sinkronisasi kedua.

SyncCompletionHandler

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

Callback setelah kedua upaya sinkronisasi selesai.

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

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aErrorCode
WEAVE_NO_ERROR jika setidaknya satu operasi sinkronisasi kali berhasil
[in] aCorrectedSystemTime
Hanya berlaku 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.

Tetapkan ke NULL pada Init. Jika tidak disetel, Notifikasi Perubahan Waktu akan diabaikan. Lapisan aplikasi diizinkan untuk memanggil Abort dan Sync dalam callback ini.

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aEC
Tukar konteks 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

digunakan untuk menyimpan Stempel Waktu saat hasil didaftarkan

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

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.

Melepaskan Binding. Batalkan bursa aktif. Kembali ke status tidak ada aktivitas.

GetClientState

ClientState GetClientState(
  void
) const 

Ambil status saat ini dari klien ini.

Detail
Hasil
status saat ini

Inisiasi

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

Inisialisasi klien ini.

Harus dipanggil sebelum fungsi lain dapat digunakan. Zero/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 untuk pengendali pesan Notifikasi Perubahan Waktu
Hasil
WEAVE_NO_ERROR saat berhasil

Sinkronisasi

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Menyinkronkan menggunakan Binding yang diberikan dan melakukan callback menggunakan pointer yang disediakan.

Jika ada operasi sinkronisasi waktu yang sedang berlangsung, operasi akan dibatalkan secara implisit tanpa melakukan 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 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 yang terdaftar untuk koreksi waktu.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Periksa apakah informasi yang 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
)

_AbortWithCallback

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
)