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(*
Callback จะเกิดขึ้นทันทีก่อนที่เราจะคำนวณการแก้ไขเวลาจากคำตอบ |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
Callback เพื่อระบุว่าเราเพิ่งได้รับคำขอซิงค์เวลา |
ResponseStatus
|
enum จัดเก็บคำตอบสำหรับรายชื่อติดต่อบางรายการ |
ServerState{
|
enum สถานะปัจจุบันของเซิร์ฟเวอร์การซิงค์เวลานี้ |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
Callback เกิดขึ้นเมื่อระบบถือว่าการซิงค์ล้มเหลว ซึ่งรวมถึงการซิงค์อัตโนมัติ |
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
|
typedefbool(*
Callback จะเกิดขึ้นหลังจากที่การซิงค์ถือว่าเสร็จสมบูรณ์ ซึ่งรวมถึงการซิงค์อัตโนมัติ แต่ก่อนที่จะมีการนำผลลัพธ์ไปใช้ |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
Callback เพื่อระบุว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา |
แอตทริบิวต์สาธารณะ |
|
---|---|
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
Simple Getter สำหรับจำนวนรายชื่อติดต่อสูงสุดที่เครื่องมือค้นหานี้มีการกำหนดค่าให้จัดเก็บ
|
GetClientState(void) const
|
Getter แบบง่ายสำหรับสถานะไคลเอ็นต์
|
GetNextLikelihood(void) const
|
int8_t
ให้แยกค่าแนวโน้มต่อเนื่อง
|
GetServerState(void) const
|
Simple 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)
|
เริ่มต้นใช้งาน Coordinator นี้
|
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
|
เริ่มต้น สำหรับบทบาทเซิร์ฟเวอร์ ต้องเรียกใช้เป็นฟังก์ชันแรกหลังจากสร้างออบเจ็กต์หากตั้งใจที่จะเป็นเซิร์ฟเวอร์การซิงค์เวลา
|
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
|
void
เรียกใช้การแจ้งเตือนการเปลี่ยนแปลงเวลาของมัลติแคสต์จากเลเยอร์ที่สูงกว่า
|
RegisterCorrectionFromServerOrNtp(void)
|
void
เรียกใช้ด้วยเลเยอร์ที่สูงกว่าเพื่อระบุว่าเราเพิ่งทำการซิงค์กับเซิร์ฟเวอร์ใดๆ ตัวหนึ่งเสร็จหรือผ่านทางวิธีการที่เชื่อถือได้ เช่น NTP
|
RegisterLocalSyncOperation(const uint8_t aNumContributor)
|
void
เรียกใช้โดยเลเยอร์ที่สูงกว่าเพื่อระบุว่าเราเพิ่งซิงค์กับผู้ประสานงานรายอื่นในท้องถิ่นเสร็จเรียบร้อยแล้ว 1 ครั้ง
|
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
ปิด Weave ExchangeContext
|
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
บันทึกข้อผิดพลาดในการสื่อสารสำหรับรายชื่อติดต่อหนึ่งๆ และลดระยะเวลาการค้นพบอัตโนมัติหากจำเป็น รายชื่อติดต่ออาจมีค่าเป็น NULL เพื่อระบุว่าเราไม่มีผู้ติดต่อ จึงลดระยะเวลาการค้นหาอัตโนมัติให้สั้นลง
|
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
ประมวลผลคำตอบที่ตอบกลับจากคำขอยูนิแคสต์
|
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
เริ่มต้นสำหรับบทบาทไคลเอ็นต์
|
_InitServer(const bool aIsAlwaysFresh)
|
เริ่มต้น สำหรับบทบาทเซิร์ฟเวอร์
|
_ShutdownClient(void)
|
หยุดไคลเอ็นต์ที่ใช้งานไม่ได้ใน Callback
|
_ShutdownCoordinator(void)
|
หยุด Coordinator ที่ไม่สามารถใช้งานได้ใน Callback
|
_ShutdownServer(void)
|
หยุดเซิร์ฟเวอร์ที่ใช้งานไม่ได้ใน Callback
|
ฟังก์ชันแบบคงที่ที่มีการป้องกัน |
|
---|---|
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 จาก 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
Callback จาก 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)
Callback จะเกิดขึ้นก่อนที่จะมีการคำนวณการแก้ไขเวลาจากคำตอบ
เลเยอร์ของแอปพลิเคชันอาจเขียนทับ aContact[i].mResponseStatus เป็น kResponseStatus_Attributes ในการคำนวณ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
Callback เพื่อระบุว่าเราเพิ่งได้รับคำขอซิงค์เวลา
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
การคืนสินค้า |
false และเครื่องมือค้นหาจะไม่สนใจคำขอนี้
|
ResponseStatus
ResponseStatus
จัดเก็บคำตอบสำหรับรายชื่อติดต่อบางรายการ
รายการนี้แสดงต่อสาธารณะเนื่องจากข้อมูลติดต่อแสดงต่อสาธารณะ
ServerState
ServerState
สถานะปัจจุบันของเซิร์ฟเวอร์การซิงค์เวลานี้
พร็อพเพอร์ตี้ | |
---|---|
kServerState_Idle
|
เซิร์ฟเวอร์พร้อมที่จะตอบสนองคำขอด้วยการตั้งค่าปกติ |
kServerState_UnreliableAfterBoot
|
เวลาที่สงวนไว้สำหรับเซิร์ฟเวอร์ในการซิงค์เวลาของระบบผ่านวิธีอื่นๆ จะมีความหมายก็ต่อเมื่อ aIs AlwaysFresh เป็นจริงเมื่อมีการเรียก Init |
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
Callback เกิดขึ้นเมื่อระบบถือว่าการซิงค์ล้มเหลว ซึ่งรวมถึงการซิงค์อัตโนมัติ
โปรดทราบว่า Callback จะไม่เกิดขึ้นหากมีการเรียก Abort เพื่อหยุดการซิงค์
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
Callback จะเกิดขึ้นหลังจากที่การซิงค์ถือว่าเสร็จสมบูรณ์ ซึ่งรวมถึงการซิงค์อัตโนมัติ แต่ก่อนที่จะมีการนำผลลัพธ์ไปใช้
โปรดทราบว่าการประสบความสำเร็จไม่ได้หมายความว่าเราได้ผลลัพธ์ที่เกี่ยวข้อง ในกรณีที่ไม่ได้รับการตอบกลับ ระบบจะตั้งค่า aNumContributor เป็น 0 เลเยอร์แอปพลิเคชันอาจเขียนทับ aContact[i].mResponseStatus เป็น kResponseStatus_ไม่ถูกต้อง เพื่อที่ว่าจะได้รับเพิกเฉยต่อการตอบกลับในการคำนวณ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
การคืนสินค้า |
"จริง" หากจะใช้ออฟเซ็ตนี้เพื่อปรับเวลาของระบบ ในกรณีที่ aNumContributor เป็น 0 ระบบจะไม่สนใจค่าที่ส่งกลับ
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
Callback เพื่อระบุว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา
หากเปิดใช้โหมดซิงค์อัตโนมัติ ระบบจะกำหนดเวลาซิงค์เวลาหลังจาก Callback นี้โดยอัตโนมัติในไม่ช้า มิฉะนั้นเลเยอร์ของแอปพลิเคชันสามารถเลือกเรียกกลุ่มฟังก์ชันการซิงค์เพื่อเริ่มการดำเนินการซิงค์โดยตรง ซึ่งไม่จำกัดโดยกฎปกติที่ใช้งานไม่ได้ใน Call-back อย่างไรก็ตาม โปรดทราบว่าจะต้องมีการระบุ Callback พิเศษนี้ไว้ที่ด้านบนของสแต็ก Callback ของเลเยอร์การแลกเปลี่ยน Weave
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
แอตทริบิวต์สาธารณะ
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 มากกว่านี้ ไม่มีการดำเนินการ หากเราอยู่ในสถานะไม่มีการใช้งาน ใช้ไม่ได้ใน Callback
รายละเอียด | |
---|---|
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
DisableAutoSync
void DisableAutoSync( void )
ปิดใช้การซิงค์อัตโนมัติ
พร้อมใช้งานในสถานะไม่มีการใช้งานเท่านั้น ใช้ไม่ได้ใน Callback
EnableAutoSync
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
เปิดใช้การซิงค์อัตโนมัติ
พร้อมใช้งานในสถานะไม่มีการใช้งานเท่านั้น การค้นพบก็เกิดขึ้นได้ในทันที ใช้ไม่ได้ใน Callback
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
Simple Getter สำหรับจำนวนรายชื่อติดต่อสูงสุดที่เครื่องมือค้นหานี้มีการกำหนดค่าให้จัดเก็บ
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
แยกความเป็นไปได้สำหรับความต่อเนื่อง
ผลลัพธ์จะใช้ได้หลังจากการซิงค์เสร็จสมบูรณ์ ภายใน Callback ของ OnSyncSucceeded และ OnSyncFailed เท่านั้น หากไม่เป็นเช่นนั้น อาจเป็นเหตุการณ์ชั่วคราวและอาจเป็นแนวโน้มในปัจจุบ ไม่ใช่ถัดไปที่จะใช้
รายละเอียด | |
---|---|
การคืนสินค้า |
แนวโน้มที่จะใช้คำตอบในคำขอถัดไป
|
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
เริ่มต้นไคลเอ็นต์นี้
ไม่พร้อมใช้งานใน Callback
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
การคืนสินค้า |
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 )
เริ่มต้นใช้งาน Coordinator นี้
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
InitServer
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
เริ่มต้น สำหรับบทบาทเซิร์ฟเวอร์ ต้องเรียกใช้เป็นฟังก์ชันแรกหลังจากสร้างออบเจ็กต์หากตั้งใจที่จะเป็นเซิร์ฟเวอร์การซิงค์เวลา
ไม่พร้อมใช้งานใน Callback
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
เรียกใช้การแจ้งเตือนการเปลี่ยนแปลงเวลาของมัลติแคสต์จากเลเยอร์ที่สูงกว่า
ใช้ไม่ได้ใน Callback
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
เรียกใช้ด้วยเลเยอร์ที่สูงกว่าเพื่อระบุว่าเราเพิ่งทำการซิงค์กับเซิร์ฟเวอร์ใดๆ ตัวหนึ่งเสร็จหรือผ่านทางวิธีการที่เชื่อถือได้ เช่น NTP
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
เรียกใช้โดยเลเยอร์ระดับสูงขึ้นเพื่อบ่งชี้ว่าเราเพิ่งซิงค์กับผู้ประสานงานคนอื่นๆ ในท้องถิ่นเสร็จเรียบร้อยแล้ว
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ปิดการทำงาน
WEAVE_ERROR Shutdown( void )
หยุดการทำงานของบริการ ไม่ว่าจะมีบทบาทใด
ต้องเรียกใช้ฟังก์ชันนี้เพื่อเรียกคืนทรัพยากรที่จัดสรรไว้อย่างเหมาะสม ก่อนที่จะเรียกใช้ฟังก์ชัน init ได้อีก ใช้ไม่ได้ใน Callback
รายละเอียด | |
---|---|
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
ซิงค์
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
ซิงค์โดยใช้รายชื่อติดต่อที่มีอยู่
การซิงค์อาจล้มเหลวหากไม่มีรายชื่อติดต่อที่ถูกต้อง ตั้งค่า aForceDiscoverAgain เป็น "จริง" เพื่อบังคับให้ค้นพบทันที พร้อมใช้งานในสถานะไม่มีการใช้งานเท่านั้น ใช้ไม่ได้ใน Callback
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
ซิงค์โดยใช้รายการรายชื่อติดต่อที่กำหนด
ข้อมูลรายชื่อติดต่อที่มีอยู่จะถูกล้าง พร้อมใช้งานในสถานะไม่มีการใช้งานเท่านั้น ใช้ไม่ได้ใน Callback
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
ซิงค์โดยใช้การเชื่อมต่อ TCP ที่กำหนดและการเข้ารหัสและรหัสคีย์ที่เชื่อมโยง
ผู้โทรจะต้องเป็นเจ้าของการเชื่อมต่อ TCP หลังจากซิงค์เสร็จแล้ว จะไม่มีการเขียนทับ Callback สำหรับการเชื่อมต่อ TCP เนื่องจากระบบจะสร้าง Weave Exchange ใหม่ และการตั้งค่า Callback ที่อยู่เหนือบริบทนั้นจะพร้อมใช้งานในสถานะไม่มีการใช้งานเท่านั้น ใช้ไม่ได้ใน Callback
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
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 )
บันทึกข้อผิดพลาดในการสื่อสารสำหรับรายชื่อติดต่อหนึ่งๆ และลดระยะเวลาการค้นพบอัตโนมัติหากจำเป็น รายชื่อติดต่ออาจมีค่าเป็น NULL เพื่อระบุว่าเราไม่มีผู้ติดต่อ จึงลดระยะเวลาการค้นหาอัตโนมัติให้สั้นลง
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 )
ประมวลผลคำตอบที่ตอบกลับจากคำขอยูนิแคสต์
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
เริ่มต้นสำหรับบทบาทไคลเอ็นต์
มีไว้เพื่อใช้ภายในโดยกลุ่มฟังก์ชันสาธารณะของ Init ต้องตั้งค่า mClientState ก่อนส่งคืน ไม่พร้อมใช้งานใน Callback
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
เริ่มต้น สำหรับบทบาทเซิร์ฟเวอร์
มีไว้เพื่อใช้ภายในโดยกลุ่มฟังก์ชันสาธารณะของ Init ต้องตั้งค่า mClientState ก่อนส่งคืน ไม่พร้อมใช้งานใน Callback
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ShutdownClient
WEAVE_ERROR _ShutdownClient( void )
หยุดไคลเอ็นต์ที่ใช้งานไม่ได้ใน Callback
รายละเอียด | |
---|---|
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
หยุด Coordinator ที่ไม่สามารถใช้งานได้ใน Callback
รายละเอียด | |
---|---|
การคืนสินค้า |
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ
|
_ShutdownServer
WEAVE_ERROR _ShutdownServer( void )
หยุดเซิร์ฟเวอร์ที่ใช้งานไม่ได้ใน Callback
รายละเอียด | |
---|---|
การคืนสินค้า |
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 )
Callback จาก 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 )
Callback จาก Weave Timer เมื่อเราผ่านข้อจำกัดที่ไม่น่าเชื่อถือหลังจากอุปสรรคในการเปิดเครื่อง
IsOperationalState
bool IsOperationalState( ClientState aState )
ตรวจสอบว่าสถานะที่ระบุใช้งานได้หรือไม่
วิธีที่สะดวกในการพิจารณาว่า ClientState แสดงถึงสถานะการดำเนินการหรือไม่ กล่าวคือ ไคลเอ็นต์ได้เริ่มต้นการใช้งานเสร็จสมบูรณ์แล้วและไม่ได้อยู่ระหว่างการปิดระบบ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
"จริง" หากสถานะอยู่หลังจากการเริ่มต้นเสร็จสมบูรณ์แล้วและก่อนที่การปิดเครื่องจะเริ่มขึ้น มิเช่นนั้น จะเป็นเท็จ
|
_OnSyncSucceeded
bool _OnSyncSucceeded( void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor )