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
إذا لم يتم الضبط، ستعرض طريقة التنفيذ التلقائية القيمة "صحيح" دائمًا
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
دالة getter بسيطة لحالة العميل
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
إغلاق Weave ExchangeContext
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
تسجيل خطأ في الاتصال بجهة اتصال معينة وتقصير فترة الاكتشاف التلقائي إذا لزم الأمر، يمكن أن تكون جهة الاتصال فارغة للإشارة إلى أنه ليس لدينا أي شخص نتحدث إليه، وبالتالي تقصير فترة الاكتشاف التلقائي فقط
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_ invalid حتى يتم تجاهل الاستجابة في العملية الحسابية.

التفاصيل
المَعلمات
[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
صحيح إذا كانت العقدة الأصلية هي منسق مزامنة الوقت
المرتجعات
false وسيتجاهل المحرك هذا الطلب

ResponseStatus

 ResponseStatus

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

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

ServerState

 ServerState

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

أماكن إقامة
kServerState_Idle

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

kServerState_UnreliableAfterBoot

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

SyncFailedHandler

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

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

تجدر الإشارة إلى أنّ معاودة الاتصال لا تحدث إذا تم استدعاء الإلغاء لإيقاف المزامنة.

التفاصيل
المَعلمات
[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_Invalid حتى يتم تجاهل الاستجابة في العملية الحسابية.

التفاصيل
المَعلمات
[in] aApp
مؤشر لبيانات طبقة التطبيق، تم ضبطها في Init.
[in] aOffsetUsec
مقدار التصحيح قيد الاستخدام
[in] aIsReliable
هل التصحيح يعتبر موثوقًا به من خلال المنطق المضمَّن
[in] aIsServer
هل يأتي التصحيح من الخوادم؟
[in] aNumContributor
عدد العُقد التي ساهمت في هذا التصحيح. 0 يعني أنه ليست هناك نتائج من عملية المزامنة.
المرتجعات
true إذا تم استخدام هذه الإزاحة لضبط وقت النظام. وفي حال كانت قيمة 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

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

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 

دالة getter بسيطة لحالة العميل

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

واستخراج احتمالية استمرار العملية.

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

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

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
على true للإشارة إلى أن الخادم تتم مزامنته دائمًا باستثناء الوقت الأولي غير الموثوق به. يجب تعيينه على 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
عدد جهات الاتصال في صفيفة aNode
[in] aNodes
مصفوفة سجلات جهات الاتصال
المرتجعات
WEAVE_NO_ERROR عند النجاح

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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

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

التفاصيل
المَعلمات
[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 على false لإحداث خطأ في معاودة الاتصال

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

إغلاق Weave ExchangeContext

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
)

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

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
على true للإشارة إلى أن الخادم تتم مزامنته دائمًا باستثناء الوقت الأولي غير الموثوق به. يجب تعيينه على false للمنسق.
المرتجعات
WEAVE_NO_ERROR عند النجاح

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

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

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

_منسق إيقاف التشغيل

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
)