nl::Weave::Profiles::Time::TimeSyncNode

Ringkasan

Inheritance

Mewarisi dari: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Konstruktor dan Destruktor

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
status yang digunakan untuk fitur sinkronisasi otomatis.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
konteks komunikasi.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
fungsi transisi status ini bersifat internal dan tidak dapat menampilkan kode error karena status sebelumnya tidak memiliki cara untuk menanganinya.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Jenis publik

ClientState enum
kondisi saat ini Klien Sinkronisasi Waktu
CommState enum
status komunikasi ke kontak tertentu.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
terjadi tepat sebelum kita menghitung koreksi waktu dari respons.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
untuk menunjukkan bahwa kita baru saja menerima permintaan sinkronisasi waktu.
ResponseStatus enum
status respons yang disimpan ke kontak tertentu.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
status saat ini Server Sinkronisasi Waktu
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
terjadi saat sinkronisasi dianggap gagal, termasuk sinkronisasi otomatis.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
terjadi setelah sinkronisasi dianggap berhasil, termasuk sinkronisasi otomatis, namun sebelum hasilnya diterapkan.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
untuk menunjukkan bahwa kita baru saja menerima Notifikasi Perubahan Waktu.

Atribut publik

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
jika tidak ditetapkan, implementasi default selalu menampilkan nilai benar (true)
OnSyncSucceeded
jika tidak disetel, perilaku default akan mengambil semua hasil, kecuali untuk koreksi server yang sangat kecil
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
metode enkripsi untuk komunikasi lokal
mKeyId
uint16_t
id kunci yang digunakan untuk komunikasi lokal

Atribut yang dilindungi

mApp
void *
pointer ke data lapisan yang lebih tinggi
mClientState
mConnectionToService
Koneksi TCP yang digunakan untuk berkomunikasi dengan layanan.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Informasi kontak dipelajari selama penemuan.
mIsAlwaysFresh
bool
mIsInCallback
bool
true jika kita berada dalam callback ke lapisan yang lebih tinggi
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Peran node ini sebenarnya.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
perhatikan bahwa waktunya booting karena kita memerlukan kompensasi untuk waktu tidur
mTimestampLastLocalSync_usec
timesync_t
perhatikan bahwa waktunya booting karena kita memerlukan kompensasi untuk waktu tidur

Fungsi publik

Abort(void)
memaksa mesin kembali ke status diam, membatalkan apa pun yang sedang dilakukannya.
DisableAutoSync(void)
void
nonaktifkan sinkronisasi otomatis.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
aktifkan sinkronisasi otomatis.
GetCapacityOfContactList(void) const
int
pengambil sederhana untuk jumlah maksimum kontak yang dikonfigurasi untuk menyimpan mesin ini
GetClientState(void) const
pengambil sederhana untuk status klien
GetNextLikelihood(void) const
int8_t
mengekstrak kemungkinan untuk persisten.
GetServerState(void) const
pengambil sederhana untuk status server
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
melakukan inisialisasi klien ini.
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)
melakukan inisialisasi koordinator ini.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah untuk menjadi Time Sync Server.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Dipanggil oleh lapisan yang lebih tinggi ke notifikasi perubahan waktu multicast.
RegisterCorrectionFromServerOrNtp(void)
void
Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kita baru saja menyelesaikan putaran sinkronisasi waktu dengan Server mana pun atau melalui beberapa cara yang dapat diandalkan seperti NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan sinkronisasi waktu dengan Koordinator lokal lainnya.
Shutdown(void)
menghentikan layanan, apa pun peran yang dimainkannya.
Sync(const bool aForceDiscoverAgain)
menyinkronkan menggunakan kontak yang ada.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
menyinkronkan menggunakan daftar kontak yang diberikan.
SyncWithService(WeaveConnection *const aConnection)
melakukan sinkronisasi menggunakan koneksi TCP yang diberikan serta enkripsi dan ID kunci terkait.

Fungsi yang dilindungi

AbortOnError(const WEAVE_ERROR aCode)
void
pembatalan internal jika aCode bukan WEAVE_NO_ERROR
AutoSyncNow(void)
void
fungsi internal untuk memulai sesi sinkronisasi otomatis
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)
menyebabkan callback ke lapisan aplikasi.
ClearState(void)
void
DestroyCommContext(void)
bool
menutup ExchangeContext Weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
mengembalikan slot untuk menyimpan informasi kontak
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
dapatkan kontak valid dan tidak ada aktivitas berikutnya untuk diajak bicara
GetNumNotYetCompletedContacts(void)
int16_t
mendapatkan jumlah kontak yang valid, tetapi kami belum berbicara dengan mereka.
GetNumReliableResponses(void)
int16_t
mendapatkan jumlah tanggapan yang dapat diandalkan yang dikumpulkan sejauh ini.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
batalkan semua kontak lokal
InvalidateServiceContact(void)
void
membatalkan kontak ke layanan
RegisterCommError(Contact *const aContact)
void
mendaftarkan error komunikasi pada kontak tertentu, dan mempersingkat periode penemuan otomatis jika diperlukan aContact dapat NULL untuk menunjukkan bahwa kita tidak memiliki siapa pun untuk diajak bicara, dan karenanya mempersingkat periode penemuan otomatis
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
kirim permintaan sinkronisasi unicast ke kontak.
SetAllCompletedContactsToIdle(void)
int16_t
menyetel ulang semua kontak yang selesai ke status diam lagi, tapi jangan sentuh responsnya.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
atur semua kontak lokal yang valid ke status tidak ada aktivitas dan hapus respons.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
membuat Weave Exchange baru untuk komunikasi unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
menyimpan informasi kontak node yang baru saja mengirimi kami notifikasi perubahan waktu
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
memproses respons yang kembali dari permintaan multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
memproses respons yang kembali dari permintaan unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
melakukan inisialisasi untuk peran Klien.
_InitServer(const bool aIsAlwaysFresh)
melakukan inisialisasi untuk peran Server.
_ShutdownClient(void)
menghentikan klien yang tidak tersedia dalam callback.
_ShutdownCoordinator(void)
menghentikan koordinator yang tidak tersedia di callback.
_ShutdownServer(void)
menghentikan server tidak tersedia dalam callback.

Fungsi statis yang dilindungi

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 dari Weave Exchange saat permintaan sinkronisasi waktu tiba
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
callback dari Weave Timer saat kami meneruskan objek yang tidak dapat diandalkan setelah hambatan booting
IsOperationalState(ClientState aState)
bool
Menentukan apakah status tertentu bersifat operasional.
_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

status yang digunakan untuk fitur sinkronisasi otomatis.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

konteks komunikasi.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

fungsi transisi status ini bersifat internal dan tidak dapat menampilkan kode error karena status sebelumnya tidak memiliki cara untuk menanganinya.

setiap kegagalan akan menghasilkan transisi status lain (bisa waktu tunggu habis) jika timer gagal, kita kehabisan trik dan dapat berhenti dalam beberapa status yang salah

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
)

Jenis publik

ClientState

 ClientState

kondisi saat ini Klien Sinkronisasi Waktu

CommState

 CommState

status komunikasi ke kontak tertentu.

Ini bersifat publik karena Kontak bersifat publik

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

terjadi tepat sebelum kita menghitung koreksi waktu dari respons.

lapisan aplikasi dapat menimpa aContact[i].mResponseStatus ke kResponseStatus_Invalid sehingga respons akan diabaikan dalam penghitungan

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aContact
array kontak dan status respons
[in] aSize
jumlah catatan dalam array aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

untuk menunjukkan bahwa kita baru saja menerima permintaan sinkronisasi waktu.

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aMsgInfo
WeaveMessageInfo yang berisi informasi tentang permintaan sinkronisasi waktu yang diterima, termasuk informasi tentang pengirim.
[in] aLikelyhood
kemungkinan respons sebagaimana diminta oleh pencetus
[in] aIsTimeCoordinator
true jika node asal adalah Koordinator Sinkronisasi Waktu
Hasil
false dan mesin akan mengabaikan permintaan ini

ResponseStatus

 ResponseStatus

status respons yang disimpan ke kontak tertentu.

Ini bersifat publik karena Kontak bersifat publik

ServerState

 ServerState

status saat ini Server Sinkronisasi Waktu

Properti
kServerState_Idle

server siap merespons permintaan dengan pengaturan normal

kServerState_UnreliableAfterBoot

waktu disediakan bagi server untuk menyinkronkan waktu sistemnya melalui cara lain hanya berarti jika aIsAlwaysFresh bernilai true saat Init dipanggil

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

terjadi saat sinkronisasi dianggap gagal, termasuk sinkronisasi otomatis.

perhatikan bahwa callback tidak terjadi jika Abort dipanggil untuk menghentikan sinkronisasi

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aErrorCode
alasan kegagalan

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

terjadi setelah sinkronisasi dianggap berhasil, termasuk sinkronisasi otomatis, namun sebelum hasilnya diterapkan.

Perhatikan bahwa berhasil tidak berarti kita memiliki hasil yang berlaku. Jika tidak ada respons yang diterima, aNumContributor akan ditetapkan ke 0. lapisan aplikasi dapat menimpa aContact[i].mResponseStatus menjadi kResponseStatus_Invalid sehingga respons akan diabaikan dalam penghitungan

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aOffsetUsec
jumlah koreksi yang digunakan
[in] aIsReliable
adalah koreksi yang dianggap dapat diandalkan oleh logika bawaan
[in] aIsServer
apakah koreksi berasal dari Server
[in] aNumContributor
jumlah node yang berkontribusi pada koreksi ini. 0 berarti tidak ada hasil dari operasi sinkronisasi.
Hasil
true jika offset ini harus digunakan untuk menyesuaikan waktu sistem. jika aNumContributor adalah 0, nilai yang ditampilkan akan diabaikan.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

untuk menunjukkan bahwa kita baru saja menerima Notifikasi Perubahan Waktu.

jika mode sinkronisasi otomatis diaktifkan, sinkronisasi waktu akan dijadwalkan segera setelah callback ini secara otomatis. jika tidak, lapisan aplikasi dapat memilih untuk memanggil kelompok fungsi Sinkronisasi untuk langsung memulai operasi sinkronisasi yang tidak dibatasi oleh aturan normal tidak tersedia-dalam-panggilan-kembali. namun, perlu dicatat bahwa callback khusus ini masih berada di atas tumpukan callback lapisan pertukaran Weave.

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aNodeId
meminta ID node
[in] aNodeAddr
meminta alamat node

Atribut publik

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

jika tidak ditetapkan, implementasi default selalu menampilkan nilai benar (true)

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

jika tidak disetel, perilaku default akan mengambil semua hasil, kecuali untuk koreksi server yang sangat kecil

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

metode enkripsi untuk komunikasi lokal

mKeyId

uint16_t mKeyId

id kunci yang digunakan untuk komunikasi lokal

Atribut yang dilindungi

mApp

void * mApp

pointer ke data lapisan yang lebih tinggi

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Koneksi TCP yang digunakan untuk berkomunikasi dengan layanan.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Informasi kontak dipelajari selama penemuan.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true jika kita berada dalam callback ke lapisan yang lebih tinggi

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Peran node ini sebenarnya.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

perhatikan bahwa waktunya booting karena kita memerlukan kompensasi untuk waktu tidur

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

perhatikan bahwa waktunya booting karena kita memerlukan kompensasi untuk waktu tidur

Fungsi publik

Batalkan

WEAVE_ERROR Abort(
  void
)

memaksa mesin kembali ke status diam, membatalkan apa pun yang sedang dilakukannya.

perhatikan bahwa tidak ada sinkronisasi yang berhasil atau gagal yang akan dipanggil. semua Bursa Weave akan ditutup. Koneksi TCP tidak akan dibahas lebih lanjut. tidak ada operasi jika kita sudah dalam status tidak ada aktivitas. tidak tersedia dalam callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

DisableAutoSync

void DisableAutoSync(
  void
)

nonaktifkan sinkronisasi otomatis.

hanya tersedia dalam status tidak ada aktivitas. tidak tersedia di callback.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

aktifkan sinkronisasi otomatis.

hanya tersedia dalam status tidak ada aktivitas. penemuan langsung terjadi. tidak tersedia di callback.

Detail
Parameter
[in] aSyncPeriod_msec
jumlah milidetik antara sinkronisasi
[in] aNominalDiscoveryPeriod_msec
jumlah milidetik antara penemuan, jika tidak ditemukan kesalahan komunikasi
[in] aShortestDiscoveryPeriod_msec
waktu tersingkat antara penemuan, dalam milidetik, jika ada kesalahan komunikasi
Hasil
WEAVE_NO_ERROR saat berhasil

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

pengambil sederhana untuk jumlah maksimum kontak yang dikonfigurasi untuk menyimpan mesin ini

GetClientState

ClientState GetClientState(
  void
) const 

pengambil sederhana untuk status klien

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

mengekstrak kemungkinan untuk persisten.

hasilnya hanya akan valid setelah operasi sinkronisasi selesai, dalam callback OnSyncSucceeded dan OnSyncFailed. Jika tidak, hasilnya hanya sementara dan mungkin merupakan Kemungkinan saat ini, bukan yang berikutnya yang akan digunakan.

Detail
Hasil
kemungkinan respons untuk digunakan dalam permintaan berikutnya

GetServerState

ServerState GetServerState(
  void
) const 

pengambil sederhana untuk status server

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

melakukan inisialisasi klien ini.

tidak tersedia di callback

Detail
Parameter
[in] aApp
Pointer ke data lapisan yang lebih tinggi, digunakan dalam callback ke lapisan yang lebih tinggi.
[in] aExchangeMgr
Penunjuk ke objek Weave Exchange Manager di seluruh sistem
[in] aRole
dapat berupa kTimeSyncRole_Client atau kTimeSyncRole_Coordinator
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan respons
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan respons
[in] aInitialLikelyhood
kemungkinan awal untuk digunakan dalam tahap penemuan
Hasil
WEAVE_NO_ERROR saat berhasil

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
)

melakukan inisialisasi koordinator ini.

Detail
Parameter
[in] aExchangeMgr
Penunjuk ke objek Weave Exchange Manager di seluruh sistem
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan respons
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan respons
[in] aSyncPeriod_msec
jumlah milidetik antara sinkronisasi
[in] aNominalDiscoveryPeriod_msec
waktu tersingkat antara penemuan, dalam milidetik, jika tidak ditemukan kesalahan komunikasi
[in] aShortestDiscoveryPeriod_msec
jumlah terkecil milidetik antara penemuan, jika kesalahan komunikasi diamati
Hasil
WEAVE_NO_ERROR saat berhasil

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah untuk menjadi Time Sync Server.

tidak tersedia di callback

Detail
Parameter
[in] aApp
Pointer ke data lapisan yang lebih tinggi, digunakan dalam callback ke lapisan yang lebih tinggi.
[in] aExchangeMgr
Penunjuk ke objek Weave Exchange Manager di seluruh sistem
[in] aIsAlwaysFresh
dapat disetel ke benar untuk menunjukkan bahwa server selalu disinkronkan kecuali untuk waktu awal yang tidak dapat diandalkan. akan disetel ke salah untuk Koordinator.
Hasil
WEAVE_NO_ERROR saat berhasil

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Dipanggil oleh lapisan yang lebih tinggi ke notifikasi perubahan waktu multicast.

tidak tersedia dalam callback.

Detail
Parameter
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk notifikasi ini
[in] aKeyId
ID kunci yang akan digunakan untuk notifikasi ini

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kita baru saja menyelesaikan putaran sinkronisasi waktu dengan Server mana pun atau melalui beberapa cara yang dapat diandalkan seperti NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kami baru saja menyelesaikan sinkronisasi waktu dengan Koordinator lokal lainnya.

Detail
Parameter
[in] aNumContributor
jumlah koordinator yang berkontribusi pada sinkronisasi waktu ini

Nonaktif

WEAVE_ERROR Shutdown(
  void
)

menghentikan layanan, apa pun peran yang dimainkannya.

Fungsi ini harus dipanggil untuk mengklaim kembali resource yang dialokasikan dengan benar, sebelum panggilan lain ke fungsi init mana pun dapat dilakukan. tidak tersedia di callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

Sinkronisasi

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

menyinkronkan menggunakan kontak yang ada.

operasi sinkronisasi bisa gagal jika tidak ada kontak valid yang tersedia. setel aForceDiscoverAgain ke true untuk segera memaksa penemuan. hanya tersedia dalam status tidak ada aktivitas. tidak tersedia di callback.

Detail
Parameter
[in] aForceDiscoverAgain
benar jika semua kontak yang ada akan dikosongkan dan operasi penemuan dilakukan
Hasil
WEAVE_NO_ERROR saat berhasil

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

menyinkronkan menggunakan daftar kontak yang diberikan.

daftar kontak yang ada akan dikosongkan. hanya tersedia dalam status tidak ada aktivitas. tidak tersedia di callback.

Detail
Parameter
[in] aNumNode
jumlah kontak dalam array aNodes
[in] aNodes
array data kontak
Hasil
WEAVE_NO_ERROR saat berhasil

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

melakukan sinkronisasi menggunakan koneksi TCP yang diberikan serta enkripsi dan ID kunci terkait.

pemanggil harus mengambil alih kepemilikan koneksi TCP setelah sinkronisasi selesai. tidak ada callback yang akan ditimpa untuk koneksi TCP, karena Weave Exchange baru akan dibuat dan callback ditetapkan di atas konteks tersebut hanya tersedia dalam status tidak ada aktivitas. tidak tersedia di callback.

Detail
Parameter
[in] aConnection
Pointer ke koneksi Weave
Hasil
WEAVE_NO_ERROR saat berhasil

TimeSyncNode

 TimeSyncNode(
  void
)

Fungsi yang dilindungi

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

pembatalan internal jika aCode bukan WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

fungsi internal untuk memulai sesi sinkronisasi otomatis

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
)

menyebabkan callback ke lapisan aplikasi.

setel aIsBerhasil ke false untuk menyebabkan callback error

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

menutup ExchangeContext Weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

mengembalikan slot untuk menyimpan informasi kontak

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

dapatkan kontak valid dan tidak ada aktivitas berikutnya untuk diajak bicara

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

mendapatkan jumlah kontak yang valid, tetapi kami belum berbicara dengan mereka.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

mendapatkan jumlah tanggapan yang dapat diandalkan yang dikumpulkan sejauh ini.

dihubungi untuk menentukan apakah kita telah mengumpulkan jumlah respons

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

batalkan semua kontak lokal

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

membatalkan kontak ke layanan

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

mendaftarkan error komunikasi pada kontak tertentu, dan mempersingkat periode penemuan otomatis jika diperlukan aContact dapat NULL untuk menunjukkan bahwa kita tidak memiliki siapa pun untuk diajak bicara, dan karenanya mempersingkat periode penemuan otomatis

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

kirim permintaan sinkronisasi unicast ke kontak.

*rIsMessageSent akan disetel untuk menunjukkan apakah pesan telah dikirim. error komunikasi seperti alamat tidak dapat dijangkau tidak dikembalikan, sehingga pemanggil harus memeriksa kode pengembalian dan *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

menyetel ulang semua kontak yang selesai ke status diam lagi, tapi jangan sentuh responsnya.

ini disebut di antara dua putaran komunikasi ke {i>node<i} yang sama

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

atur semua kontak lokal yang valid ke status tidak ada aktivitas dan hapus respons.

ini dipanggil sebelum kita mulai menghubungi mereka satu per satu

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

membuat Weave Exchange baru untuk komunikasi unicast

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

menyimpan informasi kontak node yang baru saja mengirimi kami notifikasi perubahan waktu

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

memproses respons yang kembali dari permintaan multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

memproses respons yang kembali dari permintaan unicast

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

melakukan inisialisasi untuk peran Klien.

Dimaksudkan untuk digunakan secara internal oleh kelompok fungsi publik Init. Harus menetapkan mClientState sebelum ditampilkan. tidak tersedia di callback

Detail
Parameter
[in] aEncryptionType
jenis enkripsi yang akan digunakan untuk permintaan dan respons
[in] aKeyId
id kunci yang akan digunakan untuk permintaan dan respons
[in] aInitialLikelyhood
kemungkinan awal untuk digunakan dalam tahap penemuan
Hasil
WEAVE_NO_ERROR saat berhasil

_ServerInit

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

melakukan inisialisasi untuk peran Server.

Dimaksudkan untuk digunakan secara internal oleh kelompok fungsi publik Init. Harus menetapkan mClientState sebelum ditampilkan. tidak tersedia di callback

Detail
Parameter
[in] aIsAlwaysFresh
dapat disetel ke benar untuk menunjukkan bahwa server selalu disinkronkan kecuali untuk waktu awal yang tidak dapat diandalkan. akan disetel ke salah untuk Koordinator.
Hasil
WEAVE_NO_ERROR saat berhasil

_Klien Matikan

WEAVE_ERROR _ShutdownClient(
  void
)

menghentikan klien yang tidak tersedia dalam callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

_Koordinator Mati

WEAVE_ERROR _ShutdownCoordinator(
  void
)

menghentikan koordinator yang tidak tersedia di callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

menghentikan server tidak tersedia dalam callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

Fungsi statis yang dilindungi

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 dari Weave Exchange saat permintaan sinkronisasi waktu tiba

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
)

callback dari Weave Timer saat kami meneruskan objek yang tidak dapat diandalkan setelah hambatan booting

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Menentukan apakah status tertentu bersifat operasional.

Metode praktis untuk menentukan apakah ClientState menunjukkan status operasional, yaitu klien telah menyelesaikan inisialisasi dan tidak dalam proses penonaktifan.

Detail
Parameter
[in] aState
status yang akan dievaluasi
Hasil
true jika status jatuh setelah inisialisasi selesai dan sebelum penghentian dimulai, false jika tidak.

_OnSyncBerhasil

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)