nl:: Weave:: Profiles:: Time:: TimeSyncNode
สรุป
การสืบทอด
รับค่าจาก nl::Weave::Profiles::Time::_TimeSyncNodeBase
ผู้ผลิตและผู้ทำลาย |
|
---|---|
TimeSyncNode(void)
|
mBootTimeForNextAutoDiscovery_usec
|
timesync_t
|
mIsAutoSyncEnabled
|
bool
สถานะที่ใช้สำหรับฟีเจอร์การซิงค์อัตโนมัติ
|
mIsUrgentDiscoveryPending
|
bool
|
mNominalDiscoveryPeriod_msec
|
int32_t
|
mShortestDiscoveryPeriod_msec
|
int32_t
|
mSyncPeriod_msec
|
int32_t
|
mActiveContact
|
Contact *
บริบทการสื่อสารเท่านั้น
|
mExchangeContext
|
|
mUnadjTimestampLastSent_usec
|
timesync_t
|
EnterState_Discover(void)
|
void
ฟังก์ชันการเปลี่ยนสถานะเหล่านี้เป็นแบบภายในและไม่สามารถแสดงรหัสข้อผิดพลาด เนื่องจากสถานะก่อนหน้านี้จะไม่สามารถจัดการได้
|
EnterState_ServiceSync_1(void)
|
void
|
EnterState_ServiceSync_2(void)
|
void
|
EnterState_Sync_1(void)
|
void
|
EnterState_Sync_2(void)
|
void
|
ประเภทสาธารณะ |
|
---|---|
ClientState
|
enum สถานะปัจจุบันของไคลเอ็นต์การซิงค์เวลานี้ |
CommState
|
enum สถานะการสื่อสารกับผู้ติดต่อบางราย |
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
|
typedefvoid(*
การเรียกกลับจะเกิดขึ้นก่อนที่เราจะคำนวณการแก้ไขเวลาจากการตอบกลับ |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
ติดต่อกลับเพื่อระบุว่าเราเพิ่งได้รับคำขอซิงค์เวลา |
ResponseStatus
|
enum สถานะการตอบกลับที่เก็บไว้สำหรับรายชื่อติดต่อบางรายการ |
ServerState{
|
enum สถานะปัจจุบันของเซิร์ฟเวอร์การซิงค์เวลานี้ |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
การเรียกกลับจะเกิดขึ้นเมื่อพิจารณาว่าการซิงค์ล้มเหลว รวมถึงการซิงค์อัตโนมัติ |
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
|
typedefbool(*
การเรียกกลับจะเกิดขึ้นหลังจากที่ระบบพิจารณาว่าการซิงค์สำเร็จ รวมถึงการซิงค์อัตโนมัติ แต่ก่อนที่จะนำผลลัพธ์ไปใช้ |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
เพื่อแจ้งว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา |
แอตทริบิวต์สาธารณะ |
|
---|---|
FilterTimeCorrectionContributor
|
|
OnSyncFailed
|
|
OnSyncRequestReceived
|
หากไม่ได้ตั้งค่าไว้ การใช้งานเริ่มต้นจะแสดงค่า "จริง" เสมอ
|
OnSyncSucceeded
|
หากไม่ได้ตั้งค่าไว้ การทำงานเริ่มต้นจะนำผลลัพธ์ทั้งหมด ยกเว้นการแก้ไขที่เซิร์ฟเวอร์มีน้อยมาก
|
OnTimeChangeNotificationReceived
|
|
mEncryptionType
|
uint8_t
วิธีการเข้ารหัสสำหรับการสื่อสารภายใน
|
mKeyId
|
uint16_t
รหัสคีย์ที่ใช้สำหรับการสื่อสารในท้องถิ่น
|
แอตทริบิวต์ที่ได้รับการปกป้อง |
|
---|---|
mApp
|
void *
ตัวชี้ไปยังข้อมูลเลเยอร์ที่สูงขึ้น
|
mClientState
|
|
mConnectionToService
|
การเชื่อมต่อ TCP ใช้เพื่อสื่อสารกับบริการ
|
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
|
ข้อมูลติดต่อที่ได้รับตลอดช่วงการสำรวจ
|
mIsAlwaysFresh
|
bool
|
mIsInCallback
|
bool
เป็นจริงหากเราอยู่ในโค้ดเรียกกลับในระดับที่สูงกว่า
|
mLastLikelihoodSent
|
int8_t
|
mNumContributorInLastLocalSync
|
uint8_t
|
mRole
|
TimeSyncRole
บทบาทจริงของโหนดนี้
|
mServerState
|
|
mServiceContact
|
|
mTimestampLastCorrectionFromServerOrNtp_usec
|
timesync_t
ก็ต้องเปิดระบบ เนื่องจากเราต้องการค่าชดเชยสำหรับเวลานอน
|
mTimestampLastLocalSync_usec
|
timesync_t
ก็ต้องเปิดระบบ เนื่องจากเราต้องการค่าชดเชยสำหรับเวลานอน
|
ฟังก์ชันสาธารณะ |
|
---|---|
Abort(void)
|
บังคับให้เครื่องยนต์กลับสู่สถานะไม่มีการใช้งาน ล้มเลิกสิ่งที่กำลังทำอยู่
|
DisableAutoSync(void)
|
void
ปิดใช้การซิงค์อัตโนมัติ
|
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
|
เปิดใช้การซิงค์อัตโนมัติ
|
GetCapacityOfContactList(void) const
|
int
getter แบบง่ายสำหรับจำนวนรายชื่อติดต่อสูงสุดที่มีการกำหนดค่าให้จัดเก็บเครื่องมือนี้
|
GetClientState(void) const
|
Getter แบบง่ายสำหรับสถานะไคลเอ็นต์
|
GetNextLikelihood(void) const
|
int8_t
จะดึงความเป็นไปได้ที่จะเก็บไว้ถาวรออก
|
GetServerState(void) const
|
โปรแกรม Getter แบบง่ายสำหรับสถานะเซิร์ฟเวอร์
|
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
เริ่มต้นไคลเอ็นต์นี้
|
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)
|
เริ่มต้นตัวประสานงานนี้
|
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
|
การเริ่มต้นสำหรับบทบาทเซิร์ฟเวอร์ต้องถูกเรียกใช้เป็นฟังก์ชันแรกหลังจากสร้างออบเจ็กต์หากตั้งใจให้เป็น Time Sync Server
|
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
|
void
เรียกใช้โดยชั้นที่สูงกว่าไปยังการแจ้งเตือนการเปลี่ยนแปลงเวลามัลติแคสต์
|
RegisterCorrectionFromServerOrNtp(void)
|
void
มีการเรียกด้วยเลเยอร์ที่สูงกว่าเพื่อระบุว่าเราเพิ่งเสร็จสิ้นการซิงค์กับทุกเซิร์ฟเวอร์หรือผ่านวิธีการที่เชื่อถือได้บางอย่าง เช่น NTP
|
RegisterLocalSyncOperation(const uint8_t aNumContributor)
|
void
เรียกใช้โดยระดับที่สูงกว่าเพื่อระบุว่าเราเพิ่งเสร็จสิ้นการซิงค์กับผู้ประสานงานท้องถิ่นคนอื่นๆ
|
Shutdown(void)
|
หยุดการทำงานได้ ไม่ว่าจะมีบทบาทใด
|
Sync(const bool aForceDiscoverAgain)
|
ซิงค์โดยใช้รายชื่อติดต่อที่มีอยู่
|
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
|
ซิงค์โดยใช้รายชื่อผู้ติดต่อที่ระบุ
|
SyncWithService(WeaveConnection *const aConnection)
|
ซิงค์โดยใช้การเชื่อมต่อ TCP ที่ระบุ รวมถึงการเข้ารหัสและรหัสคีย์ที่เกี่ยวข้อง
|
ฟังก์ชันที่มีการป้องกัน |
|
---|---|
AbortOnError(const WEAVE_ERROR aCode)
|
void
ล้มเลิกภายในหาก aCode ไม่ใช่WEAVE_NO_ERROR
|
AutoSyncNow(void)
|
void
ฟังก์ชันภายในเพื่อเริ่มเซสชันการซิงค์อัตโนมัติ
|
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)
|
ทำให้เกิดการติดต่อกลับไปยังเลเยอร์ของแอปพลิเคชัน
|
ClearState(void)
|
void
|
DestroyCommContext(void)
|
bool
ปิด ExchangeContext ของ Weave
|
EndLocalSyncAndTryCalculateTimeFix(void)
|
void
|
EndServiceSyncAndTryCalculateTimeFix(void)
|
void
|
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
|
Contact *
แสดงช่องเพื่อเก็บข้อมูลติดต่อ
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
รับรายชื่อติดต่อที่ถูกต้องและไม่มีการใช้งานครั้งต่อไปเพื่อพูดคุยด้วย
|
GetNumNotYetCompletedContacts(void)
|
int16_t
ดูจำนวนรายชื่อติดต่อที่ถูกต้อง แต่เรายังไม่ได้พูดคุยกับพวกเขา
|
GetNumReliableResponses(void)
|
int16_t
เพื่อรับจำนวนคำตอบที่ "เชื่อถือได้" ที่รวบรวมได้จนถึงขณะนี้
|
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
|
|
InvalidateAllContacts(void)
|
void
ทำให้รายชื่อติดต่อในเครื่องทั้งหมดไม่ถูกต้อง
|
InvalidateServiceContact(void)
|
void
ทำให้ข้อมูลติดต่อบริการเป็นโมฆะ
|
RegisterCommError(Contact *const aContact)
|
void
ลงทะเบียนข้อผิดพลาดในการสื่อสารสำหรับรายชื่อติดต่อบางรายการ และร่นระยะเวลาการค้นหาอัตโนมัติให้สั้นลงหากจำเป็นต้องใช้ aContact สามารถเป็นค่าว่างเพื่อเป็นการระบุว่าเราไม่มีใครที่จะพูดคุยด้วย จึงลดระยะเวลาการค้นหาอัตโนมัติให้สั้นลง
|
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
|
ส่งคำขอซิงค์ Unicast ไปยังรายชื่อติดต่อ
|
SetAllCompletedContactsToIdle(void)
|
int16_t
รีเซ็ตรายชื่อติดต่อที่เสร็จสมบูรณ์ทั้งหมดเป็นสถานะไม่มีการใช้งานอีกครั้ง แต่อย่าแตะการตอบกลับ
|
SetAllValidContactsToIdleAndInvalidateResponse(void)
|
int16_t
ตั้งค่ารายชื่อติดต่อในเครื่องที่ถูกต้องทั้งหมดเป็นสถานะไม่มีการใช้งานและล้างการตอบกลับ
|
SetClientState(const ClientState state)
|
void
|
SetupUnicastCommContext(Contact *const aContact)
|
สร้าง Weave Exchange ใหม่สำหรับการสื่อสารแบบ Unicast
|
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
|
void
จัดเก็บข้อมูลติดต่อของโหนดที่เพิ่งส่งการแจ้งเตือนการเปลี่ยนแปลงเวลาถึงเรา
|
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
|
void
ประมวลผลการตอบกลับที่มาจากคำขอมัลติแคสต์
|
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
|
void
ประมวลผลการตอบสนองที่กลับมาจากคำขอ Unicast
|
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
เริ่มต้นให้กับบทบาทไคลเอ็นต์
|
_InitServer(const bool aIsAlwaysFresh)
|
เป็นการเริ่มต้นสำหรับบทบาทเซิร์ฟเวอร์
|
_ShutdownClient(void)
|
หยุดไคลเอ็นต์ที่ไม่พร้อมใช้งานในโค้ดเรียกกลับ
|
_ShutdownCoordinator(void)
|
หยุด Coordinator ที่มีอยู่ในโค้ดเรียกกลับ
|
_ShutdownServer(void)
|
หยุดเซิร์ฟเวอร์ที่ไม่พร้อมใช้งานในโค้ดเรียกกลับ
|
ฟังก์ชันแบบคงที่ที่มีการป้องกัน |
|
---|---|
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
ติดต่อกลับจาก Weave Exchange เมื่อมีคำขอการซิงค์เวลา
|
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
โค้ดเรียกกลับจาก Weave Timer เมื่อเราผ่านอุปสรรคที่ไม่น่าเชื่อถือหลังการเปิดเครื่อง
|
IsOperationalState(ClientState aState)
|
bool
พิจารณาว่าสถานะที่ระบุทำงานหรือไม่
|
_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
สถานะที่ใช้สำหรับฟีเจอร์การซิงค์อัตโนมัติ
mIsUrgentDiscoveryPending
bool mIsUrgentDiscoveryPending
mNominalDiscoveryPeriod_msec
int32_t mNominalDiscoveryPeriod_msec
mShortestDiscoveryPeriod_msec
int32_t mShortestDiscoveryPeriod_msec
mSyncPeriod_msec
int32_t mSyncPeriod_msec
mExchangeContext
ExchangeContext * mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t mUnadjTimestampLastSent_usec
EnterState_Discover
void EnterState_Discover( void )
ฟังก์ชันการเปลี่ยนสถานะเหล่านี้เป็นแบบภายในและไม่สามารถแสดงรหัสข้อผิดพลาด เนื่องจากสถานะก่อนหน้านี้จะไม่สามารถจัดการได้
หากไม่สำเร็จ จะส่งผลให้เกิดการเปลี่ยนสถานะเป็นอีกสถานะหนึ่งในท้ายที่สุด (อาจหมดเวลา) แม้การจับเวลาจะไม่สำเร็จ ก็อาจทำผิดพลาดและติดอยู่ในสถานะที่ไม่ถูกต้อง
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 )
ประเภทสาธารณะ
ClientState
ClientState
สถานะปัจจุบันของไคลเอ็นต์การซิงค์เวลานี้
CommState
CommState
สถานะการสื่อสารกับผู้ติดต่อบางราย
รายการนี้ปรากฏต่อสาธารณะเนื่องจากรายชื่อติดต่อแสดงต่อสาธารณะ
ContributorFilter
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
การเรียกกลับจะเกิดขึ้นก่อนที่เราจะคำนวณการแก้ไขเวลาจากการตอบกลับ
เลเยอร์ของแอปพลิเคชันสามารถแทนที่ aContact[i].mResponseStatus เป็น kResponseStatus_Estimated เพื่อให้ระบบเพิกเฉยต่อการตอบสนองในการคำนวณ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
ติดต่อกลับเพื่อระบุว่าเราเพิ่งได้รับคำขอซิงค์เวลา
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
การส่งคืน |
false และเครื่องมือจะไม่สนใจคำขอนี้
|
ResponseStatus
ResponseStatus
สถานะการตอบกลับที่เก็บไว้สำหรับรายชื่อติดต่อบางรายการ
รายการนี้ปรากฏต่อสาธารณะเนื่องจากรายชื่อติดต่อแสดงต่อสาธารณะ
ServerState
ServerState
สถานะปัจจุบันของเซิร์ฟเวอร์การซิงค์เวลานี้
พร็อพเพอร์ตี้ | |
---|---|
kServerState_Idle
|
เซิร์ฟเวอร์พร้อมที่จะตอบสนองต่อคำขอด้วยการตั้งค่าปกติ |
kServerState_UnreliableAfterBoot
|
เวลาที่สงวนไว้สำหรับเซิร์ฟเวอร์ในการซิงค์เวลาของระบบผ่านวิธีการอื่นๆ จะมีความหมายก็ต่อเมื่อ aIsalwaysFresh เป็นจริงเมื่อมีการเรียก Init |
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
การเรียกกลับจะเกิดขึ้นเมื่อพิจารณาว่าการซิงค์ล้มเหลว รวมถึงการซิงค์อัตโนมัติ
โปรดทราบว่าโค้ดเรียกกลับจะไม่เกิดขึ้นหากมีการเรียก "ยกเลิก" เพื่อหยุดการซิงค์
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
การเรียกกลับจะเกิดขึ้นหลังจากที่ระบบพิจารณาว่าการซิงค์สำเร็จ รวมถึงการซิงค์อัตโนมัติ แต่ก่อนที่จะนำผลลัพธ์ไปใช้
โปรดทราบว่าการประสบความสำเร็จไม่ได้หมายความว่าเราจะมีผลลัพธ์ที่เกี่ยวข้อง ในกรณีที่ไม่ได้รับการตอบกลับ ระบบจะตั้งค่า aNumContributor เป็น 0 เลเยอร์ของแอปพลิเคชันสามารถเขียนทับ aContact[i].mResponseStatus เป็น kResponseStatus_ในแคมเปญ เพื่อที่จะไม่สนใจการตอบกลับดังกล่าวในการคำนวณ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
การส่งคืน |
true หากใช้ออฟเซ็ตนี้เพื่อปรับเวลาของระบบ ในกรณีที่ aNumContributor เป็น 0 ระบบจะไม่สนใจค่าที่แสดงผล
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
เพื่อแจ้งว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา
หากเปิดใช้โหมดซิงค์อัตโนมัติ ระบบจะกำหนดเวลาซิงค์เวลาไม่นานหลังจากการเรียกกลับนี้โดยอัตโนมัติ มิเช่นนั้น เลเยอร์ของแอปพลิเคชันสามารถเลือกที่จะเรียกใช้กลุ่มฟังก์ชันการซิงค์เพื่อเริ่มการซิงค์โดยตรงที่ไม่ได้ถูกจำกัดโดยกฎการเรียกกลับปกติที่ไม่มีในการเรียกกลับ อย่างไรก็ตาม โปรดทราบว่าโค้ดเรียกกลับพิเศษนี้ยังอยู่บนสแต็กโค้ดเรียกกลับของเลเยอร์ Weave Exchange
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
แอตทริบิวต์สาธารณะ
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnSyncRequestReceived
OnSyncRequestReceivedHandler OnSyncRequestReceived
หากไม่ได้ตั้งค่าไว้ การใช้งานเริ่มต้นจะแสดงค่า "จริง" เสมอ
OnSyncSucceeded
SyncSucceededHandler OnSyncSucceeded
หากไม่ได้ตั้งค่าไว้ การทำงานเริ่มต้นจะนำผลลัพธ์ทั้งหมด ยกเว้นการแก้ไขที่เซิร์ฟเวอร์มีน้อยมาก
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
วิธีการเข้ารหัสสำหรับการสื่อสารภายใน
mKeyId
uint16_t mKeyId
รหัสคีย์ที่ใช้สำหรับการสื่อสารในท้องถิ่น
แอตทริบิวต์ที่ได้รับการปกป้อง
mApp
void * mApp
ตัวชี้ไปยังข้อมูลเลเยอร์ที่สูงขึ้น
mClientState
ClientState mClientState
mConnectionToService
WeaveConnection * mConnectionToService
การเชื่อมต่อ TCP ใช้เพื่อสื่อสารกับบริการ
mContacts
Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
ข้อมูลติดต่อที่ได้รับตลอดช่วงการสำรวจ
mIsAlwaysFresh
bool mIsAlwaysFresh
mIsInCallback
bool mIsInCallback
เป็นจริงหากเราอยู่ในโค้ดเรียกกลับในระดับที่สูงกว่า
mLastLikelihoodSent
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
mRole
TimeSyncRole mRole
บทบาทจริงของโหนดนี้
mServerState
ServerState mServerState
mServiceContact
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
ก็ต้องเปิดระบบ เนื่องจากเราต้องการค่าชดเชยสำหรับเวลานอน
mTimestampLastLocalSync_usec
timesync_t mTimestampLastLocalSync_usec
ก็ต้องเปิดระบบ เนื่องจากเราต้องการค่าชดเชยสำหรับเวลานอน
ฟังก์ชันสาธารณะ
ล้มเลิก
WEAVE_ERROR Abort( void )
บังคับให้เครื่องยนต์กลับสู่สถานะไม่มีการใช้งาน ล้มเลิกสิ่งที่กำลังทำอยู่
โปรดทราบว่าจะไม่มีการเรียกใช้การซิงค์ที่สำเร็จหรือล้มเหลว Weave Exchange ทั้งหมดจะปิดลง การเชื่อมต่อ TCP จะไม่ได้รับการแก้ไขเพิ่มเติม ไม่มีการดำเนินการหากเราอยู่ในสถานะไม่มีการใช้งานอยู่แล้ว ไม่สามารถใช้ในโค้ดเรียกกลับ
รายละเอียด | |
---|---|
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
DisableAutoSync
void DisableAutoSync( void )
ปิดใช้การซิงค์อัตโนมัติ
ใช้ได้เฉพาะในสถานะ "ไม่อยู่" เท่านั้น ไม่มีในโค้ดเรียกกลับ
EnableAutoSync
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
เปิดใช้การซิงค์อัตโนมัติ
ใช้ได้เฉพาะในสถานะไม่มีการใช้งานเท่านั้น การค้นพบจะเกิดขึ้นทันที ไม่พร้อมใช้งานในโค้ดเรียกกลับ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
getter แบบง่ายสำหรับจำนวนรายชื่อติดต่อสูงสุดที่มีการกำหนดค่าให้จัดเก็บเครื่องมือนี้
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
จะดึงความเป็นไปได้ที่จะเก็บไว้ถาวรออก
ผลลัพธ์จะใช้ได้ต่อเมื่อการซิงค์เสร็จสมบูรณ์ ภายในโค้ดเรียกกลับของ OnSyncSucceeded และ OnSyncFailed ไม่เช่นนั้นก็จะมีผลชั่วคราวและอาจเป็นแนวโน้มในปัจจุบัน ไม่ใช่ความน่าจะเป็นถัดไปที่จะนำมาใช้
รายละเอียด | |
---|---|
การส่งคืน |
ความเป็นไปได้ที่จะใช้คำตอบในคำขอถัดไป
|
GetServerState
ServerState GetServerState( void ) const
โปรแกรม Getter แบบง่ายสำหรับสถานะเซิร์ฟเวอร์
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
เริ่มต้นไคลเอ็นต์นี้
ใช้ไม่ได้ในโค้ดเรียกกลับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
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 )
เริ่มต้นตัวประสานงานนี้
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
InitServer
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
การเริ่มต้นสำหรับบทบาทเซิร์ฟเวอร์ต้องถูกเรียกใช้เป็นฟังก์ชันแรกหลังจากสร้างออบเจ็กต์หากตั้งใจให้เป็น Time Sync Server
ใช้ไม่ได้ในโค้ดเรียกกลับ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
เรียกใช้โดยชั้นที่สูงกว่าไปยังการแจ้งเตือนการเปลี่ยนแปลงเวลามัลติแคสต์
ใช้ไม่ได้ในโค้ดเรียกกลับ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
มีการเรียกด้วยเลเยอร์ที่สูงกว่าเพื่อระบุว่าเราเพิ่งเสร็จสิ้นการซิงค์กับทุกเซิร์ฟเวอร์หรือผ่านวิธีการที่เชื่อถือได้บางอย่าง เช่น NTP
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
เรียกใช้โดยระดับที่สูงกว่าเพื่อระบุว่าเราเพิ่งเสร็จสิ้นการซิงค์กับผู้ประสานงานท้องถิ่นคนอื่นๆ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ปิดการทำงาน
WEAVE_ERROR Shutdown( void )
หยุดการทำงานได้ ไม่ว่าจะมีบทบาทใด
ต้องมีการเรียกใช้ฟังก์ชันนี้เพื่อเรียกคืนทรัพยากรที่จัดสรรอย่างเหมาะสม ก่อนที่จะสามารถเรียกใช้ฟังก์ชัน init ใดๆ ได้อีก ไม่สามารถใช้ได้ในโค้ดเรียกกลับ
รายละเอียด | |
---|---|
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
ซิงค์
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
ซิงค์โดยใช้รายชื่อติดต่อที่มีอยู่
การซิงค์อาจล้มเหลวหากไม่มีรายชื่อติดต่อที่ถูกต้อง ตั้งค่าForceDiscoverAgain เป็น "จริง" เพื่อบังคับการค้นหาทันที ใช้ได้ในสถานะไม่มีการใช้งานเท่านั้น ไม่สามารถใช้ในโค้ดเรียกกลับ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
ซิงค์โดยใช้รายชื่อผู้ติดต่อที่ระบุ
รายการรายชื่อติดต่อที่มีอยู่จะถูกล้าง มีเฉพาะในสถานะไม่มีการใช้งาน ไม่สามารถใช้ได้ในโค้ดเรียกกลับ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
ซิงค์โดยใช้การเชื่อมต่อ TCP ที่ระบุ รวมถึงการเข้ารหัสและรหัสคีย์ที่เกี่ยวข้อง
ผู้โทรจะต้องเป็นเจ้าของการเชื่อมต่อ TCP หลังจากการซิงค์เสร็จสิ้น จะไม่มีการเขียนทับโค้ดเรียกกลับสำหรับการเชื่อมต่อ TCP เนื่องจากระบบจะสร้าง Weave Exchange ใหม่และตั้งค่าการเรียกกลับที่ด้านบนของบริบทดังกล่าวเท่านั้นและจะมีเฉพาะในสถานะไม่มีการใช้งาน และไม่สามารถใช้ได้ในโค้ดเรียกกลับ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
TimeSyncNode
TimeSyncNode( void )
ฟังก์ชันที่มีการป้องกัน
AbortOnError
void AbortOnError( const WEAVE_ERROR aCode )
ล้มเลิกภายในหาก aCode ไม่ใช่WEAVE_NO_ERROR
AutoSyncNow
void AutoSyncNow( void )
ฟังก์ชันภายในเพื่อเริ่มเซสชันการซิงค์อัตโนมัติ
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 )
ทำให้เกิดการติดต่อกลับไปยังเลเยอร์ของแอปพลิเคชัน
ตั้งค่า aIsSuccess เป็น false เพื่อสร้างการเรียกกลับข้อผิดพลาด
ClearState
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
FindReplaceableContact
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
แสดงช่องเพื่อเก็บข้อมูลติดต่อ
GetClientStateName
const char *const GetClientStateName( void ) const
GetNextIdleContact
Contact * GetNextIdleContact( void )
รับรายชื่อติดต่อที่ถูกต้องและไม่มีการใช้งานครั้งต่อไปเพื่อพูดคุยด้วย
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
ดูจำนวนรายชื่อติดต่อที่ถูกต้อง แต่เรายังไม่ได้พูดคุยกับพวกเขา
GetNumReliableResponses
int16_t GetNumReliableResponses( void )
เพื่อรับจำนวนคำตอบที่ "เชื่อถือได้" ที่รวบรวมได้จนถึงขณะนี้
เรียกเพื่อตรวจสอบว่าเราได้รวบรวมคำตอบได้เพียงพอแล้วหรือไม่
InitState
WEAVE_ERROR InitState( const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr )
InvalidateAllContacts
void InvalidateAllContacts( void )
ทำให้รายชื่อติดต่อในเครื่องทั้งหมดไม่ถูกต้อง
InvalidateServiceContact
void InvalidateServiceContact( void )
ทำให้ข้อมูลติดต่อบริการเป็นโมฆะ
RegisterCommError
void RegisterCommError( Contact *const aContact )
ลงทะเบียนข้อผิดพลาดในการสื่อสารสำหรับรายชื่อติดต่อบางรายการ และร่นระยะเวลาการค้นหาอัตโนมัติให้สั้นลงหากจำเป็นต้องใช้ aContact สามารถเป็นค่าว่างเพื่อเป็นการระบุว่าเราไม่มีใครที่จะพูดคุยด้วย จึงลดระยะเวลาการค้นหาอัตโนมัติให้สั้นลง
SendSyncRequest
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
ส่งคำขอซิงค์ Unicast ไปยังรายชื่อติดต่อ
*rIsMessageSent จะได้รับการตั้งค่าเพื่อระบุว่ามีการส่งข้อความไปแล้วหรือไม่ ข้อผิดพลาดในการสื่อสาร เช่น ไม่สามารถเข้าถึงที่อยู่ได้ ดังนั้นผู้โทรจะต้องตรวจสอบทั้งรหัสส่งคืนและ *rIsMessageSent
SetAllCompletedContactsToIdle
int16_t SetAllCompletedContactsToIdle( void )
รีเซ็ตรายชื่อติดต่อที่เสร็จสมบูรณ์ทั้งหมดเป็นสถานะไม่มีการใช้งานอีกครั้ง แต่อย่าแตะการตอบกลับ
ซึ่งเรียกว่าการสื่อสาร 2 รอบไปยังโหนดเดียวกัน
SetAllValidContactsToIdleAndInvalidateResponse
int16_t SetAllValidContactsToIdleAndInvalidateResponse( void )
ตั้งค่ารายชื่อติดต่อในเครื่องที่ถูกต้องทั้งหมดเป็นสถานะไม่มีการใช้งานและล้างการตอบกลับ
ระบบจะโทรหาข้อมูลนี้ก่อนที่เราจะเริ่มติดต่อพวกเขาทีละรายการ
SetClientState
void SetClientState( const ClientState state )
SetupUnicastCommContext
WEAVE_ERROR SetupUnicastCommContext( Contact *const aContact )
สร้าง Weave Exchange ใหม่สำหรับการสื่อสารแบบ Unicast
StoreNotifyingContact
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
จัดเก็บข้อมูลติดต่อของโหนดที่เพิ่งส่งการแจ้งเตือนการเปลี่ยนแปลงเวลาถึงเรา
UpdateMulticastSyncResponse
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
ประมวลผลการตอบกลับที่มาจากคำขอมัลติแคสต์
UpdateUnicastSyncResponse
void UpdateUnicastSyncResponse( const TimeSyncResponse & aResponse )
ประมวลผลการตอบสนองที่กลับมาจากคำขอ Unicast
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
เริ่มต้นให้กับบทบาทไคลเอ็นต์
มีไว้สำหรับใช้ภายในโดยกลุ่มฟังก์ชันสาธารณะของ Init ต้องตั้งค่า mClientState ก่อนการแสดงผล ไม่พร้อมใช้งานในโค้ดเรียกกลับ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
เซิร์ฟเวอร์
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
เป็นการเริ่มต้นสำหรับบทบาทเซิร์ฟเวอร์
มีไว้สำหรับใช้ภายในโดยกลุ่มฟังก์ชันสาธารณะของ Init ต้องตั้งค่า mClientState ก่อนการแสดงผล ไม่พร้อมใช้งานในโค้ดเรียกกลับ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ไคลเอ็นต์ปิด
WEAVE_ERROR _ShutdownClient( void )
หยุดไคลเอ็นต์ที่ไม่พร้อมใช้งานในโค้ดเรียกกลับ
รายละเอียด | |
---|---|
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ตัวประสานงานปิดการทำงาน
WEAVE_ERROR _ShutdownCoordinator( void )
หยุด Coordinator ที่มีอยู่ในโค้ดเรียกกลับ
รายละเอียด | |
---|---|
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ปิดเซิร์ฟเวอร์
WEAVE_ERROR _ShutdownServer( void )
หยุดเซิร์ฟเวอร์ที่ไม่พร้อมใช้งานในโค้ดเรียกกลับ
รายละเอียด | |
---|---|
การส่งคืน |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
ฟังก์ชันแบบคงที่ที่มีการป้องกัน
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 )
ติดต่อกลับจาก Weave Exchange เมื่อมีคำขอการซิงค์เวลา
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 )
โค้ดเรียกกลับจาก Weave Timer เมื่อเราผ่านอุปสรรคที่ไม่น่าเชื่อถือหลังการเปิดเครื่อง
IsOperationalState
bool IsOperationalState( ClientState aState )
พิจารณาว่าสถานะที่ระบุทำงานหรือไม่
วิธีการเพื่อความสะดวกในการพิจารณาว่า ClientState แสดงถึงสถานะการดำเนินการหรือไม่ กล่าวคือ ไคลเอ็นต์ได้เริ่มต้นใช้งานเสร็จสมบูรณ์แล้วและไม่ได้อยู่ในกระบวนการปิดการทำงาน
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
true ถ้าสถานะล้มเหลวหลังจากการเริ่มต้นใช้งานเสร็จสมบูรณ์แล้ว และก่อนที่การปิดตัวจะเริ่มต้นขึ้น false หากไม่เป็นเช่นนั้น
|
_OnSynceded แล้ว
bool _OnSyncSucceeded( void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor )