DEENESPTFRRUARHIKOZHNL

وحدة ara::tsync — Time Synchronization

Spezifikation: AUTOSAR_AP_SWS_TimeSynchronization.pdf (R25-11) · 141 API-Records

دليل الوحدةمولَّد بالذكاء الاصطناعي

توفّر قواعد زمنية متزامنة على مستوى المركبة وتتيح للتطبيقات استعلامات زمنية دقيقة ومراقبة الحالة.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 29e900d376f8 المصدر أسئلة مفتوحة (2)
المرساة السببية: R25-11 صالح اعتبارًا من R25-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

توفّر قواعد زمنية متزامنة على مستوى المركبة وتتيح للتطبيقات استعلامات زمنية دقيقة ومراقبة الحالة.

تتيح الكتلة الوظيفية Time Synchronization لـ AUTOSAR Adaptive Platform قواعد زمنية متسقة ومزامنة على نطاق الشبكة (AUTOSAR_AP_SWS_TimeSynchronization ص. 16). وعبر واجهات قياسية، تسترجع التطبيقات التكيفية حالات زمنية ذرية أو تُغذي، بصفتها ساعات رئيسية نشطة، تصحيحات جديدة للوقت والمعدل في النظام ككل. وفي الوقت نفسه، تراقب استدعاءات Notifier الارتجاعية المسجلة باستمرار تغيرات الحالة وكذلك قفزات الوقت للساعات الأساسية ([SWS_TS_01009]). وتقوم آليات متقدمة للتحقق من صحة بيانات القياس وقيم الحداثة بتأمين التكامل الزمني ضد أخطاء النقل والتلاعبات.

تتيح الكتلة الوظيفية Time Synchronization (tsync) على AUTOSAR Adaptive Platform قواعد زمنية متسقة ومزامنة على نطاق الشبكة (AUTOSAR_AP_SWS_TimeSynchronization ص. 16). وبصفتها خدمة خلفية قائمة على عفريت (daemon)، فإنها تُجرد آليات المزامنة الخاصة بالأجهزة والناقلات (مثل IEEE 802.1AS gPTP) وتُزود الكتل الأساسية مثل Log and Trace و Intrusion Detection System Manager (IdsM) وكذلك خدمات التحديث عبر واجهات قياسية (AUTOSAR_AP_EXP_SWArchitecture ص. 83).

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

مخطط السياق: تضمين كتلة Time Synchronization القائمة على عفريت (daemon) في AUTOSAR Adaptive Platform وعلاقات واجهاتها بالكتل والتطبيقات المستهلكة. المصادر: AUTOSAR_AP_SWS_TimeSynchronization ص. 16، AUTOSAR_AP_EXP_SWArchitecture ص. 83، AUTOSAR_AP_EXP_SWArchitecture ص. 83

للوصول المخصص للقراءة، تستخدم التطبيقات الواجهة SynchronizedTimeBaseConsumer ([SWS_TS_01001]). تُرجع الدالة GetTimeWithStatus() لقطة ذرية من النوع SynchronizedTimeBaseStatus، يمكن من خلالها استرجاع الوقت العالمي، ووقت الإنشاء المحلي الرتيب، وحالة المزامنة، بالإضافة إلى UserData المستلمة ([SWS_TS_01009]، [SWS_TS_01055]، [SWS_TS_14176]). ولتجنب الاستقصاء المتكرر (Polling)، تسجل التطبيقات نفسها عبر استدعاءات Notifier الارتجاعية لتغيرات الحالة وقفزات الوقت ([SWS_TS_01010]، [SWS_TS_01014]).

استعلام متزامن عن الوقت وحالة اللقطةApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustandبيانات خام للوقت والحالة<<create>> Snapshot erzeugenالقيمة المرجعة: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

مخطط التتابع: مسار استعلام متزامن عن الوقت عبر واجهة المستهلك وقراءة خصائص اللقطة الذرية. المصادر: [SWS_TS_01009]، [SWS_TS_01055]، [SWS_TS_14176]، AUTOSAR_AP_EXP_SWArchitecture ص. 225

تتحكم التطبيقات المانحة للوقت في سلوك النظام عبر SynchronizedTimeBaseProvider: تُطلق SetTime() عمليات نقل فورية على الناقل، بينما تقوم UpdateTime() بضبط الساعة محليًا في البداية ([SWS_TS_01101]، [SWS_TS_01107]، [SWS_TS_01108]). وتحمي آليات مصاحبة مثل Time Validation ([SWS_TS_00420]، [SWS_TS_00421]) وإدارة قيم الحداثة الأصلية (FVM) من أخطاء الانحراف وإعادة الإرسال ([SWS_TS_14198]). وفي حالة الخطأ، تشير رموز TsyncErrc (مثل kDaemonConnectionLost) إلى انقطاع الاتصال، بينما يُعرض غياب رسائل المزامنة كـ kTimeOut في كائن الحالة ([SWS_TS_00901]، [SWS_TS_01050]).

تتيح الكتلة الوظيفية Time Synchronization (tsync) على AUTOSAR Adaptive Platform قواعد زمنية منسقة ومزامنة على نطاق الشبكة، وتفصل العمليات المطبقة عن بروتوكولات مزامنة الوقت الخاصة بالأجهزة والناقلات (AUTOSAR_AP_SWS_TimeSynchronization ص. 16). ويشكل النظام الأساس التقني المعلوماتي للأنظمة الموزعة، التي يجب فيها ضمان تسلسلات أحداث متسقة، وسجلات تتبع قابلة للتكرار، ودورات حسابية قطعية عبر حدود وحدات التحكم الإلكترونية (AUTOSAR_AP_EXP_SWArchitecture ص. 83).

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

مخطط السياق: تضمين كتلة Time Synchronization القائمة على عفريت (daemon) في AUTOSAR Adaptive Platform وعلاقات واجهاتها بالكتل والتطبيقات المستهلكة. المصادر: AUTOSAR_AP_SWS_TimeSynchronization ص. 16، AUTOSAR_AP_EXP_SWArchitecture ص. 83، AUTOSAR_AP_EXP_SWArchitecture ص. 83

حدود النظام ودور كتلة Time Synchronization القائمة على عفريت (daemon)

تم تنفيذ المعمارية الوظيفية لـ Time Synchronization ككتلة قائمة على عفريت (daemon) (daemon-based)، تعمل في الخلفية كخدمة منصة مركزية (AUTOSAR_AP_SWS_TimeSynchronization ص. 16). يتفاعل هذا العفريت مباشرة مع واجهات نظام التشغيل الأساسي ويعالج بيانات مزامنة الوقت القائمة على الشبكة مثل gPTP (IEEE 802.1AS) أو مزامنات الوقت الكلاسيكية للناقل (AUTOSAR_FO_PRS_TimeSyncProtocol ص. 68). وبالمقارنة مع سياق التطبيق، تُغلف الكتلة بالكامل التعويض الرياضي لانحراف وإزاحة ساعات الأجهزة.

تصل العديد من الكتل الوظيفية الأساسية لـ Adaptive Platform إلى tsync عبر واجهات خدمة قياسية (AUTOSAR_AP_EXP_SWArchitecture ص. 83). على سبيل المثال، يعتمد Log and Trace على القاعدة الزمنية المزامنة لتزويد أحداث السجل و DLT على مستوى النظام بطوابع زمنية عالمية موثوقة (AUTOSAR_AP_EXP_SWArchitecture ص. 59؛ AUTOSAR_AP_SWS_LogAndTrace ص. 15). كما تعتمد الوحدات ذات الصلة بالأمان، مثل Intrusion Detection System Manager (IdsM) وكذلك خدمات التحديث (UCM و Vehicle UCM)، إلزاميًا على واجهة C++ لـ SynchronizedTimeBaseConsumer، لتوجيه تقارير موثوقة جنائيًا ومعاملات تحديث متسقة عبر حدود وحدات التحكم الإلكترونية (AUTOSAR_AP_EXP_SWArchitecture ص. 125؛ AUTOSAR_AP_SWS_UpdateAndConfigurationManagement ص. 16؛ AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement ص. 11).

الواجهات المستهلكة واستعلامات الوقت ذات الحالة

للوصول المخصص للقراءة إلى قاعدة زمنية مزامنة، تستخدم التطبيقات فئة الواجهة SynchronizedTimeBaseConsumer ([SWS_TS_01001]). تطبق الفئة دلالات النقل ([SWS_TS_01003]، [SWS_TS_01004])، لكنها تستبعد صراحة أي نسخ ([SWS_TS_01005]، [SWS_TS_01006]). وأثناء وقت التشغيل، تسمح GetRateDeviation() بالقراءة المباشرة لانحراف التردد الحالي للساعة ([SWS_TS_01008]).

العنصر المركزي لكل استعلام متزامن هو العملية GetTimeWithStatus() ([SWS_TS_01009]). وبدلًا من إرجاع قيم وقت خام معزولة، تُنشئ الدالة لقطة متسقة ذاتيًا من النوع SynchronizedTimeBaseStatus (EXP_SWArchitecture ص. 81). تُجمد هذه اللقطة وقت الإنشاء الدقيق في الوقت العالمي ([SWS_TS_01055]) وكذلك في الوقت الرتيب المحلي عبر GetCreationLocalTime() ([SWS_TS_14176]). وتُمثَّل النقاط الزمنية هنا في نوع C++-Chrono القياسي Timestamp بدقة النانو ثانية على أساس std::int64_t ([SWS_TS_01251]، [SWS_TS_01261]، [SWS_TS_01262]).

إلى جانب الوقت، يمكن أيضًا من اللقطة تحديد حالة الاتصال والمزامنة عبر GetSynchronizationStatus() ([SWS_TS_01053])، وقفزة زمنية محتملة الحدوث عبر GetLeapJump() ([SWS_TS_01054])، وكذلك بيانات مستخدم خاصة بالتطبيق عبر GetUserData() ([SWS_TS_01056]). لا يوجد منشئ افتراضي لكائن الحالة ([SWS_TS_01061])، في حين يضمن منشئا النقل والنسخ تسليمه الآمن عبر الخيوط (thread-safe) إلى روتينات التطبيق المستدعية ([SWS_TS_01057]، [SWS_TS_01058]).

استعلام متزامن عن الوقت وحالة اللقطةApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustandبيانات خام للوقت والحالة<<create>> Snapshot erzeugenالقيمة المرجعة: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

مخطط التتابع: مسار استعلام متزامن عن الوقت عبر واجهة المستهلك وقراءة خصائص اللقطة الذرية. المصادر: [SWS_TS_01009]، [SWS_TS_01055]، [SWS_TS_14176]، AUTOSAR_AP_EXP_SWArchitecture ص. 225

الإشعارات المدفوعة بالأحداث ومراقبة المزامنة

لتجنب حلقات الاستقصاء المتكرر (Polling)، توفر SynchronizedTimeBaseConsumer نمط مراقب مدفوعًا بالأحداث عبر استدعاءات Notifier الارتجاعية (AUTOSAR_AP_EXP_SWArchitecture ص. 226). تسجل التطبيقات نفسها باستدعاءات ارتجاعية آمنة النوع لتغيرات حالة محددة ([SWS_TS_14221]، [SWS_TS_14222]). وعند كل إعادة تسجيل، يحل الـ Notifier الجديد محل المعالج المسجل سابقًا ([SWS_TS_01010]).

لتغيرات الحالة المجمعة توجد RegisterStatusChangeNotifier() ([SWS_TS_01010])، وتكتمل بـ UnregisterStatusChangeNotifier() ([SWS_TS_01011]). وإذا كان التطبيق يستجيب في المقام الأول لتغير حالة المزامنة (مثل فقدان الاتصال بالساعة الرئيسية الكبرى Grandmaster)، يتم استخدام RegisterSynchronizationStateChangeNotifier() ([SWS_TS_01012]). أما قفزات الوقت إلى المستقبل (kTimeLeapFuture) أو الماضي (kTimeLeapPast)، التي تتجاوز عتبة مهيأة، فيتم الإبلاغ عنها عبر RegisterTimeLeapNotifier() ([SWS_TS_01014]، [SWS_TS_01051]).

لتطبيقات الميكاترونيكس عالية الدقة، تتوفر أيضًا RegisterTimePrecisionMeasurementNotifier() ([SWS_TS_01018]). يمرر الاستدعاء الارتجاعي هيكلًا TimePrecisionMeasurement، يحتوي على قيم دقيقة بالثواني والنانو ثانية مباشرة قبل المزامنة (locSeconds، locNanoSeconds) وبعدها (glbSeconds، glbNanoSeconds)، وتأخير المسار المحسوب pathDelay، بالإضافة إلى قناع البتات timeBaseStatus ([SWS_TS_01401]، [SWS_TS_01403]، [SWS_TS_01406]، [SWS_TS_01408]). ولا تقوم كتلة Time Synchronization هنا بأي إدارة لقوائم الانتظار (Queuing)؛ ويجب تنفيذ التخزين المؤقت، عند الحاجة، داخل الاستدعاء الارتجاعي للتطبيق ([SWS_TS_01018]).

نمط المراقب (Observer) لتغيير الحالة وقفزات الوقتApplicationSynchronizedTimeBaseConsumerTSyncDaemonRegisterSynchronizationStateChangeNotifier(syncNotifier)RegisterTimeLeapNotifier(leapNotifier)Use Case: حدث شبكة في الخفي (Daemon)Erkennung Statuswechsel / Leap Jumpحدث IPC: حدث حالة أو قفزةaltتغيرت حالة المزامنةsyncNotifier(SynchronizationStatus)Zeitsprung erkanntleapNotifier(SynchronizedTimeBaseStatus)

مخطط التتابع: التسجيل وتدفق الإشعارات غير المتزامنة عند تغيرات المزامنة وقفزات الوقت. المصادر: [SWS_TS_01010]، [SWS_TS_01012]، [SWS_TS_01014]، AUTOSAR_AP_EXP_SWArchitecture ص. 226

diag_sync_status init kNotSynchronizedUntilStartup kNotSynchronized UntilStartup (Initial) init->kNotSynchronizedUntilStartup kSynchronized kSynchronized (Synchron) kNotSynchronizedUntilStartup->kSynchronized أول رسالة مزامنة صالحة kTimeOut kTimeOut (Timeout) kNotSynchronizedUntilStartup->kTimeOut Startup-Timeout kSynchronized->kTimeOut Sync-Nachrichten ausgeblieben kTimeOut->kSynchronized Sync wiederhergestellt

مخطط الحالة: دورة حياة حالة مزامنة قاعدة زمنية وفقًا لـ SWS_TS_01050. المصادر: [SWS_TS_01050]، AUTOSAR_SWS_TimeSync ص. 25

توفير القواعد الزمنية وضبط التردد بواسطة الموفرين (Providers)

إذا تصرف Adaptive Application كمانح وقت نشط (Time Master) – على سبيل المثال من خلال الاتصال بمستقبل GNSS أو ساعة مرجعية خارجية – فإنه يستخدم الفئة SynchronizedTimeBaseProvider ([SWS_TS_01101]). وتتيح الواجهة التعيين الصريح لقيم وقت جديدة عبر دلالتين مختلفتين: SetTime() و UpdateTime() (EXP_SWArchitecture ص. 80).

لا يقتصر استدعاء SetTime() على إعادة تعيين قراءة الساعة الداخلية فحسب، بل يفرض الإرسال الفوري لرسائل المزامنة المحدثة على ناقل المركبة ([SWS_TS_01107]). وبخلاف ذلك، تقوم UpdateTime() بتحديث الوقت محليًا فقط في البداية؛ ويتم الإرسال على الناقل بشكل متأخر في الدورة التالية المنتظمة لبروتوكول نقل الوقت ([SWS_TS_01108]). وتستقبل كلتا الدالتين، إلى جانب الطابع الزمني، UserData مهيكلة، من أجل توزيع معلومات إضافية مصاحبة للمزامنة على نطاق الشبكة ([SWS_TS_01112]، [SWS_TS_01113]).

للضبط الدقيق لمذبذبات الكوارتز وتجنب قفزات الطور المفاجئة، تتيح SetRateCorrection() تطبيق معامل تصحيح تردد نسبي ([SWS_TS_01110]). وتوفر GetRateDeviation() بشكل مكمل انحراف التردد المطبق حاليًا ([SWS_TS_01111])، بينما تقرأ GetCurrentTime() قيمة الوقت المطلقة للساعة بشكل مستقل عن حالة المزامنة الحالية ([SWS_TS_01109]).

ضمان التكامل عبر Time Validation وإدارة قيم الحداثة (Freshness Value Management)

في بيئات القيادة الحرجة للسلامة وعالية الأتمتة، لا يكفي مجرد قبول قيم الوقت؛ بل يجب التحقق باستمرار من صحة الطوابع الزمنية ومقاومتها للتلاعب (AUTOSAR_AP_SWS_TimeSynchronization ص. 38). ولهذا الغرض توفر tsync واجهات استدعاء ارتجاعي لـ Time Validation: يسجل المستهلكون أنفسهم عبر RegisterTimeValidationNotification() ([SWS_TS_01016])، ويسجل الموفرون بالمثل عبر الطريقة المخصصة للموفر ([SWS_TS_01114]).

تمرر واجهتا التحقق ConsumerTimeBaseValidationNotification و ProviderTimeBaseValidationNotification مجموعات بيانات قياس مفصلة إلى تطبيقات مراقبة متخصصة ([SWS_TS_01300]، [SWS_TS_01301]). وعند المحطة الرئيسية (Master)، توفر SetMasterTimingData() الطابع الزمني للخروج (syncEgressTimestamp) ورقم التسلسل (sequenceId) لأطر Sync المرسلة ([SWS_TS_00421]، [SWS_TS_14141]، [SWS_TS_14142]). وعلى مستوى التابع (Slave)، تمرر SetSlaveTimingData() الطوابع الزمنية المقابلة للدخول (syncIngressTimestamp)، وحقل التصحيح المستلم (correctionField)، بالإضافة إلى تأخير المسار المقاس (pDelay) ([SWS_TS_00420]، [SWS_TS_14152]، [SWS_TS_14153]، [SWS_TS_14155]). وبالنسبة لقياسات التأخير من نظير إلى نظير (Peer-to-Peer)، توفر SetPdelayInitiatorData() و SetPdelayResponderData() بالكامل أوقات الدخول والخروج لحزم الطلب والاستجابة ([SWS_TS_00422]، [SWS_TS_00423]، [SWS_TS_14160]، [SWS_TS_14170]).

للحماية من هجمات إعادة الإرسال وتأمين رسائل الوقت المنقولة، تدمج المنصة Freshness Value Management (FVM) عبر واجهات أصلية في مساحة الاسم apext::tsync ([SWS_TS_14198]، EXP_SWArchitecture ص. 83). وعند بدء التشغيل، تقوم Initialize() بتهيئة المكون الإضافي لـ FVM المسؤول ([SWS_TS_14200]). وقبل الإرسال، يستدعي المكدس GetTxFreshness() لاسترداد قيم عداد حديثة ([SWS_TS_14199])، بينما تُستخدم GetRxFreshness() عند الاستقبال للتحقق والمصادقة ([SWS_TS_14198]). وتُنقل البيانات هنا عبر FVContainer القياسي ([SWS_TS_14195]، [SWS_TS_14196]).

تسجيل بيانات قياس التحقق من صحة الوقت ونقلهاMasterPortSlavePortMasterValidatorSlaveValidatorSync frameEgress-Zeitstempel T1 erfassenIngress-Zeitstempel T2 erfassenFollow_Up frame (preciseOriginTimestamp, correctionField)SetMasterTimingData(TimeMasterMeasurementType)SetSlaveTimingData(TimeSlaveMeasurementType)Use Case: Pdelay-MessungPdelay_ReqPdelay_Resp + Follow_UpSetPdelayInitiatorData(PdelayInitiatorMeasurementType)SetPdelayResponderData(PdelayResponderMeasurementType)

مخطط التتابع: تدفق التحقق من بيانات قياس التوقيت بين السيد والتابع وتطبيق المدقق الخارجي. المصادر: [SWS_TS_00420]، [SWS_TS_00421]، AUTOSAR_AP_SWS_TimeSynchronization ص. 38

التهيئة، وربط العمليات، ونمذجة البيان (Manifest)

يتم تخصيص الكتلة وربطها الوظيفي تعريفيًا في بيانات نماذج AUTOSAR (AUTOSAR_AP_TPS_ManifestSpecification ص. 590). وفي Machine Manifest، يتم إنشاء مثيل لعفريت (daemon) المنصة عبر عنصر النموذج الفوقي TimeSyncModuleInstantiation على Machine محددة، ويدير هناك كائنات TimeBaseResource المادية وكذلك الافتراضية (AUTOSAR_AP_TPS_ManifestSpecification ص. 590).

على مستوى التطبيق، تعلن العمليات عبر نماذج المنافذ الأولية (Port-Prototypes) (RPortPrototype للمستهلكين أو PPortPrototype للموفرين) عن حاجتها إلى القواعد الزمنية (AUTOSAR_AP_TPS_ManifestSpecification ص. 599). ويربط بناء النموذج الفوقي TimeSyncPortPrototypeToTimeBaseMapping هذه المنافذ بشكل فردي لكل عملية بالقواعد الزمنية المحددة على الآلة (TPS_ManifestSpecification ص. 599؛ AUTOSAR_AP_TPS_ManifestSpecification ص. 600). وفي وقت التشغيل، يتم إنشاء المثيل في الكود عبر ara::core::InstanceSpecifier الآمن النوع، وبذلك يربط المكدس القاعدة الزمنية المهيأة الصحيحة ([SWS_TS_01001]، [SWS_TS_01101]).

التصرف في حالة الخطأ

يتم الإشارة إلى حالات الخطأ في كتلة Time Synchronization عبر نموذج الخطأ القياسي لـ Adaptive Platform (ara::core::Result و ara::core::ErrorCode) ([SWS_TS_00910]). ولعمليات القاعدة الزمنية المنتظمة، يحدد التعداد TsyncErrc رموز الخطأ ([SWS_TS_00901]). فإذا انقطع الاتصال بين العمليات مع عفريت (daemon) المنصة على سبيل المثال، يُرجع رمز الخطأ kDaemonConnectionLost ([SWS_TS_00901]).

عبر مجال الخطأ العام TsyncErrorDomain، يمكن فحص رموز الخطأ ([SWS_TS_00905]، [SWS_TS_00906]، [SWS_TS_00907]) أو، عند تفعيل استثناءات C++، طرحها عبر ThrowAsException() كـ TsyncException ([SWS_TS_00903]، [SWS_TS_00908]، [SWS_TS_00909]). وبالنسبة لـ Freshness Value Management، يوجد مجال خطأ مستقل TsyncFvmErrorDomain مع التعداد TsyncFvmErrc ([SWS_TS_14201]، [SWS_TS_14202]). وإذا فشلت التهيئة، تُرجع Initialize() الخطأ kFVInitializeFailed ([SWS_TS_14200])، بينما يتم الإبلاغ عن kFVNotAvailable في حال عدم توفر عدادات لفحوصات المصادقة ([SWS_TS_14202]).

على المستوى الوظيفي، لا تشير الكتلة بالضرورة إلى فقدان رسائل الوقت عبر أخطاء API متزامنة، بل تُعلم القاعدة الزمنية في كائن الحالة بحالة الاتصال kTimeOut ([SWS_TS_01050]) أو تضبط البت المقابل في timeBaseStatus ([SWS_TS_01403]). تفسير: من المحتمل بالتالي أن يكون التطبيق ملزمًا دائمًا بالتحقق النشط من حالة صلاحية اللقطة بعد GetTimeWithStatus()، قبل استخدام قيم القياس لحلقات التحكم الحرجة للسلامة. سؤال Q-0cd9bb48452ae3db (مفتوح)

أدلة تفصيلية إضافية

يمكن تصنيف المتطلبات الأساسية ونقاط المواصفات للوحدة tsync ضمن المحاور الرئيسية التالية:

تم إنشاء دليل الوحدة هذا آليًا استنادًا إلى مواصفة AUTOSAR Adaptive R25-11.

function: 70 variable: 37 type alias: 12 class: 10 struct: 8 enumeration: 4

apext::tsync

A freshness value container to hold the length of freshness value in bits and the freshness value itself as vector.

FVM فئة

A freshness value management interface for ara::tsync.

Defines a class representing the Freshness Value Manager error domain.

يرث من ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the Freshness Value Manager.

يرث من ara::core::Exception

Returns a reference to the global apext::tsync::TsyncFvmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetTsyncFvmErrorDomain () noexcept;
MakeErrorCode دالة

Creates an instance of ara::core::ErrorCode.

constexpr ara::core::ErrorCode MakeErrorCode (TsyncFvmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
TsyncFvmErrc تعداد

The enumeration class defines the error codes for the apext::tsync:: TsyncFvmErrorDomain.

enum class TsyncFvmErrc : ara::core::ErrorDomain::CodeType {...};

ara::tsync

Callback interface to notify Consumer Application about the availability of a new data block recorded for the Time Base

Structure with detailed timing data for the pDelay Initiator .

Structure with detailed timing data for the pDelay Responder .

Callback interface to notify (Validator) Application about the availability of a new data block recorded for the Time Base

Class SynchronizedTimeBaseConsumer is the access to the synchronized timebase referenced by the InstanceSpecifier

Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier

This class represents a snapshot of a time point including his states

TimeBase فئة

The class TimeBase is a pseudo-clock

Structure with detailed data for validation of the Time Master .

Structure with detailed data for precision measurement of the Time Slave .

Structure with detailed data for validation of the Time Slave .

Defines a class representing the Time Synchronization error domain.

يرث من ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the Time Synchronization.

يرث من ara::core::Exception

UserData فئة

Structure to define user data

Returns a reference to the global TsyncErrorDomain object.

const ara::core::ErrorDomain & GetTsyncErrorDomain () noexcept;

Creates an instance of ErrorCode.

LeapJump تعداد

Enumeration that is used to express the leap jump of a time base. .

enum class LeapJump : std::uint32_t {...};

Enumeration that is used to express the communication state of a time base. .

enum class SynchronizationStatus : std::uint32_t {...};
TsyncErrc تعداد

Defines an enumeration class for the Time Synchronization error codes.

enum class TsyncErrc : ara::core::ErrorDomain::CodeType {...};
SynchronizationNotifier اسم نوع بديل

Notifier function .

using SynchronizationNotifier = std::function<void(const SynchronizationStatus&)>;
SynchronizedTimeBaseNotifier اسم نوع بديل

Notifier function .

using SynchronizedTimeBaseNotifier = std::function<void(const SynchronizedTimeBaseStatus&)>;
TimePrecisionNotifier اسم نوع بديل

Notifier function .

using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;
Timestamp اسم نوع بديل

Standard timestamp type as alias of a generic time_point .

نطاقات الأسماء

مخطط الفئات UML للوحدة

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 apext::tsync cluster_2 ara::tsync napext__tsync__FVContainer955 «struct» FVContainer napext__tsync__FVM697 FVM napext__tsync__TsyncFvmErrorDomain111 TsyncFvmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain napext__tsync__TsyncFvmErrorDomain111->nara__core__ErrorDomain335 napext__tsync__TsyncFvmException780 TsyncFvmException nara__core__Exception792 ara::core::Exception napext__tsync__TsyncFvmException780->nara__core__Exception792 nara__tsync__ConsumerTimeBaseValidationNotification118 ConsumerTimeBaseValidationNotification nara__tsync__PdelayInitiatorMeasurementType279 «struct» PdelayInitiatorMeasurementType nara__tsync__PdelayResponderMeasurementType5 «struct» PdelayResponderMeasurementType nara__tsync__ProviderTimeBaseValidationNotification786 ProviderTimeBaseValidationNotification nara__tsync__SynchronizedTimeBaseConsumer483 SynchronizedTimeBaseConsumer nara__tsync__SynchronizedTimeBaseProvider954 SynchronizedTimeBaseProvider nara__tsync__SynchronizedTimeBaseStatus758 SynchronizedTimeBaseStatus nara__tsync__TimeBase940 «struct» TimeBase nara__tsync__TimeMasterMeasurementType777 «struct» TimeMasterMeasurementType nara__tsync__TimePrecisionMeasurement344 «struct» TimePrecisionMeasurement nara__tsync__TimeSlaveMeasurementType161 «struct» TimeSlaveMeasurementType nara__tsync__TsyncErrorDomain367 TsyncErrorDomain nara__tsync__TsyncErrorDomain367->nara__core__ErrorDomain335 nara__tsync__TsyncException184 TsyncException nara__tsync__TsyncException184->nara__core__Exception792 nara__tsync__UserData398 «struct» UserData