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

ملخّص

الأنواع العامة

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
تعداد
الحالة الحالية لبرنامج مزامنة الوقت هذا
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
يمكنك معاودة الاتصال بعد اكتمال محاولتي مزامنة الوقت.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
معاودة الاتصال للإشارة إلى أنّنا تلقّينا إشعارًا بتغيير الوقت.

الأنواع المحمية

@324 تعداد

السمات العامة

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)

يمكنك معاودة الاتصال بعد اكتمال محاولتي مزامنة الوقت.

إذا كان aErrorCode هو WEAVE_NO_ERROR، تكون هناك محاولة واحدة على الأقل تمت بنجاح. بخلاف ذلك، يشير فشل كلاهما في aErrorCode إلى آخر إخفاق.

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aErrorCode
WEAVE_NO_ERROR إذا تمت عملية المزامنة مرة واحدة على الأقل بنجاح
[in] aCorrectedSystemTime
صالحة فقط إذا كانت قيمة aErrorCode هي WEAVE_NO_ERROR

TimeChangeNotificationHandler

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

معاودة الاتصال للإشارة إلى أنّنا تلقّينا إشعارًا بتغيير الوقت.

اضبط القيمة على NULL عند Init. وفي حال تم ترك السياسة بدون ضبط، سيتم تجاهل "إشعار تغيير الوقت". يُسمَح لطبقة التطبيق بطلب الإلغاء والمزامنة في معاودة الاتصال هذه.

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aEC
سياق Exchange المستخدَم لهذه الرسالة الواردة والذي يمكن استخدامه للتحقّق من مصداقيتها

الأنواع المحمية

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

إعداد هذا العميل.

يجب استدعاؤها قبل استخدام الدوال الأخرى. يقوم الإعداد "صفر/فارغ" بإعداد جميع البيانات الداخلية والتسجيل في "إشعار تغيير الوقت".

التفاصيل
المعلمات
[in] aApp
يشير هذا المصطلح إلى مؤشر لبيانات الطبقة الأعلى، ويُستخدم في عمليات الاستدعاء للطبقة الأعلى.
[in] aExchangeMgr
يشير هذا المصطلح إلى مؤشر إلى "مدير Exchange"، والذي يمكن استخدامه في تسجيل معالِج رسالة "إشعار تغيير الوقت".
المرتجعات
WEAVE_NO_ERROR في النجاح

مزامنة

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

يمكنك المزامنة باستخدام الربط المحدد وإجراء معاودة الاتصال باستخدام المؤشر المقدَّم.

إذا كانت هناك عملية مزامنة جارية، سيتم إلغاؤها ضمنيًا بدون إجراء معاودة الاتصال. لا تتوفّر في معاودة الاتصال OnSynccomplete، ولكن مسموح بها في OnTimeChangeNotificationReceived . عند حدوث خطأ، يتم استدعاء Abort بشكل ضمني قبل الرجوع من هذه الدالة.

التفاصيل
المعلمات
[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
)