مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: aa3b87a713ceالمصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يوفر نطاق الأسماء ara::tsync واجهات للوصول المتزامن إلى الوقت على Adaptive Platform، وذلك من خلال ربط التطبيقات عبر SynchronizedTimeBaseConsumer بقواعد توقيت مهيأة. ويتم تسجيل الوقت عبر طوابع زمنية عالية الدقة من النوع Timestamp بالاستناد إلى دقة النانو ثانية [SWS_TS_01251]. وتراقب التطبيقات التزامن عبر مؤشرات الحالة مثل SynchronizationStatus[SWS_TS_01050]. وكقيد أساسي، فإن عمليات رد الاتصال غير المتزامنة للإشعارات ليست مصممة لتكون آمنة خيطياً ويجب معالجة فقدان الاتصال بعفريت التوقيت (time daemon).
السياق
يوفر نطاق الأسماء ara::tsync ضمن AUTOSAR Adaptive Platform واجهات لمزامنة التوقيت عالية الدقة. وهو يتيح للتطبيقات قراءة نقاط زمنية متزامنة، ومراقبة حالة المزامنة، وتسجيل قيم القياس لأغراض التحقق. وتتولى الفئة SynchronizedTimeBaseConsumer الدور المركزي للتطبيقات المستهلكة، حيث تغلف الوصول إلى قاعدة توقيت مهيأة عبر InstanceSpecifier. وعلى جانب الموفر، يعمل SynchronizedTimeBaseProvider كنقطة وصول لتوفير قواعد التوقيت والتحكم بها.
أساس التمثيل الزمني هو الساعة الوهمية TimeBase، والتي يُعرَّف عبرها الاسم المستعار للنوع Timestamp بصفته std::chrono::time_point<TimeBase, std::chrono::nanoseconds>[SWS_TS_01251]. وتتم عملية المزامنة الفعلية والربط ببروتوكولات الناقل مثل IEEE 802.1AS أو PTP عادةً عبر خدمة خلفية. تفسير: يتواصل عفريت التوقيت هذا عبر العمليات مع مثيلات ara::tsync، وهو ما يثبته الخطأ المحدد TsyncErrc::kDaemonConnectionLost[SWS_TS_00901]. سؤال Q-dd9d1a36f7573a03 (مفتوح) وتكتمل البنية بواجهات مثل ConsumerTimeBaseValidationNotification وProviderTimeBaseValidationNotification بالإضافة إلى هياكل بيانات لقياسات وقت التشغيل والدقة (مثل TimeMasterMeasurementType وTimeSlaveMeasurementType وPdelayInitiatorMeasurementType وPdelayResponderMeasurementType).
مخطط السياق: التفاعل بين التطبيقات وفئات الواجهة وعفريت التوقيت في نطاق الأسماء ara::tsync. المصادر: [SWS_TS_00901]، [SWS_TS_01251].
دورة الحياة
تتحدد دورة حياة قاعدة التوقيت المتزامنة عبر هياكل الحالة وتغيرات الحالة المنفصلة. ويتم تمثيل لقطة لحظية للحالة الزمنية متضمنة كافة البيانات الوصفية عبر SynchronizedTimeBaseStatus. وتتم إدارة حالة الاتصال والمزامنة عبر التعداد SynchronizationStatus[SWS_TS_01050]:
kNotSynchronizedUntilStartup: الحالة الأولية قبل أول مزامنة ناجحة بعد بدء تشغيل النظام.
kSynchronized: قاعدة التوقيت متزامنة مع الـ Time-Master.
kSynchToGateway: تتم المزامنة عبر بوابة (gateway).
kTimeOut: لم يتم التمكن من إنشاء المزامنة أو الحفاظ عليها ضمن نافذة زمنية محددة.
بالإضافة إلى حالة الاتصال، يسجل التعداد LeapJump[SWS_TS_01051] التصحيحات القفزية لقاعدة التوقيت: حيث يشير kTimeLeapNone إلى تشغيل مستمر دون تجاوز العتبة، بينما يشير kTimeLeapFuture وkTimeLeapPast إلى تصحيحات ذات دلالة باتجاه المستقبل أو الماضي على التوالي.
فيما يتعلق بالتزامن، تجدر الإشارة إلى أن أنواع ردود الاتصال مثل SynchronizationNotifier[SWS_TS_14222] وSynchronizedTimeBaseNotifier[SWS_TS_14221] وTimePrecisionNotifier[SWS_TS_14223] مصنفة وفقاً للمواصفات على أنها ليست آمنة خيطياً. ولذلك تتطلب انتقالات الحالة، ولا سيما حدوث انتهاء المهلة أو إعادة المزامنة، إجراء مزامنة من جانب التطبيق.
مخطط الحالة: دورة الحياة وحالات الاتصال لقاعدة توقيت متزامنة. المصادر: [SWS_TS_01050].
مسار الاستخدام
ينقسم المسار النموذجي لاستخدام قاعدة توقيت متزامنة بواسطة تطبيق مستهلك إلى الخطوات التالية:
التهيئة والربط: ينشئ التطبيق مثيلاً من SynchronizedTimeBaseConsumer لقاعدة التوقيت المطلوبة مع تحديد InstanceSpecifier المناسب.
تسجيل الإشعارات: لمراقبة حالة المزامنة، يمرر التطبيق دوال رد الاتصال. يشمل ذلك SynchronizationNotifier[SWS_TS_14222] للتغييرات في SynchronizationStatus، وSynchronizedTimeBaseNotifier[SWS_TS_14221] للحصول على لقطات تفصيلية للحالة (SynchronizedTimeBaseStatus)، بالإضافة إلى TimePrecisionNotifier[SWS_TS_14223] لبيانات قياس الدقة (TimePrecisionMeasurement).
الاستعلام عن الطابع الزمني: عند وجود الحالة kSynchronized أو kSynchToGateway[SWS_TS_01050]، يقرأ التطبيق قيم وقت عالية الدقة من النوع Timestamp[SWS_TS_01251].
الاستجابة لقفزات الحالة والوقت: إذا أشارت الإشعارات إلى LeapJump لا يساوي kTimeLeapNone[SWS_TS_01051] أو إلى انتقال إلى kTimeOut[SWS_TS_01050]، يُعدل التطبيق المؤقتات الداخلية أو ينتقل إلى وضع التدهور (degradation mode).
إرسال بيانات المستخدم: إذا نُقلت بيانات حمولة مخصصة للمستخدم في إطار مزامنة الوقت، يُستخدم الهيكل UserData.
سيناريوهات الأخطاء
تتبع معالجة الأخطاء في نطاق الأسماء النموذج القياسي لـ AUTOSAR عبر نطاق الخطأ TsyncErrorDomain. ويتم الوصول إلى هذا النطاق العام عبر GetTsyncErrorDomain()[SWS_TS_00909]. وتُوصف أسباب الأخطاء عبر نوع التعداد TsyncErrc[SWS_TS_00901]:
kDaemonConnectionLost: تفشل العملية المطلوبة نظراً لانقطاع الاتصال بعفريت مزامنة الوقت (Time-Sync-Daemon).
kLimitsExceeded: تقع القيمة الممررة أو المحسوبة خارج نطاق القيم المسموح به.
kFunctionNotSupported: الوظيفة المطلوبة غير مدعومة في التهيئة الحالية أو بيئة المنصة.
kInvalidUserDataSize: يتجاوز طول بيانات المستخدم الممررة الحد الأقصى المحدد بواسطة UserData::kMaxUserDataSize والبالغ حالياً 3 بايت.
يتم إنشاء مثيلات من ara::core::ErrorCode عبر الدالة المساعدة MakeErrorCode[SWS_TS_00910]. تم الإعلان عن الدالة بصفتها noexcept وهي آمنة خيطياً. وبالنسبة للبنى القائمة على الاستثناءات، يوفر نطاق الأسماء فئة الاستثناء TsyncException.
يستند هذا الدليل إلى مواصفات AUTOSAR Adaptive Platform R25-11 للوحدة tsync.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
مخطط الفئة
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
=0 The TB is not synchronized until startup (inital state)
kTimeOut
= 0x1 The TB was not synchronized within a certain time frame.
kSynchronized
= 0x2 The TB is in sync with the time master.
kSynchToGateway
= 0x3 The TB is in sync with the gateway.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 2b617e90b13fالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يعبّر التعداد SynchronizationStatus عن حالة الاتصال والمزامنة لقاعدة زمنية في مساحة الاسم ara::tsync[SWS_TS_01050]. يعتمد النوع على std::uint32_t ويتم توفيره عبر ملف الرأس ara/tsync/synchronized_time_base_status.h وكذلك ملف رأس إعادة التوجيه ara/tsync/tsync_fwd.h[SWS_TS_01050]. يحدد التعداد أربع حالات:
kNotSynchronizedUntilStartup (= 0): القاعدة الزمنية غير متزامنة قبل بدء تشغيل النظام (الحالة الأولية) [SWS_TS_01050].
kTimeOut (= 0x1): لم تتم مزامنة القاعدة الزمنية ضمن نافذة زمنية محددة مسبقًا [SWS_TS_01050].
kSynchronized (= 0x2): القاعدة الزمنية متزامنة مع السيد الزمني (Time-Master) [SWS_TS_01050].
kSynchToGateway (= 0x3): القاعدة الزمنية متزامنة مع البوابة (Gateway) [SWS_TS_01050].
يتم جلب الحالة بشكل متزامن عبر الأسلوب GetSynchronizationStatus() للفئة ara::tsync::SynchronizedTimeBaseStatus، والذي يوفّر الحالة في وقت إنشاء كائن الحالة بطريقة آمنة لمؤشرات الترابط وآمنة من الاستثناءات (noexcept) [SWS_TS_01053]. للإشعارات عند تغيرات الحالة، يوجد في ara/tsync/synchronized_time_base_consumer.h الاسم المستعار للنوع SynchronizationNotifier (std::function<void(const SynchronizationStatus &)>)، والذي تم تحديده صراحةً بأنه غير آمن لمؤشرات الترابط [SWS_TS_14222].
في حالة الخطأ أو عند غياب المزامنة، يجب مراعاة سلوك الأساليب المرتبطة: إذا لم تكن القاعدة الزمنية قد تمت مزامنتها من قبل وتُظهر الحالة kNotSynchronizedUntilStartup، يُرجع الأسلوب GetCreationTime() قيمة فارغة من ara::core::Optional، نظراً لعدم توفر وقت إنشاء صالح بالوقت المتزامن [SWS_TS_01055].
تم إنشاء هذا النص بواسطة نظام ذكاء اصطناعي ويعتمد حصريًا على بيانات المواصفة من AUTOSAR R25-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
Request a governed re-review of this record. The record is not changed immediately.
=1 The action cannot be executed, because the connection to time sync daemon is currently lost.
kLimitsExceeded
=2 The value exceeds valid value range
kFunctionNotSupported
=3 The requested function is not supported
kInvalidUserDataSize
=4 The length of the user data exceeded the maximum allowed size, defined by UserData::kMaxUserDataSize (currently 3 bytes).
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: bf6ea0154525المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يحدد التعداد TsyncErrc رموز الخطأ القياسية لمجموعة الوظائف Time Synchronization [SWS_TS_00901]. وهو يستند إلى ara::core::ErrorDomain::CodeType ويُعلَن عنه داخل نطاق الأسماء ara::tsync؛ كما يتوفر اسم مستعار عبر ara::tsync::TsyncErrorDomain::Errc[SWS_TS_01266]. وتُستخدم الدالة الآمنة خيطيًا MakeErrorCode لإنشاء كائنات أخطاء كاملة، حيث تربط قيمة TsyncErrc ببيانات إضافية خاصة بالشركة المصنعة لتكوين ara::core::ErrorCode[SWS_TS_00910].
kDaemonConnectionLost (=1): يتعذر تنفيذ الإجراء نظراً لانقطاع الاتصال ببرنامج الخادم الخفي لمزامنة الوقت (Time-Sync-Daemon).
kLimitsExceeded (=2): تتجاوز المعلمة الممررة نطاق القيم المسموح به. يحدث هذا على سبيل المثال عند SetRateCorrection، إذا كان تصحيح المعدل المطلوب غير صالح [SWS_TS_01110].
kFunctionNotSupported (=3): الوظيفة المطلوبة غير مدعومة. تفسير: يُرجَّح أن يخص هذا التطبيقات التي لا تتوفر فيها وظائف اختيارية للعتاد أو الواجهات. سؤال Q-e22067d84fd6adb4 (مفتوح)
kInvalidUserDataSize (=4): يتجاوز طول بيانات الحمولة الحجم الأقصى البالغ 3 بايت والمحدد بواسطة UserData::kMaxUserDataSize. يحدث هذا الخطأ عند SetTime[SWS_TS_01107] وكذلك SetUserData[SWS_TS_01112].
تُرجع أساليب تحديث الوقت والبيانات مثل SetTime وUpdateTime وSetRateCorrection وSetUserData للفئة ara::tsync::SynchronizedTimeBaseProvider النتائج بشكل متزامن عبر ara::core::Result<void>، ومحددة على أنها غير آمنة خيطيًا [SWS_TS_01107][SWS_TS_01108][SWS_TS_01110][SWS_TS_01112]. وفي حالة الخطأ، لا تسري دلالات التراجع (no_rollback_semantics) وفقًا للمواصفة [SWS_TS_01107][SWS_TS_01110][SWS_TS_01112].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى حالة المواصفة R25-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
Request a governed re-review of this record. The record is not changed immediately.
Returns a reference to the global TsyncErrorDomain object.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 3848538f31e7المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تنتمي الدالة المتزامنة GetTsyncErrorDomain إلى نطاق الأسماء ara::tsync وتُضمَّن عبر ملف الرأس ara/tsync/tsync_error_domain.h[SWS_TS_00909]. يتم الاستدعاء بدون معلمات، ويخدم غرض جلب مرجع إلى كائن TsyncErrorDomain العام لمزامنة الوقت [SWS_TS_00909].
تُرجع الدالة كقيمة إرجاع مرجعًا ثابتًا إلى كائن نطاق الأخطاء العام هذا من النوع const ara::core::ErrorDomain &[SWS_TS_00909]. تفسير: يُرجَّح أن يعمل هذا المثيل المقدَّم كنقطة مرجعية في مفهوم معالجة الأخطاء في AUTOSAR Adaptive لتحديد رموز الأخطاء الخاصة بالوحدة من مجال مزامنة الوقت أو تعيينها أو مقارنتها مع نطاقات أخطاء أخرى. سؤال Q-cf1fce412576bca3 (مفتوح)
معالجة الأخطاء والأمان من الاستثناءات
صُمِّم توقيع الدالة صراحةً ليكون noexcept وحُدِّد بأنه آمن من الاستثناءات (exception safe) [SWS_TS_00909]. يعني هذا أنه لا يمكن رمي أي استثناءات أثناء التنفيذ. وبما أن الدالة تُرجع فقط المرجع إلى كائن النطاق العام الموجود مسبقًا، فلا تنشأ أي حالات خطأ داخلية، ولا توجد رموز أخطاء أو رسائل خطأ محددة لهذا الاستدعاء [SWS_TS_00909].
التزامن والقيود
وفقًا للمواصفة، صُنِّفت GetTsyncErrorDomain بأنها آمنة مؤشريًا (thread-safe) [SWS_TS_00909]. وبالتالي، يمكن إجراء الاستدعاءات بالتوازي من خيوط تنفيذ (Threads) مختلفة دون مزامنة مسبقة أو آليات قفل. ولا توجد شروط ترتيب أو شروط مسبقة خاصة للاستدعاء وفقًا للمواصفة [SWS_TS_00909].
أُنشئ هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ad8052caa2c8المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة MakeErrorCode للإنشاء المتزامن لكائن ara::core::ErrorCode لمجال خطأ مزامنة الوقت في مساحة الأسماء ara::tsync[SWS_TS_00910]. وهي متاحة عبر ملف الرأس ara/tsync/tsync_error_domain.h وتنقل أرقام أخطاء مزامنة الوقت إلى نموذج معالجة الأخطاء القياسي في AUTOSAR Adaptive.
المعلَمات وقيمة الإرجاع
code (ara::tsync::TsyncErrc): تُحدد رقم الخطأ المحدد للمجال [SWS_TS_00910].
data (ara::core::ErrorDomain::SupportDataType): تُمرر بيانات إضافية خاصة بالشركة المصنعة حول الخطأ الذي حدث [SWS_TS_00910].
قيمة الإرجاع: تُرجع كائن ara::core::ErrorCode مهيأً [SWS_TS_00910].
التزامن وأمان التنفيذ
تم الإعلان عن الدالة باستخدام noexcept وتصنيفها على أنها آمنة ضد الاستثناءات [SWS_TS_00910]؛ فهي لا تطلق أي استثناءات في وقت التشغيل. بالإضافة إلى ذلك، تم تحديد التنفيذ على أنه thread-safe[SWS_TS_00910]، ولهذا يجوز استدعاؤها بالتوازي من خيوط معالجة متعددة دون إجراءات مزامنة إضافية.
تفاعل
استكمالًا لهذه الدالة الأساسية، يحدد المطلب ذو الصلة [SWS_TS_14213] تحميلًا زائدًا مماثلًا لـ TsyncFvmErrc في مساحة الأسماء apext::tsync (ملف الرأس apext/tsync/fvm_error_domain.h)، والذي تم تعريفه كـ constexpr.
تم توليد هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني