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

กำลังดำเนินการซิงค์ครั้งที่ 2

SyncCompletionHandler

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

โทรกลับหลังจากพยายามซิงค์เวลาครบทั้ง 2 ครั้งแล้ว

หาก aErrorCode คือ WEAVE_NO_ERROR แสดงว่ามีการดำเนินการสำเร็จอย่างน้อย 1 ครั้ง มิเช่นนั้นระบบทั้งสองล้มเหลวที่ 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 หากไม่ได้ตั้งค่า ระบบจะไม่สนใจการแจ้งเตือนการเปลี่ยนแปลงเวลา เลเยอร์แอปได้รับอนุญาตให้เรียกใช้ "ล้มเลิกและซิงค์" ใน Callback นี้

รายละเอียด
พารามิเตอร์
[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
)

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

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

GetClientState

ClientState GetClientState(
  void
) const 

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

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

เริ่มต้น

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

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

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

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

ซิงค์

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

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

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

รายละเอียด
พารามิเตอร์
[in] aBinding
การเชื่อมโยง จะใช้ในการติดต่อเซิร์ฟเวอร์เวลา
[in] OnSyncCompleted
ฟังก์ชัน Callback ที่จะใช้หลังจากการซิงค์เวลาเสร็จสมบูรณ์
การคืนสินค้า
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
)