nl :: نسج:: مظهر:: زمن:: TimeSyncNode

ملخص

ميراث

يرث من: NL :: :: نسج الملامح :: الوقت :: _ 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
الحصول على بسيط للدولة العميل
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
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

ميسوتوسينسنابل

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

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

كومستاتي

 CommState

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

هذا هو في الجمهور بسبب الاتصال في الجمهور

المساهم

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
A WeaveMessageInfo تحتوي على معلومات عن طلب متزامنة الوقت وردت، بما في ذلك معلومات عن المرسل.
[in] aLikelyhood
احتمالية الاستجابة حسب طلب المنشئ
[in] aIsTimeCoordinator
صواب إذا كانت العقدة الأصلية هي منسق مزامنة الوقت
عائدات
خطأ وسيتجاهل المحرك هذا الطلب

الاستجابة

 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)

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

لاحظ أن النجاح لا يعني أن لدينا نتائج قابلة للتطبيق. في حالة عدم تلقي أي رد ، سيتم تعيين NumContributor على 0. يمكن لطبقة التطبيق الكتابة فوق جهة الاتصال [i] .mResponseStatus إلى kResponseStatus_Invalid بحيث يتم تجاهل هذه الاستجابة في الحساب

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

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

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

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

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

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSync فشل

SyncFailedHandler OnSyncFailed

تم استلام OnSyncRequest

OnSyncRequestReceivedHandler OnSyncRequestReceived

إذا لم يتم تعيينها ، فإن التنفيذ الافتراضي يعود دائمًا صحيحًا

نجح OnSync

SyncSucceededHandler OnSyncSucceeded

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

تم استلام OnTimeChangeNotification

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

نوع mEncryption

uint8_t mEncryptionType

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

mKeyId

uint16_t mKeyId

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

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

تطبيق mApp

void * mApp

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

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

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

م

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

الاتصال المستفادة المعلومات في جميع أنحاء الاكتشاف.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

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

احتمالية الإرسال الأخيرة

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

مول

TimeSyncRole mRole

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

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

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

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

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

الوظائف العامة

إحباط

WEAVE_ERROR Abort(
  void
)

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

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

تفاصيل
عائدات
WEAVE_NO_ERROR على النجاح

تعطيل AutoSync

void DisableAutoSync(
  void
)

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

متاح فقط في حالة الخمول. غير متوفر في عمليات الاسترجاعات.

تمكين AutoSync

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 

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

احصل على الاحتمالية

int8_t GetNextLikelihood(
  void
) const 

استخراج احتمالية الثبات.

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

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

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

تفاصيل
المعلمات
[in] aConnection
مؤشر لنسج الاتصال
عائدات
WEAVE_NO_ERROR على النجاح

TimeSyncNode

 TimeSyncNode(
  void
)

وظائف محمية

إحباط الخطأ

void AbortOnError(
  const WEAVE_ERROR aCode
)

إحباط داخلي إذا كان aCode ليس WEAVE_NO_ERROR

المزامنة التلقائية الآن

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
)

حث على معاودة الاتصال بطبقة التطبيق.

اضبط aIs بنجاح على خطأ للحث على رد الاتصال بالخطأ

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

إغلاق نسج 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
)

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

احصل على إجابات موثوقة

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 جديد للاتصال أحادي الإرسال

المتجر NotifyingContact

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
)

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

يُقصد استخدامها داخليًا من قبل عائلة الأولية للوظائف العامة. يجب تعيين mClientState قبل العودة. غير متوفر في عمليات الاسترجاعات

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

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

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

يُقصد استخدامها داخليًا من قبل عائلة الأولية للوظائف العامة. يجب تعيين mClientState قبل العودة. غير متوفر في عمليات الاسترجاعات

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

HandSyncRequest

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
)

التعامل مع UnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

التعامل مع UnicastSyncResponse

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

مقبض غير موثوق به AfterBootTimer

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

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

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

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

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

تفاصيل
المعلمات
[in] aState
الدولة المراد تقييمها
عائدات
صواب إذا سقطت الحالة بعد اكتمال التهيئة وقبل بدء الإغلاق ، خطأ بخلاف ذلك.

_OnSync نجح

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