nl::Weave::النظام::الطبقة

#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) typedef
Error(*
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) typedef
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
التعامل مع مؤتمر I/O من مكالمة محددة
Init(void *aContext)
Error
NewTimer(Timer *& aTimerPtr)
Error
PostEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
يؤدي هذا إلى نشر حدث / رسالة من النوع المحدد مع الوسيطة المتوفرة إلى قائمة انتظار الأحداث الخاصة بهذا المثيل's.
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
نشِّط سلسلة محادثات I/O التي تراقب واصِفات الملفات باستخدام 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
تضبط مفهوم النظام الأساسي، عن الوقت الحالي (المدني) الحالي.

الأنواع المتاحة للجميع

معالج الأحداث

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

موقِّت الموقّت

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
إذا كان مؤشر الدالة المضمّن في aتفويض هو فارغ

إلغاء الموقِّت

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

تلغي هذه الطريقة موقّتًا بلقطة واحدة تم بدؤها قبل StartTimer().

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

الحدث المرسَل

Error DispatchEvent(
  Event aEvent
)

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

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

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

إرسال الأحداث

Error DispatchEvents(
  void
)

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

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

الحصول على بيانات النظام الأساسي

void * GetPlatformData(
  void
) const 

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

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

مقبض الحدث

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
إذا كان نوع الحدث غير معروف.

مقبض مقبض

Error HandlePlatformTimer(
  void
)

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

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

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

نتيجة الحساب

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

التعامل مع مؤتمر I/O من مكالمة محددة

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

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

إنيت

Error Init(
  void *aContext
)

طبقة

 Layer(
  void
)

موقّت جديد

Error NewTimer(
  Timer *& aTimerPtr
)

ما بعد الفعالية

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

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

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

تحضير التحديد

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
مرجع للحد الأقصى لوقت النوم

الجدول الزمني للعمل

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

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

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

بيانات النظام الأساسي

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 

يؤدي هذا إلى عرض الحالة الحالية لكائن الطبقة.

الاستيقاظ أو الكتابة

void WakeSelect(
  void
)

نشِّط سلسلة محادثات I/O التي تراقب واصِفات الملفات باستخدام select() من خلال كتابة بايت واحد على أنبوب التنشيط.

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

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

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... الأخرى. لذلك، لا يمكن إجراء عمليات حسابية نسبية إلا على القيم التي تعرضها الدالة نفسها.

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

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

الحصول على الوقت الفعلي

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
الوقت الحالي، معبرًا عنه باسم وقت نظام التشغيل Unix بمقدار ميكرو ثانية.
قيم الإرجاع
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
الوقت الحالي، معبرًا عنه باسم وقت نظام التشغيل Unix بمقدار ميلي ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
إذا كان النظام الأساسي قادرًا على تتبع الوقت الفعلي، ولكنها غير متزامنة في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
إذا لم يتمكّن النظام الأساسي من تتبّع الوقت الفعلي

ضبط CClock_الوقت الفعلي

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
وتم قياس الوقت الحالي الجديد معبرًا عنه باسم وقت نظام التشغيل Unix إلى ميكروثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
إذا لم يتمكّن النظام الأساسي من تتبّع الوقت الفعلي
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
إذا لم يكن لتطبيق الاتصال امتياز تحديد الوقت الحالي.