nl::Weave::Profiles::Time::TimeSyncNode

ملخّص

الاكتساب

يتم اكتسابه من: nl::Weave::Profiles::Time::_TimeSyncNodeBase

الشركات المصنّعة والمُصنّعة

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
الحالات المستخدمة لميزة المزامنة التلقائية.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
سياق التواصل.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
دوال انتقال الحالة هذه داخلية ولا يمكن عرض رمز الخطأ حيث لن يكون للحالة السابقة طريقة لمعالجتها.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

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

ClientState تعداد
الحالة الحالية لبرنامج مزامنة الوقت هذا
CommState تعداد
حالة الاتصال بجهة اتصال معينة.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
تحدث معاودة الاتصال مباشرةً قبل حساب تصحيح الوقت من الردود.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
للإشارة إلى أننا تلقينا طلب مزامنة الوقت للتو.
ResponseStatus تعداد
حالة الرد المخزن لجهة اتصال معينة.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
تعداد
الحالة الحالية لخادم مزامنة الوقت هذا
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
يحدث رد الاتصال عندما يُعتبَر المزامنة غير ناجحة، بما في ذلك المزامنة التلقائية.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
يحدث رد الاتصال بعد اعتبار المزامنة ناجحة، بما في ذلك المزامنة التلقائية، ولكن قبل تطبيق النتيجة.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
للإشارة إلى أننا تلقّينا للتو إشعارًا بتغيير الوقت.

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

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
إذا لم يتم ضبطها، يعرض التنفيذ التلقائي دائمًا القيمة "true"
OnSyncSucceeded
إذا لم يتم ضبط السياسة، يأخذ السلوك التلقائي جميع النتائج، باستثناء التصحيحات الصغيرة جدًا المتعلقة بالخادم
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
طريقة تشفير الاتصالات المحلية
mKeyId
uint16_t
معرّف المفتاح المستخدَم للاتصال المحلي

السمات المحمية

mApp
void *
مؤشر إلى بيانات الطبقة الأعلى
mClientState
mConnectionToService
اتصال TCP المستخدم للتحدث إلى الخدمة.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
معلومات الاتصال التي تم رصدها خلال عملية الاكتشاف
mIsAlwaysFresh
bool
mIsInCallback
bool
صحيح إذا كنا في استدعاء لطبقة أعلى
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
الدور الفعلي لهذه العقدة.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
لاحظ أنه ينبغي أن يكون وقت التشغيل لأننا نحتاج إلى تعويض عن وقت النوم
mTimestampLastLocalSync_usec
timesync_t
لاحظ أنه ينبغي أن يكون وقت التشغيل لأننا نحتاج إلى تعويض عن وقت النوم

وظائف عامة

Abort(void)
لإجبار المحرك على العودة إلى وضع الخمول، مما يؤدي إلى إلغاء أي شيء يفعله.
DisableAutoSync(void)
void
إيقاف المزامنة التلقائية.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
لتفعيل المزامنة التلقائية.
GetCapacityOfContactList(void) const
int
الحصول على بيانات بسيطة لأقصى عدد من جهات الاتصال التي تم ضبط هذا المحرك على تخزينها
GetClientState(void) const
الحصول على نص بسيط لحالة العميل
GetNextLikelihood(void) const
int8_t
واستخراج احتمالية استمرار المشكلة
GetServerState(void) const
استرداد بسيط لحالة الخادم
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
تهيئة هذا العميل.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
لتهيئة هذا المنسق.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
تهيئة لدور الخادم يجب أن يتم استدعاؤها كأول وظيفة بعد إنشاء الكائن إذا كانت النية هي أن تكون خادم مزامنة الوقت.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
يتم استدعاءها من قِبل طبقة أعلى لإشعار تغيير وقت البث المتعدد.
RegisterCorrectionFromServerOrNtp(void)
void
يتم استدعاؤها بطبقة أعلى للإشارة إلى أننا انتهينا للتو من المزامنة مع أي خادم أو من خلال بعض وسائل موثوق بها مثل NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
يتم استدعاءها بطبقة أعلى للإشارة إلى أننا انتهينا للتو من مزامنة الوقت مع منسقين محليين آخرين.
Shutdown(void)
لإيقاف الخدمة، بغض النظر عن الدور الذي تؤديه.
Sync(const bool aForceDiscoverAgain)
المزامنة باستخدام جهات الاتصال الحالية.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
باستخدام قائمة جهات الاتصال المحددة.
SyncWithService(WeaveConnection *const aConnection)
تتم مزامنتها باستخدام اتصال TCP المعين والتشفير المرتبط ومعرف المفتاح.

الدوال المحمية

AbortOnError(const WEAVE_ERROR aCode)
void
إلغاء داخلي إذا لم يكن aCode WEAVE_NO_ERROR
AutoSyncNow(void)
void
الوظيفة الداخلية لبدء جلسة مزامنة تلقائية
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
لإحداث رد الاتصال بطبقة التطبيق.
ClearState(void)
void
DestroyCommContext(void)
bool
أغلق ExchangeContext Weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
إرجاع خانة لتخزين معلومات الاتصال
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
الحصول على جهة الاتصال الصالحة وغير النشطة التالية للتحدث إليها
GetNumNotYetCompletedContacts(void)
int16_t
معرفة عدد جهات الاتصال الصالحة، ولكننا لم نتحدث معهم بعد.
GetNumReliableResponses(void)
int16_t
الحصول على عدد البيانات "الموثوقة" الردود التي تم جمعها حتى الآن.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
إلغاء صلاحية جميع جهات الاتصال المحلية
InvalidateServiceContact(void)
void
إلغاء صلاحية جهة الاتصال بالخدمة
RegisterCommError(Contact *const aContact)
void
تسجيل خطأ في الاتصال لجهة اتصال معينة، وتقصير فترة الاكتشاف التلقائي إذا لزم الأمر، ويمكن أن تكون قيمة "NULL" (فارغ) للإشارة إلى أنه ليس لدينا أي شخص للتحدث إليه، وبالتالي تقليل فترة الاكتشاف التلقائي
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
إرسال طلب مزامنة أحادي البث إلى جهة اتصال.
SetAllCompletedContactsToIdle(void)
int16_t
إعادة تعيين جميع جهات الاتصال المكتملة إلى حالة عدم النشاط مرة أخرى، ولكن لا تلمس الرد.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
ضبط جميع جهات الاتصال المحلية الصالحة على حالة عدم النشاط ومحو الاستجابة
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
إنشاء Weave Exchange جديد للاتصال الأحادي
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
تخزين معلومات الاتصال لعقدة أرسلت إلينا للتو إشعارًا بتغيير الوقت
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
معالجة استجابة واردة من طلب بث متعدّد
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
معالجة استجابة واردة من طلب البث الأحادي
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
تهيئة دور العميل.
_InitServer(const bool aIsAlwaysFresh)
تهيئة دور الخادم.
_ShutdownClient(void)
إيقاف عدم توفر العميل في عمليات الاستدعاء.
_ShutdownCoordinator(void)
إيقاف عدم توفر المنسق في عمليات الاستدعاء.
_ShutdownServer(void)
إيقاف الخادم غير المتاح في عمليات الاستدعاء.

الدوال الثابتة المحمية

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
معاودة الاتصال من Weave Exchange عند وصول طلب مزامنة الوقت
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
معاودة الاتصال من Weave Timer عندما تجاوزنا حاجز التشغيل غير الموثوق به
IsOperationalState(ClientState aState)
bool
تحديد ما إذا كانت الولاية المعنية تعمل أم لا.
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

الحالات المستخدمة لميزة المزامنة التلقائية.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

سياق التواصل.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

دوال انتقال الحالة هذه داخلية ولا يمكن عرض رمز الخطأ حيث لن يكون للحالة السابقة طريقة لمعالجتها.

سيؤدي أي إخفاق إلى انتقال الحالة الأخرى في النهاية (يمكن أن يكون انتهاء المهلة) حتى إذا فشل المؤقت، فقد نفد خدعتنا وقد نعلّق في حالة خاطئة

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  void
)

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

ClientState

 ClientState

الحالة الحالية لبرنامج مزامنة الوقت هذا

CommState

 CommState

حالة الاتصال بجهة اتصال معينة.

هذه المعلومات عامة لأن جهة الاتصال علنية.

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

تحدث معاودة الاتصال مباشرةً قبل حساب تصحيح الوقت من الردود.

قد تستبدل طبقة التطبيق aContact[i].mResponseStatus إلى kResponseStatus_Valid بحيث يتم تجاهل الاستجابة في العملية الحسابية

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aContact
مصفوفة جهات الاتصال وحالة الاستجابة
[in] aSize
عدد السجلات في مصفوفة aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

للإشارة إلى أننا تلقينا طلب مزامنة الوقت للتو.

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aMsgInfo
WeaveMessageInfo يحتوي على معلومات حول طلب مزامنة الوقت الذي تم استلامه، بما في ذلك معلومات عن المرسِل
[in] aLikelyhood
مدى احتمال الاستجابة وفقًا لما طلبه المصدر
[in] aIsTimeCoordinator
"صحيح" إذا كانت العقدة الأصلية هي "منسق مزامنة الوقت"
المرتجعات
خطأ وسيتجاهل المحرك هذا الطلب

ResponseStatus

 ResponseStatus

حالة الرد المخزن لجهة اتصال معينة.

هذه المعلومات عامة لأن جهة الاتصال علنية.

ServerState

 ServerState

الحالة الحالية لخادم مزامنة الوقت هذا

أماكن إقامة
kServerState_Idle

أن يكون الخادم جاهزًا للاستجابة للطلبات بإعدادات عادية

kServerState_UnreliableAfterBoot

الوقت المحجوز للخادم لمزامنة وقت النظام الخاص به من خلال بعض الوسائل الأخرى ذات المغزى فقط إذا كان aIsAlwaysFresh صحيحًا عند استدعاء Init

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

يحدث رد الاتصال عندما يُعتبَر المزامنة غير ناجحة، بما في ذلك المزامنة التلقائية.

لاحظ أن معاودة الاتصال لا تحدث إذا تم استدعاء Abort لإيقاف المزامنة

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aErrorCode
سبب الإخفاق

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

يحدث رد الاتصال بعد اعتبار المزامنة ناجحة، بما في ذلك المزامنة التلقائية، ولكن قبل تطبيق النتيجة.

وتجدر الإشارة إلى أنّ النجاح لا يعني بالضرورة حصولنا على نتائج قابلة للتطبيق. في حال عدم تلقّي أي استجابة، يتم ضبط aNumCONTRIBUTOR على 0. ويمكن أن تستبدل طبقة التطبيق aContact[i].mResponseStatus إلى kResponseStatus_Unknown كي يتم تجاهل الاستجابة في العملية الحسابية.

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aOffsetUsec
مقدار التصحيح في سياسة الاستخدام
[in] aIsReliable
هو التصحيح الذي يعتبره المنطق المضمن موثوقًا
[in] aIsServer
هل يأتي التصحيح من الخوادم؟
[in] aNumContributor
عدد العُقد التي ساهمت في هذا التصحيح. 0 يعني عدم وجود نتائج من عملية المزامنة.
المرتجعات
صحيح إذا تم استخدام هذه الإزاحة لضبط وقت النظام. وفي حال كانت قيمة aNumCONTRIBUTOR تساوي 0، يتم تجاهل القيمة المعروضة.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

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

إذا تم تمكين وضع المزامنة التلقائية، فستتم جدولة مزامنة الوقت بعد فترة وجيزة من معاودة الاتصال هذه تلقائيًا. بخلاف ذلك، يمكن لطبقة التطبيق اختيار استدعاء مجموعة وظائف المزامنة لبدء عملية المزامنة مباشرةً، وليس مقيدة بقاعدة غير متوفرة أثناء الاتصال. مع ذلك، يجب ملاحظة أن رد الاتصال الخاص هذا لا يزال في أعلى حزمة معاودة الاتصال في طبقة تبادل Weave.

التفاصيل
المعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، يتم ضبطه في Init.
[in] aNodeId
طلب رقم تعريف العقدة
[in] aNodeAddr
طلب عنوان العقدة

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

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

إذا لم يتم ضبطها، يعرض التنفيذ التلقائي دائمًا القيمة "true"

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

إذا لم يتم ضبط السياسة، يأخذ السلوك التلقائي جميع النتائج، باستثناء التصحيحات الصغيرة جدًا المتعلقة بالخادم

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

طريقة تشفير الاتصالات المحلية

mKeyId

uint16_t mKeyId

معرّف المفتاح المستخدَم للاتصال المحلي

السمات المحمية

mApp

void * mApp

مؤشر إلى بيانات الطبقة الأعلى

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

اتصال TCP المستخدم للتحدث إلى الخدمة.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

معلومات الاتصال التي تم رصدها خلال عملية الاكتشاف

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

صحيح إذا كنا في استدعاء لطبقة أعلى

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

الدور الفعلي لهذه العقدة.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

لاحظ أنه ينبغي أن يكون وقت التشغيل لأننا نحتاج إلى تعويض عن وقت النوم

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

لاحظ أنه ينبغي أن يكون وقت التشغيل لأننا نحتاج إلى تعويض عن وقت النوم

وظائف عامة

إلغاء

WEAVE_ERROR Abort(
  void
)

لإجبار المحرك على العودة إلى وضع الخمول، مما يؤدي إلى إلغاء أي شيء يفعله.

لاحظ أنه لن يتم استدعاء نجاح أو فشل المزامنة. فسيتم إغلاق جميع تبادلات Weave. لن تتأثر اتصالات TCP بعد ذلك. أي عملية إذا كنا في حالة الخمول فعلاً. غير متاح في عمليات معاودة الاتصال.

التفاصيل
المرتجعات
WEAVE_NO_ERROR في النجاح

DisableAutoSync

void DisableAutoSync(
  void
)

إيقاف المزامنة التلقائية.

متوفر فقط في حالة عدم النشاط. غير متاح في عمليات معاودة الاتصال.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

لتفعيل المزامنة التلقائية.

متوفر فقط في حالة عدم النشاط. الاكتشاف على الفور. غير متاح في عمليات معاودة الاتصال.

التفاصيل
المعلمات
[in] aSyncPeriod_msec
عدد وحدات المللي ثانية بين عملية المزامنة
[in] aNominalDiscoveryPeriod_msec
عدد وحدات المللي ثانية بين الاكتشاف، إذا لم يتم رصد خطأ في الاتصال
[in] aShortestDiscoveryPeriod_msec
أقصر مدة بين الاكتشاف بالملي ثانية (بالمللي ثانية) إذا تمت ملاحظة خطأ في الاتصال
المرتجعات
WEAVE_NO_ERROR في النجاح

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

الحصول على بيانات بسيطة لأقصى عدد من جهات الاتصال التي تم ضبط هذا المحرك على تخزينها

GetClientState

ClientState GetClientState(
  void
) const 

الحصول على نص بسيط لحالة العميل

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

واستخراج احتمالية استمرار المشكلة

فلن تكون النتيجة صالحة إلا بعد اكتمال عملية المزامنة، ضمن استدعاءات OnSyncSucceeded و OnSyncFound (إخفاق). وإلا يكون عرضيًا مؤقتًا وقد يكون الاحتمال الحالي بدلاً من الاحتمال التالي لاستخدامه.

التفاصيل
المرتجعات
احتمالية استخدام الرد في الطلب التالي

GetServerState

ServerState GetServerState(
  void
) const 

استرداد بسيط لحالة الخادم

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

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

غير متاح في طلبات معاودة الاتصال

التفاصيل
المعلمات
[in] aApp
يشير هذا المصطلح إلى مؤشر لبيانات الطبقة الأعلى، ويُستخدم في عمليات الاستدعاء للطبقة الأعلى.
[in] aExchangeMgr
مؤشر لكائن Weave Exchange Manager على مستوى النظام
[in] aRole
يمكن أن يكون kTimeSyncRole_Client أو kTimeSyncRole_Coordinator.
[in] aEncryptionType
نوع التشفير الذي سيتم استخدامه للطلبات والردود
[in] aKeyId
معرّف المفتاح المستخدَم في الطلبات والردود
[in] aInitialLikelyhood
الاحتمالية الأولية لاستخدامها في مرحلة الاكتشاف
المرتجعات
WEAVE_NO_ERROR في النجاح

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

لتهيئة هذا المنسق.

التفاصيل
المعلمات
[in] aExchangeMgr
مؤشر لكائن Weave Exchange Manager على مستوى النظام
[in] aEncryptionType
نوع التشفير الذي سيتم استخدامه للطلبات والردود
[in] aKeyId
معرّف المفتاح المستخدَم في الطلبات والردود
[in] aSyncPeriod_msec
عدد وحدات المللي ثانية بين عملية المزامنة
[in] aNominalDiscoveryPeriod_msec
أقصر مدة بين الاكتشاف بالمللي ثانية، إذا لم يتم رصد خطأ في الاتصال
[in] aShortestDiscoveryPeriod_msec
أقل عدد من المللي ثانية بين الاكتشاف، إذا تمت ملاحظة خطأ في الاتصال
المرتجعات
WEAVE_NO_ERROR في النجاح

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

تهيئة لدور الخادم يجب أن يتم استدعاؤها كأول وظيفة بعد إنشاء الكائن إذا كانت النية هي أن تكون خادم مزامنة الوقت.

غير متاح في طلبات معاودة الاتصال

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

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

يتم استدعاءها من قِبل طبقة أعلى لإشعار تغيير وقت البث المتعدد.

غير متاح في معاودة الاتصال.

التفاصيل
المعلمات
[in] aEncryptionType
نوع التشفير الذي سيتم استخدامه لهذا الإشعار
[in] aKeyId
معرّف المفتاح الذي سيتم استخدامه لهذا الإشعار

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

يتم استدعاؤها بطبقة أعلى للإشارة إلى أننا انتهينا للتو من المزامنة مع أي خادم أو من خلال بعض وسائل موثوق بها مثل NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

يتم استدعاءها بطبقة أعلى للإشارة إلى أننا انتهينا للتو من مزامنة الوقت مع منسقين محليين آخرين.

التفاصيل
المعلمات
[in] aNumContributor
عدد المنسقين الذين ساهموا في مزامنة الوقت هذه

إيقاف التشغيل

WEAVE_ERROR Shutdown(
  void
)

لإيقاف الخدمة، بغض النظر عن الدور الذي تؤديه.

يجب استدعاء هذه الدالة لاسترداد الموارد المخصصة بشكل صحيح، قبل إجراء استدعاء آخر لأي من دوال init. غير متاح في معاودة الاتصال.

التفاصيل
المرتجعات
WEAVE_NO_ERROR في النجاح

مزامنة

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

المزامنة باستخدام جهات الاتصال الحالية.

قد تفشل عملية المزامنة إذا لم تتوفر أي جهات اتصال صالحة. اضبط aForceDiscoverAمرة أخرى على "true" لفرض الاكتشاف على الفور. متوفر فقط في حالة عدم النشاط. غير متاح في معاودة الاتصال.

التفاصيل
المعلمات
[in] aForceDiscoverAgain
صحيح إذا تم مسح جميع جهات الاتصال الحالية وتنفيذ عملية الاكتشاف
المرتجعات
WEAVE_NO_ERROR في النجاح

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

باستخدام قائمة جهات الاتصال المحددة.

سيتم مسح قائمة جهات الاتصال الحالية. متوفر فقط في حالة عدم النشاط. غير متاح في معاودة الاتصال.

التفاصيل
المعلمات
[in] aNumNode
عدد جهات الاتصال في عُقد المصفوفة
[in] aNodes
مصفوفة من سجلات جهات الاتصال
المرتجعات
WEAVE_NO_ERROR في النجاح

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

تتم مزامنتها باستخدام اتصال TCP المعين والتشفير المرتبط ومعرف المفتاح.

يجب أن يحصل المتصل على ملكية اتصال TCP بعد انتهاء المزامنة. لن يتم استبدال أي معاودة الاتصال لاتصال بروتوكول التحكم بالنقل، نظرًا لأنه سيتم إنشاء تبادل Weave جديد وتعيين عمليات الاستدعاء على هذا السياق في حالة الخمول فقط. غير متاح في معاودة الاتصال.

التفاصيل
المعلمات
[in] aConnection
مؤشر لاتصال Weave
المرتجعات
WEAVE_NO_ERROR في النجاح

TimeSyncNode

 TimeSyncNode(
  void
)

الدوال المحمية

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

إلغاء داخلي إذا لم يكن aCode WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

الوظيفة الداخلية لبدء جلسة مزامنة تلقائية

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

لإحداث رد الاتصال بطبقة التطبيق.

ضبط aisSuccess على "خطأ" لحث معاودة الاتصال بالخطأ

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

أغلق ExchangeContext Weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

إرجاع خانة لتخزين معلومات الاتصال

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

الحصول على جهة الاتصال الصالحة وغير النشطة التالية للتحدث إليها

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

معرفة عدد جهات الاتصال الصالحة، ولكننا لم نتحدث معهم بعد.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

الحصول على عدد البيانات "الموثوقة" الردود التي تم جمعها حتى الآن.

تم استدعاءها لتحديد ما إذا كنا قد جمعنا عددًا كافيًا من الردود

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

إلغاء صلاحية جميع جهات الاتصال المحلية

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

إلغاء صلاحية جهة الاتصال بالخدمة

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

تسجيل خطأ في الاتصال لجهة اتصال معينة، وتقصير فترة الاكتشاف التلقائي إذا لزم الأمر، ويمكن أن تكون قيمة "NULL" (فارغ) للإشارة إلى أنه ليس لدينا أي شخص للتحدث إليه، وبالتالي تقليل فترة الاكتشاف التلقائي

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

إرسال طلب مزامنة أحادي البث إلى جهة اتصال.

*سيتم ضبط rIsMessageSent للإشارة إلى ما إذا تم إرسال الرسالة. لا يتم عرض أخطاء في الاتصال، مثل "تعذُّر الوصول إلى العنوان"، على المتصِل التحقّق من رمز الإرجاع و *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

إعادة تعيين جميع جهات الاتصال المكتملة إلى حالة عدم النشاط مرة أخرى، ولكن لا تلمس الرد.

وهو ما يسمى بين جولتين من الاتصال لنفس الجزء

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

ضبط جميع جهات الاتصال المحلية الصالحة على حالة عدم النشاط ومحو الاستجابة

فهذا ما يسمى قبل أن نبدأ في الاتصال بهم واحدًا تلو الآخر

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

إنشاء Weave Exchange جديد للاتصال الأحادي

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

تخزين معلومات الاتصال لعقدة أرسلت إلينا للتو إشعارًا بتغيير الوقت

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

معالجة استجابة واردة من طلب بث متعدّد

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

معالجة استجابة واردة من طلب البث الأحادي

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

تهيئة دور العميل.

مخصص للاستخدام الداخلي من قِبل مجموعة Init للوظائف العامة. يجب ضبط mClientState قبل الإرجاع. غير متاح في طلبات معاودة الاتصال

التفاصيل
المعلمات
[in] aEncryptionType
نوع التشفير الذي سيتم استخدامه للطلبات والردود
[in] aKeyId
معرّف المفتاح المستخدَم في الطلبات والردود
[in] aInitialLikelyhood
الاحتمالية الأولية لاستخدامها في مرحلة الاكتشاف
المرتجعات
WEAVE_NO_ERROR في النجاح

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

تهيئة دور الخادم.

مخصص للاستخدام الداخلي من قِبل مجموعة Init للوظائف العامة. يجب ضبط mClientState قبل الإرجاع. غير متاح في طلبات معاودة الاتصال

التفاصيل
المعلمات
[in] aIsAlwaysFresh
على "صحيح" للإشارة إلى مزامنة الخادم دائمًا باستثناء الوقت الأولي غير الموثوق به. على "false" للمنسق.
المرتجعات
WEAVE_NO_ERROR في النجاح

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

إيقاف عدم توفر العميل في عمليات الاستدعاء.

التفاصيل
المرتجعات
WEAVE_NO_ERROR في النجاح

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

إيقاف عدم توفر المنسق في عمليات الاستدعاء.

التفاصيل
المرتجعات
WEAVE_NO_ERROR في النجاح

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

إيقاف الخادم غير المتاح في عمليات الاستدعاء.

التفاصيل
المرتجعات
WEAVE_NO_ERROR في النجاح

الدوال الثابتة المحمية

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

معاودة الاتصال من Weave Exchange عند وصول طلب مزامنة الوقت

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

معاودة الاتصال من Weave Timer عندما تجاوزنا حاجز التشغيل غير الموثوق به

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

تحديد ما إذا كانت الولاية المعنية تعمل أم لا.

طريقة سهلة لتحديد ما إذا كان ClientState يشير إلى حالة تشغيل، بمعنى أن العميل قد أكمل التهيئة وليس في عملية إيقاف التشغيل.

التفاصيل
المعلمات
[in] aState
الحالة المطلوب تقييمها
المرتجعات
true إذا حدثت الحالة بعد اكتمال الإعداد وقبل بدء إيقاف التشغيل، على القيمة false في الحالات الأخرى.

_OnSyncSucceeded

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)