DEENESPTFRRUARHIKOZHNL

فئة apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler

[SWS_DM_01064] Upstream: RS_Diag_04215

class UdsTransportProtocolPeriodicHandler {...};

UdsTransportProtocolPeriodicHandler class to support 0x2A service from ISO.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopenamespace apext::diag::uds_transport

دليل المستخدممولَّد بالذكاء الاصطناعي

يتيح النقل الدوري لرسائل تشخيص UDS لدعم الخدمة 0x2A.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: fabfa1b95261 المصدر أسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يتيح النقل الدوري لرسائل تشخيص UDS لدعم الخدمة 0x2A.

توفر الفئة apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler واجهة افتراضية بحتة لتنفيذ خدمة UDS الدورية 0x2A عبر قنوات تشخيص خاصة بالنقل ([SWS_DM_01064]). وهي تسمح لإدارة التشخيص بتحديد الحدود القصوى للحمولة والكميات الخاصة بالقناة بالإضافة إلى النقل المنظم لعدة رسائل UDS باستخدام PeriodicTransmit ([SWS_DM_01067]). وإذا فشل إرسال رسالة ما، يتم إلغاء العملية والإبلاغ عن الحالة عبر دالة تأكيد. ونظرًا لأن جميع الطرق محددة على أنها غير آمنة للمسارات، يجب مزامنة عمليات الوصول المتزامنة بواسطة المستدعي.

السياق

تمثل الفئة الافتراضية البحتة apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler الواجهة القياسية لدعم القراءة الدورية لبيانات التشخيص وفقًا لخدمة UDS 0x2A ([SWS_DM_01064]، AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler»). وفي نظام التشخيص الخاص بـ AUTOSAR Adaptive Platform، تفصل الفئة إدارة التشخيص العليا عن التنفيذ الفعلي لبروتوكول النقل والشبكة. بينما تقوم إدارة التشخيص بتقييم الطلبات الواردة لعمليات النقل الدورية وتجميع حزم البيانات المقابلة، يتولى المعالج النقل الفعلي لهذه الرسائل الدورية عبر اتصال ملموس ([SWS_DM_01067]). وتعمل كل من إدارة التشخيص على جانب المستدعي وقناة الاتصال المعنية، والتي يتم تحديدها عبر ChannelID فريد، كأطراف تفاعل ([SWS_DM_01065]، [SWS_DM_01066]).

diag_periodic_kontext diag_server Diagnose-Server (UDS 0x2A) handler UdsTransportProtocolPeriodicHandler diag_server->handler استعلام السعة وأمر الإرسال handler->diag_server PeriodicTransmit Confirmation transport Transportschicht (ChannelID) handler->transport Periodische Nachrichten

مخطط سياقي: دمج UdsTransportProtocolPeriodicHandler بين خادم التشخيص وطبقة النقل. المصادر: [SWS_DM_01064]، [SWS_DM_01067]، AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler».

دورة الحياة

نظراً لأن UdsTransportProtocolPeriodicHandler مُعرَّفة كواجهة أساسية مجردة ذات دوال افتراضية صرفة، فلا يمكن إنشاء مثيل لها مباشرةً ([SWS_DM_01064]). ويُرجَّح أن يتم إنشاء مثيلات المعالج الملموسة عبر مكونات برامج تشغيل خاصة ببروتوكول النقل (على سبيل المثال، للبروتوكولات المستندة إلى DoIP أو CAN). سؤال Q-d0b3bf3b0c14dcf6 (مفتوح) وتكون دورة حياة المثيل مرتبطة عادةً بتوافر حزمة بروتوكول النقل المعنية. ولتحقيق تدمير متعدد الأشكال نظيف عند إنهاء حزمة الاتصال، توفر الفئة مدمراً افتراضياً ~UdsTransportProtocolPeriodicHandler() ([SWS_DM_02089]، AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 «Destructor»).

فيما يتعلق بالتزامن، تم تحديد جميع الدوال الأعضاء في الفئة صراحةً بأنها غير آمنة خيطياً (not thread-safe) ([SWS_DM_01065]، [SWS_DM_01066]، [SWS_DM_01067]، [SWS_DM_02089]). لذلك، في حال الوصول المتوازي عبر خيوط متعددة أو الطلبات المتزامنة عبر نفس ChannelID، يجب على الجهات المستدعية مزامنة عمليات الوصول على مسؤوليتها الخاصة.

مسار الاستخدام

ينقسم التسلسل النموذجي لتنفيذ عمليات نقل الرسائل الدورية للخدمة 0x2A إلى الخطوات التالية:

  • تحديد أقصى طول لبيانات الحمولة: تستدعي إدارة التشخيص GetMaxPayloadLength(channelId) للتحقق من أقصى طول لبيانات الحمولة مدعوم على الاتصال المحدد لعملية نقل دورية مفردة ([SWS_DM_01066]، AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.1 «GetMaxPayloadLength»).
  • الاستعلام عن سعة الرسائل: يتم الاستعلام عن عدد الرسائل الدورية الممكنة والخاص ببروتوكول النقل والاتصال عبر GetNumberOfPeriodicMessages(channelId) ([SWS_DM_01065]، AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.2 «GetNumberOfPeriodicMessages»).
  • تنفيذ النقل الدوري: تُمرر إدارة التشخيص قائمة مرتبة من الرسائل في ara::core::Vector<UdsMessageConstPtr> إلى الدالة PeriodicTransmit(channelId, messages) ([SWS_DM_01067]، AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.3 «PeriodicTransmit»). وينقل المعالج الرسائل المتضمنة بالترتيب المحدد مسبقاً.
  • التأكيد: تُشير طبقة النقل إلى نتيجة عملية الإرسال عبر استدعاء PeriodicTransmit Confirmation، والذي يُرجع عدد الرسائل المنقولة بنجاح والمتجه الأصلي ([SWS_DM_01067]).
الإرسال الدوري عبر UdsTransportProtocolPeriodicHandlerDiagnose-Server (0x2A)UdsTransportProtocolPeriodicHandlerTransportschicht / KanalUse Case: Kanalparameter ermittelnGetMaxPayloadLength(channelId)maxPayloadLengthGetNumberOfPeriodicMessages(channelId)numberOfPeriodicMessagesUse Case: Periodischer SendevorgangPeriodicTransmit(channelId, messages)loopلكل رسالة في messagesإرسال الرسالةaltحدث خطأ في الإرسالSendeprozess stoppenPeriodicTransmit Confirmation(anzahlGesendet, messages)نجحت جميع الرسائلPeriodicTransmit Confirmation(gesamtAnzahl, messages)

مخطط تسلسلي: التسلسل النموذجي للاستعلام عن السعة، والإرسال الدوري، والتأكيد. المصادر: [SWS_DM_01065]، [SWS_DM_01066]، [SWS_DM_01067].

سيناريوهات الأخطاء

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

تم تحديد جميع دوال الواجهة كـ noexcept وآمنة ضد الاستثناءات (exception safe) ([SWS_DM_01065]، [SWS_DM_01066]، [SWS_DM_01067]، [SWS_DM_02089]). ولا تؤدي حالات الخطأ أثناء النقل إلى استثناءات C++‎، بل يتم الإبلاغ عنها بشكل حتمي عبر آلية التأكيد المحددة.

يستند دليل الفئة هذا إلى مواصفة AUTOSAR Adaptive Platform الإصدار R25-11 وتم إنشاؤه تلقائياً.

خريطة الأعضاء

مخطط الفئة

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G napext__diag__uds_transport__UdsTransportProtocolPeriodicHandler54 UdsTransportProtocolPeriodicHandler + ~UdsTransportProtocolPeriodicHandler() + GetMaxPayloadLength() + GetNumberOfPeriodicMessages() + PeriodicTransmit()

عرض التفاصيل

اختر عنصرًا من المخطط.

المُنشئات والمُتلف

الدوال الأعضاء

Reports the maximum payload length supported for a single periodic transmission on the channel.

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;

Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

توثيق الدوال

دالة GetMaxPayloadLength [SWS_DM_01066] Upstream: RS_Diag_04215

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the maximum payload length supported for a single periodic transmission on the channel.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection for which the maximum payload length is reported.

Rückgabewert

TypBeschreibung
std::size_tSupported payload length

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01066
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01066@rel:R25-11#7033d0ed
Content hash
7033d0ed
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01066
Status: valid/unmigrated Version: rel:R25-11#cac9e976 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01066@rel:R25-11#cac9e976
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#1dc32cc82026-09-30
  • R20-11rel:R20-11#28bcd8642026-10-14
  • R21-11rel:R21-11#a933cb442026-10-14
  • R22-11rel:R22-11#7020a1832026-10-14
  • R23-11rel:R23-11#68f8be1a2026-10-14
  • R24-11rel:R24-11#22ba880f2026-10-14
  • R25-11rel:R25-11#cac9e9762026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

دالة GetNumberOfPeriodicMessages [SWS_DM_01065] Upstream: RS_Diag_04215

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over.

Rückgabewert

TypBeschreibung
std::size_tNumber of periodic messages.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01065@rel:R25-11#a87166e3
Content hash
a87166e3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01065
Status: valid/unmigrated Version: rel:R25-11#4725f9e5 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01065@rel:R25-11#4725f9e5
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f28623fc2026-09-30
  • R20-11rel:R20-11#bdc723c72026-10-14
  • R21-11rel:R21-11#bdc723c72026-10-14
  • R22-11rel:R22-11#81d54d3a2026-10-14
  • R23-11rel:R23-11#2c2c83b92026-10-14
  • R24-11rel:R24-11#1dee77bf2026-10-14
  • R25-11rel:R25-11#4725f9e52026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

دالة PeriodicTransmit [SWS_DM_01067] Upstream: RS_Diag_04215

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ceb97c8b447f المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الطريقة الافتراضية الصرفة PeriodicTransmit من الواجهة apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler لإرسال رسائل UDS الدورية بشكل مجمع عبر اتصال نقل قائم [SWS_DM_01067]. ويتم استدعاؤها عادةً بواسطة Diagnostic Management (DM) كجزء من النقل الدوري وفقاً للمجدول من النوع 1 بحسب المعيار ISO 14229-1، حيث يتم إطلاق معرّفات البيانات الدورية (PDIDs) المهيأة بشكل دوري AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission [SWS_DM_01060].

المعلمات والدلالات

  • channelId: معرّف قناة الاتصال المحددة التي يتم النقل عبرها [SWS_DM_01067].
  • messages: قائمة مرتبة (ara::core::Vector<UdsMessageConstPtr>) لجميع الرسائل المراد نقلها تباعاً ومباشرةً [SWS_DM_01067].

لا تعيد الدالة أي قيمة إرجاع وتضمن أمان الاستثناءات المصرح عنه كـ noexcept [SWS_DM_01067]. وتتم معالجة الرسائل بدقة وفقاً للترتيب الممرر.

معالجة الأخطاء والتأكيد

إذا فشل إرسال رسالة فردية، يتم إلغاء عملية الإرسال بأكملها على الفور [SWS_DM_01067]. للإبلاغ عن النتيجة، يتم استدعاء دالة التأكيد PeriodicTransmitConfirmation الخاصة بـ UdsTransportProtocolMgr [SWS_DM_01069]. يمرر رد الاتصال هذا عدد الرسائل التي تم نقلها بنجاح بالإضافة إلى متجه الرسائل الأصلي نفسه [SWS_DM_01067].

التزامن

تم تحديد الطريقة على أنها not thread-safe [SWS_DM_01067]. ويجب مزامنة الاستدعاءات المتوازية على نفس المثيل من جهة المستدعي.

تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR Adaptive R25-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over
messagesOrdered list of messages to send at once

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01067
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01067@rel:R25-11#d84063c8
Content hash
d84063c8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01067
Status: valid/unmigrated Version: rel:R25-11#59bd4882 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01067@rel:R25-11#59bd4882
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f35c930a2026-09-30
  • R20-11rel:R20-11#6586083c2026-10-14
  • R21-11rel:R21-11#5d391bcd2026-10-14
  • R22-11rel:R22-11#3723eafa2026-10-14
  • R23-11rel:R23-11#eb3e5ef12026-10-14
  • R24-11rel:R24-11#9533d1602026-10-14
  • R25-11rel:R25-11#59bd48822026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

دالة ~UdsTransportProtocolPeriodicHandler [SWS_DM_02089] Upstream: RS_Diag_04215

virtual ~UdsTransportProtocolPeriodicHandler () noexcept;

Destructor.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_02089
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02089@rel:R25-11#5ec4528a
Content hash
5ec4528a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02089
Status: valid/unmigrated Version: rel:R25-11#d455b1a3 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_02089@rel:R25-11#d455b1a3
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#a6cfcd7a2026-09-30
  • R24-11rel:R24-11#b5a34f3b2026-10-14
  • R25-11rel:R25-11#d455b1a32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill