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
سياق التبادل المستخدَم لهذه الرسالة الواردة والذي يمكن استخدامه للتحقّق من مصداقيتها

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

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

قم بتهيئة هذا العميل.

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

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

مزامنة

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

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

إذا كانت هناك عملية مزامنة وقت جارية، سيتم إلغاؤها ضمنيًا بدون إجراء معاودة الاتصال. غير متاحة في معاودة الاتصال 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
)