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
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
status saat ini dari Klien Sinkronisasi Waktu ini
CommState enum
status komunikasi kepada kontak tertentu.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
callback 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 terhadap kontak tertentu.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
status saat ini dari Server Sinkronisasi Waktu ini
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
callback terjadi jika 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(*
callback terjadi setelah sinkronisasi dianggap berhasil, termasuk sinkronisasi otomatis, tetapi 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 akan selalu menampilkan 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 berbicara dengan layanan.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Informasi kontak yang dipelajari selama penemuan.
mIsAlwaysFresh
bool
mIsInCallback
bool
benar (true) jika berada di callback ke lapisan yang lebih tinggi
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Peran sebenarnya dari node ini.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
perhatikan bahwa ini harus waktu {i>booting<i} karena kita membutuhkan kompensasi untuk waktu tidur
mTimestampLastLocalSync_usec
timesync_t
perhatikan bahwa ini harus waktu {i>booting<i} karena kita membutuhkan kompensasi untuk waktu tidur

Fungsi publik

Abort(void)
memaksa mesin untuk kembali ke keadaan tidak ada aktivitas, membatalkan apa pun yang dilakukannya.
DisableAutoSync(void)
void
menonaktifkan sinkronisasi otomatis.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
mengaktifkan sinkronisasi otomatis.
GetCapacityOfContactList(void) const
int
pengambil sederhana untuk jumlah maksimum kontak yang dikonfigurasi mesin ini untuk disimpan
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)
melakukan inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah 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 sinkronisasi waktu dengan Server mana pun atau melalui cara yang dapat diandalkan seperti NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kita baru saja menyelesaikan sinkronisasi waktu dengan Koordinator lokal lainnya.
Shutdown(void)
menghentikan layanan, tidak peduli peran yang dimainkannya.
Sync(const bool aForceDiscoverAgain)
sinkronisasi menggunakan kontak yang ada.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
menyinkronkan menggunakan daftar kontak yang diberikan.
SyncWithService(WeaveConnection *const aConnection)
menyinkronkan menggunakan koneksi TCP yang diberikan dan enkripsi serta 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)
memicu callback ke lapisan aplikasi.
ClearState(void)
void
DestroyCommContext(void)
bool
tutup 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)
mendapatkan kontak valid dan tidak ada aktivitas berikutnya untuk berbicara
GetNumNotYetCompletedContacts(void)
int16_t
mendapatkan jumlah kontak yang valid, tapi kita belum berkomunikasi dengan mereka.
GetNumReliableResponses(void)
int16_t
dapatkan jumlah "andal" yang telah dikumpulkan sejauh ini.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
batalkan semua kontak lokal
InvalidateServiceContact(void)
void
batalkan kontak ke layanan
RegisterCommError(Contact *const aContact)
void
mendaftarkan error komunikasi pada kontak tertentu, dan mempersingkat periode penemuan otomatis jika diperlukan. aContact bisa menjadi NULL untuk menunjukkan bahwa kita tidak memiliki siapa pun untuk diajak bicara, sehingga mempersingkat periode penemuan otomatis
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
mengirim permintaan sinkronisasi unicast ke kontak.
SetAllCompletedContactsToIdle(void)
int16_t
mengatur ulang semua kontak yang telah diselesaikan ke status tidak ada aktivitas lagi, tetapi jangan sentuh responsnya.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
menetapkan semua kontak lokal yang valid ke status tidak ada aktivitas, dan menghapus 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 simpul 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 di callback.
_ShutdownCoordinator(void)
menghentikan koordinator yang tidak tersedia di callback.
_ShutdownServer(void)
menghentikan server yang tidak tersedia di 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 Timer Weave saat kita melewati penghalang yang tidak dapat diandalkan setelah
IsOperationalState(ClientState aState)
bool
Menentukan apakah status tertentu beroperasi.
_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

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.

kegagalan apa pun akan mengakibatkan transisi status lain pada akhirnya (dapat berupa waktu tunggu) jika timer gagal, kita keluar dari trik dan dapat hang di 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

status saat ini dari Klien Sinkronisasi Waktu ini

CommState

 CommState

status komunikasi kepada kontak tertentu.

Hal ini dapat dilihat oleh publik karena Kontak berada di tempat umum

ContributorFilter

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

callback terjadi tepat sebelum kita menghitung koreksi waktu dari respons.

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

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aContact
array status kontak dan respons
[in] aSize
jumlah kumpulan data 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 seperti yang diminta oleh pembuat
[in] aIsTimeCoordinator
benar (true) jika node asal adalah Koordinator Sinkronisasi Waktu
Hasil
false dan mesin akan mengabaikan permintaan ini

ResponseStatus

 ResponseStatus

status respons yang disimpan terhadap kontak tertentu.

Hal ini dapat dilihat oleh publik karena Kontak berada di tempat umum

ServerState

 ServerState

status saat ini dari Server Sinkronisasi Waktu ini

Properti
kServerState_Idle

server siap menanggapi permintaan dengan pengaturan normal

kServerState_UnreliableAfterBoot

waktu yang disediakan bagi server untuk menyinkronkan waktu sistemnya melalui beberapa cara lain hanya berarti jika aIsAlwaysFresh bernilai benar ketika Init dipanggil

SyncFailedHandler

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

callback terjadi jika 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)

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

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

Detail
Parameter
[in] aApp
Pointer ke data lapisan aplikasi, yang ditetapkan di Init.
[in] aOffsetUsec
jumlah koreksi dalam penggunaan
[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
benar (true) jika selisih waktu ini harus digunakan untuk menyesuaikan waktu sistem. jika aNumContributor bernilai 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 rangkaian fungsi Sync untuk langsung memulai operasi sinkronisasi yang tidak dibatasi oleh aturan normal {i>not-available-in-call-back<i}. namun, perlu diperhatikan 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 akan selalu menampilkan 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 berbicara dengan layanan.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Informasi kontak yang dipelajari selama penemuan.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

benar (true) jika berada di callback ke lapisan yang lebih tinggi

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Peran sebenarnya dari node ini.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

perhatikan bahwa ini harus waktu {i>booting<i} karena kita membutuhkan kompensasi untuk waktu tidur

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

perhatikan bahwa ini harus waktu {i>booting<i} karena kita membutuhkan kompensasi untuk waktu tidur

Fungsi publik

Batalkan

WEAVE_ERROR Abort(
  void
)

memaksa mesin untuk kembali ke keadaan tidak ada aktivitas, membatalkan apa pun yang dilakukannya.

perhatikan bahwa tidak ada keberhasilan atau kegagalan sinkronisasi yang akan dipanggil. semua Weave Exchange akan ditutup. koneksi TCP tidak akan disentuh lebih lanjut. tidak ada operasi jika kita dalam status tidak ada aktivitas. tidak tersedia di callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

DisableAutoSync

void DisableAutoSync(
  void
)

menonaktifkan 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
)

mengaktifkan sinkronisasi otomatis.

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

Detail
Parameter
[in] aSyncPeriod_msec
jumlah milidetik antara sinkronisasi
[in] aNominalDiscoveryPeriod_msec
jumlah milidetik antara penemuan, jika tidak ditemukan error komunikasi
[in] aShortestDiscoveryPeriod_msec
waktu terpendek 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 mesin ini untuk disimpan

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, itu bersifat sementara dan mungkin yang digunakan adalah saat ini, bukan yang berikutnya.

Detail
Hasil
kemungkinan respons akan 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
Pointer 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
Pointer 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 error komunikasi
[in] aShortestDiscoveryPeriod_msec
jumlah milidetik terkecil antar penemuan, jika ada error komunikasi
Hasil
WEAVE_NO_ERROR saat berhasil

InitServer

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

melakukan inisialisasi untuk peran Server harus dipanggil sebagai fungsi pertama setelah konstruksi objek jika tujuannya adalah 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
Pointer ke objek Weave Exchange Manager di seluruh sistem
[in] aIsAlwaysFresh
dapat disetel ke benar (true) untuk menunjukkan bahwa server selalu disinkronkan, kecuali untuk waktu awal yang tidak dapat diandalkan. akan ditetapkan ke false 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 di 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 sinkronisasi waktu dengan Server mana pun atau melalui cara yang dapat diandalkan seperti NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Dipanggil oleh lapisan yang lebih tinggi untuk menunjukkan bahwa kita 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, tidak peduli peran yang dimainkannya.

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

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

Sinkronisasi

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

sinkronisasi menggunakan kontak yang ada.

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

Detail
Parameter
[in] aForceDiscoverAgain
benar (true) jika semua kontak yang ada harus di-flush 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 dihapus. hanya tersedia dalam status tidak ada aktivitas. tidak tersedia di callback.

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

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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

pemanggil harus mengambil kepemilikan koneksi TCP setelah sinkronisasi selesai. tidak ada callback yang akan ditimpa untuk koneksi TCP, karena Weave Exchange baru akan dibuat dan callback yang disetel di atas konteks tersebut hanya tersedia dalam keadaan 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
)

memicu callback ke lapisan aplikasi.

setel aIsSuccess ke false untuk memicu callback error

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

tutup 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
)

mendapatkan kontak valid dan tidak ada aktivitas berikutnya untuk berbicara

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

mendapatkan jumlah kontak yang valid, tapi kita belum berkomunikasi dengan mereka.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

dapatkan jumlah "andal" yang telah dikumpulkan sejauh ini.

untuk menentukan apakah kami telah mengumpulkan cukup banyak 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
)

batalkan kontak ke layanan

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

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

SendSyncRequest

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

mengirim permintaan sinkronisasi unicast ke kontak.

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

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

mengatur ulang semua kontak yang telah diselesaikan ke status tidak ada aktivitas lagi, tetapi jangan sentuh responsnya.

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

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

menetapkan semua kontak lokal yang valid ke status tidak ada aktivitas dan menghapus respons.

panggilan ini akan dilakukan sebelum kita mulai menghubunginya 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 simpul 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.

Ditujukan untuk digunakan secara internal oleh keluarga 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

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

melakukan inisialisasi untuk peran Server.

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

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

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

menghentikan klien yang tidak tersedia di callback.

Detail
Hasil
WEAVE_NO_ERROR saat berhasil

_ShutdownCoordinator

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 yang tidak tersedia di 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 Timer Weave saat kita melewati penghalang setelah booting yang tidak dapat diandalkan

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Menentukan apakah status tertentu beroperasi.

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

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

_OnSyncSucceeded

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