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

สรุป

ประเภทสาธารณะ

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
สถานะปัจจุบันของไคลเอ็นต์การซิงค์เวลานี้
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
ติดต่อกลับหลังจากพยายามซิงค์เวลาทั้ง 2 ครั้งเรียบร้อยแล้ว
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
โทรกลับเพื่อแจ้งว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา

ประเภทที่ได้รับการป้องกัน

@324 enum

แอตทริบิวต์สาธารณะ

OnTimeChangeNotificationReceived

แอตทริบิวต์ที่ได้รับการปกป้อง

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
ใช้ในการจัดเก็บเวลาของเที่ยวบินเที่ยวเดียว
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
ใช้เพื่อจัดเก็บการประทับเวลาเมื่อบันทึกผลลัพธ์แล้ว
mRemoteTimestamp_usec
timesync_t
ที่ใช้จัดเก็บเวลาของระบบของโหนดระยะไกล เมื่อข้อความตอบกลับกำลังจะส่งข้อความ
mUnadjTimestampLastSent_usec
timesync_t

ฟังก์ชันสาธารณะ

Abort(void)
void
ล้มเลิกการซิงค์เวลาปัจจุบัน
GetClientState(void) const
เรียกดูสถานะปัจจุบันของไคลเอ็นต์นี้
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
เริ่มต้นไคลเอ็นต์นี้
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
ซิงค์โดยใช้การเชื่อมโยงที่กำหนด และทำการเรียกกลับโดยใช้ตัวชี้ที่ระบุ

ฟังก์ชันที่มีการป้องกัน

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
ทำให้ข้อมูลที่ลงทะเบียนเป็นโมฆะเพื่อการแก้ไขเวลา
IsRegisteredResultValid(void)
bool
ตรวจสอบว่าข้อมูลที่ลงทะเบียนสำหรับการแก้ไขเวลาถูกต้อง
OnResponseTimeout(void)
void
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState(void)
void
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest(void)
SetClientState(const ClientState state)
void
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
void

ฟังก์ชันแบบคงที่ที่มีการป้องกัน

HandleResponseTimeout(ExchangeContext *aEC)
void
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

ประเภทสาธารณะ

ClientState

 ClientState

สถานะปัจจุบันของไคลเอ็นต์การซิงค์เวลานี้

พร็อพเพอร์ตี้
kClientState_Idle

เริ่มต้นแล้ว กำลังรอการแจ้งเตือนการเปลี่ยนแปลงเวลา แต่ไม่มีการซิงค์เวลาเกิดขึ้น

kClientState_Sync_1

กำลังดำเนินการกับการพยายามซิงค์ครั้งแรก

kClientState_Sync_2

กำลังดำเนินการกับการพยายามซิงค์ครั้งที่สอง

SyncCompletionHandler

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

ติดต่อกลับหลังจากพยายามซิงค์เวลาทั้ง 2 ครั้งเรียบร้อยแล้ว

หาก aErrorCode คือ WEAVE_NO_ERROR แสดงว่ามีการพยายามอย่างน้อย 1 ครั้งที่สำเร็จ มิเช่นนั้น ทั้ง 2 รายการล้มเหลวที่ aErrorCode แสดงว่ามีการล้มเหลวครั้งล่าสุด

รายละเอียด
พารามิเตอร์
[in] aApp
ตัวชี้ไปยังข้อมูลเลเยอร์แอป ซึ่งตั้งค่าใน Init
[in] aErrorCode
WEAVE_NO_ERROR หากการซิงค์สำเร็จอย่างน้อย 1 ครั้ง
[in] aCorrectedSystemTime
ใช้ได้เฉพาะเมื่อ aErrorCode เป็น WEAVE_NO_ERROR เท่านั้น

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

โทรกลับเพื่อแจ้งว่าเราเพิ่งได้รับการแจ้งเตือนการเปลี่ยนแปลงเวลา

ตั้งค่าเป็น NULL ที่ Init หากไม่ได้ตั้งค่า ระบบจะไม่พิจารณาการแจ้งเตือนการเปลี่ยนแปลงเวลา เลเยอร์ของแอปได้รับอนุญาตให้เรียกใช้ "ล้มเลิกและซิงค์" ในโค้ดเรียกกลับนี้

รายละเอียด
พารามิเตอร์
[in] aApp
ตัวชี้ไปยังข้อมูลเลเยอร์แอป ซึ่งตั้งค่าใน Init
[in] aEC
บริบทการแลกเปลี่ยนที่ใช้สำหรับข้อความขาเข้านี้ ซึ่งสามารถใช้เพื่อตรวจสอบความถูกต้องของข้อความได้

ประเภทที่ได้รับการป้องกัน

@324

 @324

แอตทริบิวต์สาธารณะ

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

แอตทริบิวต์ที่ได้รับการปกป้อง

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

ใช้ในการจัดเก็บเวลาของเที่ยวบินเที่ยวเดียว

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

ใช้เพื่อจัดเก็บการประทับเวลาเมื่อบันทึกผลลัพธ์แล้ว

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

ที่ใช้จัดเก็บเวลาของระบบของโหนดระยะไกล เมื่อข้อความตอบกลับกำลังจะส่งข้อความ

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

ฟังก์ชันสาธารณะ

ล้มเลิก

void Abort(
  void
)

ล้มเลิกการซิงค์เวลาปัจจุบัน

ปล่อยการเชื่อมโยง ล้มเลิกการแลกเปลี่ยนที่ใช้งานอยู่ เปลี่ยนกลับไปยังสถานะไม่มีการใช้งาน

GetClientState

ClientState GetClientState(
  void
) const 

เรียกดูสถานะปัจจุบันของไคลเอ็นต์นี้

รายละเอียด
การส่งคืน
สถานะปัจจุบัน

เริ่มต้น

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

เริ่มต้นไคลเอ็นต์นี้

ต้องเรียกใช้ก่อนจึงจะใช้ฟังก์ชันอื่นๆ ได้ Zero/NULL จะเริ่มต้นข้อมูลภายในของทั้งหมดและลงทะเบียนกับการแจ้งเตือนการเปลี่ยนแปลงเวลา

รายละเอียด
พารามิเตอร์
[in] aApp
ตัวชี้ไปยังข้อมูลเลเยอร์ที่สูงกว่า ซึ่งใช้ในการเรียกกลับไปยังเลเยอร์ที่สูงกว่า
[in] aExchangeMgr
ตัวชี้ไปยังตัวจัดการ Exchange ซึ่งจะใช้ในการลงทะเบียนสำหรับเครื่องจัดการข้อความแจ้งเตือนการเปลี่ยนแปลงเวลา
การส่งคืน
WEAVE_NO_ERROR เกี่ยวกับความสำเร็จ

ซิงค์

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

ซิงค์โดยใช้การเชื่อมโยงที่กำหนด และทำการเรียกกลับโดยใช้ตัวชี้ที่ระบุ

หากมีการดำเนินการซิงค์เวลา การดำเนินการดังกล่าวจะถูกยกเลิกโดยปริยายโดยไม่มีการเรียกกลับ ไม่มีใน callback OnSyncComplete แต่อนุญาตใน OnTimeChangeNotificationReceived เมื่อมีข้อผิดพลาด ระบบจะเรียกใช้ "ยกเลิก" โดยปริยายก่อนส่งคืนจากฟังก์ชันนี้

รายละเอียด
พารามิเตอร์
[in] aBinding
การเชื่อมโยงที่จะใช้ในการติดต่อเซิร์ฟเวอร์เวลา
[in] OnSyncCompleted
ฟังก์ชันเรียกกลับที่จะนำมาใช้หลังจากการซิงค์เวลาเสร็จสิ้น
การส่งคืน
WEAVE_NO_ERROR ในความสำเร็จ

ฟังก์ชันที่มีการป้องกัน

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

ทำให้ข้อมูลที่ลงทะเบียนเป็นโมฆะเพื่อการแก้ไขเวลา

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

ตรวจสอบว่าข้อมูลที่ลงทะเบียนสำหรับการแก้ไขเวลาถูกต้อง

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

ฟังก์ชันแบบคงที่ที่มีการป้องกัน

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)