nl::Weave::System::Layer

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

ملخّص

بالنسبة إلى WEAVE_SYSTEM_CONFIG_USE_SOCKETS، يتم التعامل مع الإشعارات عن جاهزية الفعالية من خلال التنفيذ التقليدي للاستطلاعات أو الاختيارات على إعداد المنصة.

بالنسبة إلى WEAVE_SYSTEM_CONFIG_USE_LWIP، تتم معالجة إشعار الجاهزية للحدث من خلال الأحداث أو الرسائل وعناصر الجذب الخاصة بالنظام الأساسي والنظام لنظام الأحداث/الرسائل.

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

Layer(void)

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

EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument) تعريف الكتابة
Error(*
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) تعريف الكتابة
void(*

وظائف عامة

AddEventHandlerDelegate(LwIPEventHandlerDelegate & aDelegate)
Error
يؤدي ذلك إلى إضافة تفويض معالِج حدث إلى طبقة النظام لتوسيع قدرته على معالجة أحداث LwIP.
CancelTimer(TimerCompleteFunct aOnComplete, void *aAppState)
void
تؤدي هذه الطريقة إلى إلغاء الموقّت بلقطة واحدة والذي بدأ في وقت سابق حتى StartTimer().
DispatchEvent(Event aEvent)
Error
يؤدي هذا إلى إرسال الحدث المحدّد لمعالجته من خلال هذا المثيل.
DispatchEvents(void)
Error
وهذا برنامج تضميني حول عنصر جذب خاص بالنظام الأساسي يؤثر في حلقة حدث، وينتظر في قائمة انتظار تخدم هذا المثيل، ويسحب الأحداث من قائمة الانتظار، ثم يرسلها للتعامل معها.
GetPlatformData(void) const
void *
يعرض ذلك أي بيانات نظام أساسي خاص بالعميل تم تعيينها للمثيل، إذا تم تعيينها مسبقًا.
HandleEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
ويؤدي ذلك إلى تنفيذ عملية الإرسال والتعامل الفعليين لحدث طبقة نظام Weave.
HandlePlatformTimer(void)
Error
التعامل مع حدث انتهاء صلاحية موقّت النظام الأساسي
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
التعامل مع وحدات الإدخال والإخراج من مكالمة محدّدة
Init(void *aContext)
Error
NewTimer(Timer *& aTimerPtr)
Error
PostEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
يؤدي هذا إلى نشر حدث أو رسالة من النوع المحدّد مع الوسيطة المتوفرة في قائمة انتظار الأحداث الخاصة بالنظام الأساسي لهذا المثيل.
PrepareSelect(int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
عليك إعداد مجموعات أدوات وصف الملفات لكي يتمكن select() من استخدامها.
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
تعمل على جدولة دالة ذات توقيع مطابق لـ TimerCompleteFunct ليتم تشغيلها في أقرب وقت ممكن في سلسلة محادثات Weave.
SetPlatformData(void *aPlatformData)
void
يؤدي ذلك إلى ضبط بيانات النظام الأساسي المحدّدة الخاصة بالعميل على المثيل لاستردادها لاحقًا بواسطة النظام الأساسي للعميل.
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
تؤدي هذه الطريقة إلى بدء موقّت بلقطة واحدة.
State(void) const
LayerState
يُرجع هذا الحالة الحالية لكائن الطبقة.
WakeSelect(void)
void
قم بتنشيط سلسلة الإدخال/الإخراج التي تراقب واصفات الملفات باستخدام select() عن طريق كتابة بايت واحد في ممر التنشيط.

الدوال الثابتة العامة

GetClock_Monotonic(void)
uint64_t
لعرض وقت نظام رتيب بوحدات الميكرو ثانية.
GetClock_MonotonicHiRes(void)
uint64_t
تعرض وقت نظام رتيب عالي الدقة (من المحتمل) بوحدات الميكرو ثانية.
GetClock_MonotonicMS(void)
uint64_t
تعرض وقت النظام الرتيب بوحدات الملي ثانية.
GetClock_RealTime(uint64_t & curTime)
Error
لعرض الوقت الحقيقي (المدني) الحالي بتنسيق وقت Unix بالميكرو ثانية.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
لعرض الوقت الحقيقي (المدني) الحالي بتنسيق توقيت يونكس بالمللي ثانية.
SetClock_RealTime(uint64_t newCurTime)
Error
تحدِّد هذه السياسة فكرة المنصّة عن الوقت الحقيقي (المدني) الحالي.

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

EventHandler

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

TimerCompleteFunct

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

وظائف عامة

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

يؤدي ذلك إلى إضافة تفويض معالِج حدث إلى طبقة النظام لتوسيع قدرته على معالجة أحداث LwIP.

التفاصيل
المعلمات
[in] aDelegate
بنية تفويض معالج حدث LwIP غير مهيأة
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
عند النجاح.
WEAVE_SYSTEM_ERROR_BAD_ARGS
إذا كان مؤشر الدالة الموجود في aDelegate هو "NULL" (فارغ)

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

تؤدي هذه الطريقة إلى إلغاء الموقّت بلقطة واحدة والذي بدأ في وقت سابق حتى StartTimer().

التفاصيل
المعلمات
[in] aOnComplete
مؤشر إلى دالة رد الاتصال المستخدمة في استدعاء StartTimer().
[in] aAppState
مؤشر لعنصر حالة التطبيق المستخدَم في استدعاء StartTimer().

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

يؤدي هذا إلى إرسال الحدث المحدّد لمعالجته من خلال هذا المثيل.

يتم التعامل مع إعادة تنظيم النوع والوسيطات من الحدث بواسطة عنصر جذب خاص بالنظام الأساسي من المفترض أن يستدعي Layer::HandleEvent للإرسال الفعلي.

التفاصيل
المعلمات
[in] aEvent
كائن الحدث الخاص بالنظام الأساسي المطلوب إرساله للتعامل معه.
المرتجعات
WEAVE_SYSTEM_NO_ERROR في النجاح؛ وإلا، سيظهر خطأ محدد يشير إلى سبب إخفاق التهيئة.

DispatchEvents

Error DispatchEvents(
  void
)

يشكّل هذا الالتفاف التفاف بنيوي حول عنصر جذب خاص بالنظام الأساسي يؤثر في حلقة حدث، وينتظر في صفّ يقدّم الخدمات لهذا الحدث، ويُسحب الأحداث من قائمة الانتظار ويرسلها لمعالجتها.

التفاصيل
المرتجعات
WEAVE_SYSTEM_NO_ERROR عند النجاح؛ وإلا، سيظهر خطأ محدد يشير إلى سبب إخفاق التهيئة.

GetPlatformData

void * GetPlatformData(
  void
) const 

يعرض ذلك أي بيانات نظام أساسي خاص بالعميل تم تعيينها للمثيل، إذا تم تعيينها مسبقًا.

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

HandleEvent

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

ويؤدي ذلك إلى تنفيذ عملية الإرسال والتعامل الفعليين لحدث طبقة نظام Weave.

التفاصيل
المعلمات
[in,out] aTarget
مرجع إلى كائن الطبقة الذي يستهدفه الحدث.
[in] aEventType
نوع الحدث / الرسالة المطلوب معالجتها
[in] aArgument
الوسيطة المرتبطة بالحدث أو الرسالة
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
عند النجاح.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
إذا كانت حالة كائن InetLayer غير صحيحة.
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
إذا لم يتم التعرُّف على نوع الحدث.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

التعامل مع حدث انتهاء صلاحية موقّت النظام الأساسي

الاستدعاءات nl::Weave::System::Timer::HandleSensitiveTimers للتعامل مع أي موقّتات منتهية الصلاحية. ومن المفترض أنّ واجهة برمجة التطبيقات هذه لا يتم استدعاؤها إلا أثناء وجودها في سلسلة التعليمات التي تملك كائن طبقة نظام Weave.

التفاصيل
المرتجعات
WEAVE_SYSTEM_NO_ERROR في حالة النجاح، رمز الخطأ في الحالات الأخرى.

HandleSelectResult

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

التعامل مع وحدات الإدخال والإخراج من مكالمة محدّدة

تسجِّل هذه الطريقة حدث الإدخال/الإخراج المعلّق في كل نقطة نهاية نشطة، ثم تستدعي وظائف معالجة وحدات الإدخال والإخراج ذات الصلة لنقاط النهاية هذه.

التفاصيل
المعلمات
[in] aSetSize
القيمة المعروضة للمكالمة المحددة.
[in] aReadSet
يشير إلى مجموعة أدوات وصف ملفات القراءة.
[in] aWriteSet
يشير إلى مجموعة أدوات وصف الملفات للكتابة.
[in] aExceptionSet
يشير إلى مجموعة أدوات وصف الملفات التي تتضمّن أخطاء.

Init

Error Init(
  void *aContext
)

طبقة

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

يؤدي هذا إلى نشر حدث أو رسالة من النوع المحدّد مع الوسيطة المتوفرة في قائمة انتظار الأحداث الخاصة بالنظام الأساسي لهذا المثيل.

التفاصيل
المعلمات
[in,out] aTarget
مؤشر إلى كائن طبقة نظام التنسج الذي يجري طلب النشر
[in] aEventType
نوع الحدث المطلوب مشاركته.
[in,out] aArgument
الوسيطة المرتبطة بالحدث المطلوب نشره.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
عند النجاح.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
إذا كانت حالة كائن الطبقة غير صحيحة.
WEAVE_SYSTEM_ERROR_NO_MEMORY
إذا كانت قائمة انتظار الأحداث ممتلئة.
other
تم إنشاء أخطاء خاصة بالنظام الأساسي تشير إلى سبب التعذُّر.

PrepareSelect

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

عليك إعداد مجموعات أدوات وصف الملفات لكي يتمكن select() من استخدامها.

التفاصيل
المعلمات
[out] aSetSize
نطاق أدوات وصف الملفات في مجموعة واصف الملف.
[in] aReadSet
يشير إلى مجموعة أدوات وصف الملفات القابلة للقراءة.
[in] aWriteSet
يشير هذا المصطلح إلى مجموعة من أدوات وصف الملفات القابلة للكتابة عليها.
[in] aExceptionSet
يشير إلى مجموعة أدوات وصف الملفات التي تتضمّن أخطاء.
[in] aSleepTime
إشارة إلى الحد الأقصى لوقت النوم.

ScheduleWork

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

تعمل على جدولة دالة ذات توقيع مطابق لـ TimerCompleteFunct ليتم تشغيلها في أقرب وقت ممكن في سلسلة محادثات Weave.

التفاصيل
المعلمات
[in] aComplete
يشير هذا المصطلح إلى مؤشر إلى دالة استدعاء سيتم طلبها عند تنشيط هذا الموقّت.
[in] aAppState
مؤشر إلى كائن حالة التطبيق ليتم تمريره إلى دالة رد الاتصال كوسيطة.
قيم الإرجاع
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
في حال عدم إعداد SystemLayer.
WEAVE_SYSTEM_ERROR_NO_MEMORY
في حال لم تتمكّن "طبقة النظام" من تخصيص موقّت جديد.
WEAVE_SYSTEM_NO_ERROR
عند النجاح.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

يؤدي ذلك إلى ضبط بيانات النظام الأساسي المحدّدة الخاصة بالعميل على المثيل لاستردادها لاحقًا بواسطة النظام الأساسي للعميل.

التفاصيل
المعلمات
[in] aPlatformData
بيانات النظام الأساسي الخاصة بالعميل المطلوب تعيينها.

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

Error Shutdown(
  void
)

StartTimer

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

تؤدي هذه الطريقة إلى بدء موقّت بلقطة واحدة.

التفاصيل
المعلمات
[in] aMilliseconds
وقت انتهاء الصلاحية بالمللي ثانية.
[in] aComplete
مؤشر للدالة التي يتم استدعاؤها عند انتهاء مهلة الموقّت.
[in] aAppState
مؤشر إلى عنصر حالة التطبيق المستخدَم عند انتهاء مهلة الموقّت.
المرتجعات
WEAVE_SYSTEM_NO_ERROR بشأن النجاح.
المرتجعات
WEAVE_SYSTEM_ERROR_NO_MEMORY إذا تعذر تخصيص مؤقت.
المرتجعات
قيمة أخرى تشير إلى تعذّر بدء الموقّت.

الحالة

LayerState State(
  void
) const 

يُرجع هذا الحالة الحالية لكائن الطبقة.

WakeSelect

void WakeSelect(
  void
)

قم بتنشيط سلسلة الإدخال/الإخراج التي تراقب واصفات الملفات باستخدام select() عن طريق كتابة بايت واحد في ممر التنشيط.

ملاحظة:إذا تم استدعاء WakeSelect() من داخل HandleSelectResult()، يمكن تخطّي الكتابة في ممر التنشيط، لأنّ سلسلة وحدات الإدخال والإخراج نشطة حاليًا. بالإضافة إلى ذلك، لا نهتم إذا فشلت عملية الكتابة هذه، لأن الفشل الوحيد المحتمل بشكل معقول هو امتلاء الممر، وفي هذه الحالة ستنبثق سلسلة الاتصال المحددة على أي حال.

الدوال الثابتة العامة

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

لعرض وقت نظام رتيب بوحدات الميكرو ثانية.

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

على الرغم من أنّ بعض الأنظمة الأساسية قد تختار عرض قيمة تقيس الوقت منذ تشغيل النظام، لا تعتمد التطبيقات على ذلك. إضافةً إلى ذلك، ليس من الضروري أن تكون فترة GetClock_Monotonic() هي نفسها الفترة في أيٍّ من دوال GetClock... الأخرى. لذلك، لا يمكن إجراء العمليات الحسابية للوقت النسبية إلا على القيم التي تم إرجاعها بواسطة نفس الدالة.

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالميكرو ثانية منذ تاريخ عشوائي تحدّده المنصة

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

تعرض وقت نظام رتيب عالي الدقة (من المحتمل) بوحدات الميكرو ثانية.

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

قد تنفّذ بعض الأنظمة الأساسية الإجراء GetClock_MonotonicHiRes() باستخدام موقّت عالي الدقة قادر على توفير دقة أكبر من GetClock_Monotonic()، ولا يخضع لتعديلات تدريجية في الساعة. قد تعرض الأنظمة التي لا تحتوي على مثل هذا الموقّت القيمة نفسها التي يعرضها GetClock_Monotonic().

لا يلزم أن تكون فترة الوقت التي يعرضها GetClock_MonotonicHiRes() هي نفسها الفترة الزمنية لأيٍّ من دوال GetClock... الأخرى، بما في ذلك GetClock_Monotonic().

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالميكرو ثانية منذ تاريخ عشوائي تحدّده المنصة

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

تعرض وقت النظام الرتيب بوحدات الملي ثانية.

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

على الرغم من أنّ بعض الأنظمة الأساسية قد تختار عرض قيمة تقيس الوقت منذ تشغيل النظام، لا تعتمد التطبيقات على ذلك. إضافةً إلى ذلك، ليس من الضروري أن تكون فترة GetClock_Monotonic() هي نفسها الفترة في أيٍّ من دوال GetClock... الأخرى. لذلك، لا يمكن إجراء العمليات الحسابية للوقت النسبية إلا على القيم التي تم إرجاعها بواسطة نفس الدالة.

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالمللي ثانية منذ حقبة عشوائية تحدّدها النظام الأساسي

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

لعرض الوقت الحقيقي (المدني) الحالي بتنسيق وقت Unix بالميكرو ثانية.

تعرض هذه الطريقة فكرة المنصّة المحلية عن الوقت الفعلي الحالي، ويتم التعبير عنه بقيمة وقت Unix وفقًا لأوّل مرّة بالميكرو ثانية. من المضمون أن يتم ضبط الساعة الأساسية بمعدّل لا يقل عن ثوانٍ كاملة (القيم 1,000,000)، ولكن قد تعمل بعض الأنظمة الأساسية بشكل أسرع.

إذا كان النظام الأساسي الأساسي قادرًا على التتبع في الوقت الفعلي، ولكن النظام غير متزامن حاليًا، ستعرض GetClock_RealTime() الخطأ WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED.

على الأنظمة الأساسية التي لا يمكنها التتبُّع في الوقت الفعلي، قد تكون طريقة GetClock_RealTime() غير متاحة، ما يؤدي إلى حدوث خطأ في الرابط لأي تطبيق يشير إليه. وبدلاً من ذلك، قد توفر هذه الأنظمة الأساسية تنفيذ GetClock_RealTime() الذي يعرض دائمًا الخطأ WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المعلمات
[out] curTime
الوقت الحالي، ويتم التعبير عنه بتوقيت يونكس الذي تم قياسه بالميكرو ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
إذا كان النظام الأساسي قادرًا على التتبع في الوقت الفعلي، ولكنه غير متزامن في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
ما إذا كانت المنصة غير قادرة على التتبع في الوقت الفعلي

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

لعرض الوقت الحقيقي (المدني) الحالي بتنسيق توقيت يونكس بالمللي ثانية.

تعرض هذه الطريقة مفهوم الوقت الفعلي الحالي للنظام الأساسي المحلي، ويتم التعبير عنه بقيمة وقت Unix مُقسَّمة إلى مللي ثانية. من المضمون أن يتم ضبط الساعة الأساسية بمعدّل لا يقل عن ثوانٍ كاملة (القيم 1,000,000)، ولكن قد تعمل بعض الأنظمة الأساسية بشكل أسرع.

إذا كان النظام الأساسي الأساسي قادرًا على التتبع في الوقت الفعلي، ولكن النظام غير متزامن حاليًا، ستعرض GetClock_RealTimeMS() الخطأ WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED.

على الأنظمة الأساسية التي لا يمكنها التتبّع في الوقت الفعلي، قد تكون طريقة GetClock_RealTimeMS() غير متاحة، ما يؤدي إلى حدوث خطأ في الرابط لأي تطبيق يشير إليه. وبدلاً من ذلك، قد توفِّر هذه الأنظمة الأساسية تنفيذًا للدالة GetClock_RealTimeMS() التي تعرض دائمًا الخطأ WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المعلمات
[out] curTime
الوقت الحالي، معبرًا عنه بتوقيت يونكس الذي تم تحديده إلى المللي ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
إذا كان النظام الأساسي قادرًا على التتبع في الوقت الفعلي، ولكنه غير متزامن في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
ما إذا كانت المنصة غير قادرة على التتبع في الوقت الفعلي

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

تحدِّد هذه السياسة فكرة المنصّة عن الوقت الحقيقي (المدني) الحالي.

ويمكن للتطبيقات استدعاء هذه الدالة لتحديد مفهوم النظام الأساسي المحلي في الوقت الفعلي. ويتم التعبير عن الوقت الحالي كقيمة زمنية لنظام التشغيل Unix وفقًا للميكرو ثانية.

بعد ضبط الساعة، يمكن ضمان تتبُّعها في الوقت الفعلي بدقة تبلغ ثوانٍ كاملة على الأقل.

قد تفرض بعض الأنظمة الأساسية قيودًا على التطبيقات أو العمليات التي يمكنها تحديد الوقت الفعلي. إذا لم يُسمح للمتصل بتغيير الوقت الفعلي، ستعرض الدالة SetClock_RealTime() الخطأ WEAVE_SYSTEM_ERROR_ACCESS_DENIED.

على الأنظمة الأساسية التي لا يمكنها التتبّع في الوقت الفعلي أو التي لا توفّر إمكانية الضبط في الوقت الفعلي، قد تكون الدالة SetClock_RealTime() غير متاحة، ما يؤدي إلى ظهور خطأ في الرابط لأي تطبيق يشير إليها. وبدلاً من ذلك، قد توفِّر هذه الأنظمة الأساسية تنفيذًا للدالة SetClock_RealTime() التي تعرض دائمًا الخطأ WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

تضمن أنّ هذه الدالة آمنة على سلاسل المحادثات على أي نظام أساسي يتيح استخدام سلاسل المحادثات.

التفاصيل
المعلمات
[in] newCurTime
الوقت الحالي الجديد، ويتم التعبير عنه بتوقيت يونكس الذي تم قياسه بالميكرو ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
ما إذا كانت المنصة غير قادرة على التتبع في الوقت الفعلي
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
إذا لم يكن لدى تطبيق الاتصال الإذن بضبط الوقت الحالي