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) 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
التعامل مع وحدات الإدخال والإخراج من مكالمة محدّدة
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
استيقظ سلسلة 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
تعرض الوقت الحقيقي (المدني) الحالي بتنسيق وقت Unix بالملي ثانية.
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
إذا كان مؤشر الدالة المضمن في a user (مفوّض) هو NULL (فارغ)

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

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

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

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

يؤدي هذا إلى إرسال الحدث المحدّد للمعالجة بواسطة هذا المثيل.

يتم التعامل مع إلغاء تنظيم النوع والوسيطات من الحدث من خلال عنصر جذب خاص بالنظام الأساسي والذي ينبغي أن يستدعي بعد ذلك الطبقة::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::HandleExpirationTimers للتعامل مع أي مؤقتات منتهية الصلاحية. من المفترض أنّه يتم استدعاء واجهة برمجة التطبيقات هذه فقط أثناء سلسلة التعليمات التي تملك كائن طبقة نظام 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
يشير هذا المصطلح إلى مجموعة من أدوات وصف الملفات التي تتضمّن أخطاء.

إنت

Error Init(
  void *aContext
)

طبقة

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

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

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

التفاصيل
المَعلمات
[in,out] aTarget
مؤشر يشير إلى الكائن Layer لنظام Weave الذي يقدّم طلب النشر.
[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
إذا لم يتمكن SystemLayer من تخصيص مؤقت جديد.
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
)

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

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

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

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

لعرض الوقت الحقيقي (المدني) الحالي بتنسيق وقت 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 بالملي ثانية.

تُرجع هذه الطريقة مفهوم النظام الأساسي المحلي في الوقت الفعلي الحالي، معبرًا عنه بقيمة وقت نظام التشغيل 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
إذا لم يكن تطبيق الاتصال يمتلك الامتياز لتعيين الوقت الحالي.