nl:: بافت:: پروفایل ها:: زمان:: SingleSourceTimeSyncClient

خلاصه

انواع عمومی

ClientState {
kClientState_Idle ,
kClientState_Sync_1 ,
kClientState_Sync_2
}
enum
وضعیت فعلی این سرویس گیرنده Time Sync
SyncCompletionHandler )(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
پس از اتمام هر دو تلاش برای همگام‌سازی زمانی، تماس مجدد برقرار شود.
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
هنگامی که نتیجه ثبت می شود برای ذخیره Timestamp استفاده می شود
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)
با استفاده از Binding داده شده همگام سازی کنید و با استفاده از اشاره گر ارائه شده یک تماس پاسخ برقرار کنید.

توابع محافظت شده

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

وضعیت فعلی این سرویس گیرنده Time Sync

خواص
kClientState_Idle

اولیه شد، منتظر اعلان تغییر زمان بود، اما هیچ عملیات همگام‌سازی زمان واقعی انجام نمی‌شود.

kClientState_Sync_1

کار بر روی اولین تلاش برای همگام سازی.

kClientState_Sync_2

کار بر روی دومین تلاش برای همگام‌سازی

SyncCompletion Handler

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

پس از اتمام هر دو تلاش برای همگام‌سازی زمانی، تماس مجدد برقرار شود.

اگر یک ErrorCode WEAVE_NO_ERROR باشد، حداقل یک تلاش موفق بوده است. در غیر این صورت هر دو در یک ErrorCode ناموفق هستند نشان دهنده آخرین شکست است.

جزئیات
مولفه های
[in] aApp
یک اشاره گر به داده های لایه برنامه، تنظیم شده در Init.
[in] aErrorCode
WEAVE_NO_ERROR اگر حداقل یک بار عملیات همگام سازی موفقیت آمیز باشد
[in] aCorrectedSystemTime
فقط در صورتی معتبر است که ErrorCode WEAVE_NO_ERROR باشد

TimeChangeNotification Handler

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

پاسخ به تماس برای نشان دادن اینکه ما به تازگی یک اعلان تغییر زمان دریافت کرده ایم.

در Init روی NULL تنظیم کنید. اگر تنظیم نشود، اعلان تغییر زمان نادیده گرفته می شود. لایه برنامه مجاز است در این فراخوانی Abort و Sync را فراخوانی کند.

جزئیات
مولفه های
[in] aApp
یک اشاره گر به داده های لایه برنامه، تنظیم شده در Init.
[in] aEC
زمینه تبادل برای این پیام دریافتی استفاده می‌شود که می‌توان از آن برای تأیید صحت آن استفاده کرد

انواع محافظت شده

@324

 @324

صفات عمومی

OnTimeChangeNotification Received

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

هنگامی که نتیجه ثبت می شود برای ذخیره Timestamp استفاده می شود

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

برای ذخیره زمان سیستم گره راه دور، زمانی که پیام پاسخ در شرف ارسال بود استفاده می شود

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

توابع عمومی

سقط

void Abort(
  void
)

عملیات همگام سازی زمان فعلی را لغو کنید.

Release Binding . لغو تبادل فعال به حالت بیکار برگردید.

GetClientState

ClientState GetClientState(
  void
) const 

وضعیت فعلی این مشتری را بازیابی کنید.

جزئیات
برمی گرداند
وضعیت فعلی

شروع کنید

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

این مشتری را مقدار دهی اولیه کنید.

قبل از استفاده از سایر توابع باید فراخوانی شود. Zero/NULL تمام داده های داخلی را مقداردهی اولیه می کند و با اعلان تغییر زمان ثبت نام می کند.

جزئیات
مولفه های
[in] aApp
اشاره‌گر به داده‌های لایه بالاتر، که در تماس‌ها به لایه بالاتر استفاده می‌شود.
[in] aExchangeMgr
یک اشاره گر به Exchange Manager، که برای ثبت نام برای کنترل کننده پیام اعلان تغییر زمان استفاده می شود
برمی گرداند
WEAVE_NO_ERROR در موفقیت

همگام سازی

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

با استفاده از Binding داده شده همگام سازی کنید و با استفاده از اشاره گر ارائه شده یک تماس پاسخ برقرار کنید.

اگر عملیات همگام سازی زمانی در حال انجام باشد، به طور ضمنی بدون برقراری تماس لغو می شود. در پاسخ به تماس OnSyncCompleted موجود نیست، اما در OnTimeChangeNotificationReceived مجاز است. در صورت خطا، قبل از بازگشت از این تابع، Abor به طور ضمنی فراخوانی می شود.

جزئیات
مولفه های
[in] aBinding
اتصال برای تماس با سرور زمان استفاده می شود
[in] OnSyncCompleted
عملکرد برگشت به تماس پس از اتمام عملیات همگام سازی زمانی استفاده می شود
برمی گرداند
WEAVE_NO_ERROR در موفقیت

توابع محافظت شده

EnterSync2

void EnterSync2(
  void
)

پردازش نهایی

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
)