Serves as a generic interface for application-side reading and writing of SOVD diagnostic data.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e0fb00ce3377ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Serves as a generic interface for application-side reading and writing of SOVD diagnostic data.
The class ara::diag::GenericDiagnosticSovdContent provides a generic interface for adaptive applications to connect SOVD resources in the AUTOSAR system [SWS_DM_02186]. After instantiation, the application activates the reception of diagnostic requests via Offer(), whereupon Diagnostic Management forwards incoming read and write accesses asynchronously to Read() and Write()[SWS_DM_02193]. Before termination, provisioning must be deactivated via StopOffer(), while ongoing accesses must respect the passed cancellation handler.
Context
The class ara::diag::GenericDiagnosticSovdContent provides the generic programming interface via which adaptive applications offer and process data resources for service-oriented vehicle diagnostics (SOVD) in accordance with ASAM SOVD [SWS_DM_02186]. In a typical diagnostic scenario, three main components are involved: the external SOVD client, Diagnostic Management (DM), and the application-specific handler of the adaptive application.
SOVD data is structured via DiagnosticSovdContent, which consists of one or more elements of type DiagnosticSovdContentElementSWS Diagnostics §7.3.3.3 “Definition of SOVD data”. The DM relies on the interface ara::diag::GenericDiagnosticSovdContent to execute read or write requests for the entire contents while applying the specified data conversion rules SWS Diagnostics §7.3.3.3 “Definition of SOVD data”.
Context diagram: Embedding of GenericDiagnosticSovdContent between external SOVD client, Diagnostic Management, and application-specific handler. Sources: [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
Lifecycle
Instantiation is performed via the constructor by specifying a ara::core::InstanceSpecifier that references a PortPrototype of a DiagnosticDataIdentifierGenericInterface, as well as a concurrency mode of type SovdContentConcurrencyType[SWS_DM_02187]. The class is designed to be thread-safe and exception-safe [SWS_DM_02187].
Move constructor and move assignment operator are defined with protected visibility (protected) [SWS_DM_02189], [SWS_DM_02190]. Interpretation: The protected declaration indicates that instances are implemented as derived class hierarchies and that direct moving from the outside is intended to be prevented. Question Q-57d60744ffc54899 (open) A virtual destructor exists for destruction [SWS_DM_02188].
After construction, the instance is in the unoffered state. Only by calling Offer() is the DM authorized to forward incoming diagnostic requests to the instance [SWS_DM_02193]. Prior to shutdown or at service termination, forwarding is revoked again via StopOffer()[SWS_DM_02194].
Usage Path
The regular flow comprises offering the service, receiving asynchronous requests, and final deregistration:
The application instantiates its implementation of GenericDiagnosticSovdContent and registers with the DM via Offer()[SWS_DM_02193].
When the DM receives a read request from the client ("Read a data resource from an Entity"), it calls the method Read()[SWS_DM_01432], [SWS_DM_02191]. The method returns a ara::core::Future<DiagnosticSovdContentData>, which provides either the abstract content data or an SOVD error [SWS_DM_02191]. From this data, the DM constructs the SOVD response [SWS_DM_01432], [SWS_DM_02164], [SWS_DM_02165].
When the DM receives a write request ("Write a data resource from an Entity"), it delegates it via Write() to the handler [SWS_DM_01431], [SWS_DM_02166], [SWS_DM_02192]. The data remains valid until the associated promise is fulfilled or the operation is cancelled [SWS_DM_02192].
To terminate handling, the application calls StopOffer()[SWS_DM_02194].
Sequence diagram: Flow of service registration, asynchronous read retrieval, and service termination. Sources: [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
Error Scenarios
If Offer() is called even though the service is already offered, the operation fails with the error code DiagOfferErrc::kAlreadyOffered[SWS_DM_02193].
If application-specific errors occur during data determination in Read() or during writing in Write(), the returned ara::core::Future is fulfilled with a corresponding SOVD error [SWS_DM_02191], [SWS_DM_02192], whereupon the DM transmits a negative SOVD response to the client.
In addition, both calls are passed a ara::diag::CancellationHandler that signals if the operation is cancelled prematurely [SWS_DM_02191], [SWS_DM_02192]. This handler must neither be stored nor called beyond the lifetime of the operation [SWS_DM_02191], [SWS_DM_02192].
This guide is based exclusively on the specifications of the AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5a32b6fc61beProvenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
use
The method ara::diag::GenericDiagnosticSovdContent::Offer enables Diagnostic Management (DM) to forward incoming request messages to the handler instance [SWS_DM_02193]. The invocation is synchronous, takes no parameters, and signals the result via the return type ara::core::Result<void>[SWS_DM_02193]. A positive result confirms the successful registration of the service with the DM [SWS_DM_02193].
Error handling
If the registration fails, the method returns an ara::core::Result with an error code [SWS_DM_02193]:
DiagOfferErrc::kAlreadyOffered: Occurs when the service was already offered previously; in this case, rollback semantics take effect [SWS_DM_02193]. This error code corresponds to the general diagnostic status kAlreadyOffered in DiagErrc[SWS_DM_00514] as well as DiagReportingErrc[SWS_DM_00560].
Concurrency and Limitations
The function is specified as noexcept and exception safe[SWS_DM_02193]. Furthermore, it is explicitly classified as thread-safe[SWS_DM_02193]. This significantly distinguishes GenericDiagnosticSovdContent::Offer from most other Offer methods of the DM such as GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619], or CommunicationControl::Offer[SWS_DM_00809], each of which is declared as not thread-safe.
Interaction
Offering via Offer is the necessary prerequisite for the DM to be able to forward requests to the application [SWS_DM_02193]. As long as it has not been offered, the DM cannot serve any requests to the interface, which corresponds to the general offering principle in AUTOSAR Diagnostic Management [SWS_DM_01525], [SWS_DM_01527]. The naming follows the established pattern in the DM chosen analogously to the monitor services AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
This usage note is based on the specification AUTOSAR Adaptive Platform Release R25-11.
Called for "Read Single Data Value request" for the specified SOVD Content.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e27f0077c84cProvenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Usage and invocation semantics
The pure virtual method Read of class ara::diag::GenericDiagnosticSovdContent serves to process requests of type "Read Single Data Value" for the specified SOVD content [SWS_DM_02191]. When invoked by the Diagnostic Manager, the content identifier sovd_content_name, contextual diagnostic information via meta_info, and an cancellation_handler are passed [SWS_DM_02191]. Via the cancellation_handler, the application can check whether the ongoing request was canceled; this instance must not be stored or referenced beyond the lifetime of the operation [SWS_DM_02191]. The data is provided asynchronously via the return value ara::core::Future<DiagnosticSovdContentData>, which in the success case encapsulates the abstract SOVD content data [SWS_DM_02191].
Error handling
The method is specified as noexcept and exception safe, so that occurring errors must not be reported via C++ exceptions [SWS_DM_02191]. Instead, in case of an error, a corresponding SOVD Error is returned via the ara::core::Future, which is translated into a negative response message [SWS_DM_02191]. If the interface is not yet or no longer offered by the application using offer(), the Diagnostic Manager responds to incoming service requests with the negative response code NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257].
Concurrency and Interaction
The interface function is defined as thread-safe[SWS_DM_02191]. Whether read and write accesses may be invoked concurrently by the Diagnostic Manager is determined via the configuration variable readWrite in the structure ara::diag::SovdContentConcurrencyType[SWS_DM_02185]. Only if this is set to kConcurrent do calls to Read and Write occur concurrently, whereas the default value kNotConcurrent precludes concurrent accesses [SWS_DM_02185].
This text was generated by an AI based on the AUTOSAR specification R25-11.
This StopOffer will disable the forwarding of request messages from DM.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a2e6fc88edb0ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
The method ara::diag::GenericDiagnosticSovdContent::StopOffer terminates offering the diagnostic content to Diagnostic Management (DM) and prevents the forwarding of incoming request messages from the time of invocation [SWS_DM_02194]. The function requires the header file ara/diag/generic_diagnostic_sovd_content.h, expects no parameters, and returns no value [SWS_DM_02194].
Regarding error handling, the operation is declared as noexcept and is considered completely exception-safe (exception safe) [SWS_DM_02194]. Neither error codes nor return statuses are transmitted; a failure of the call is not provided for in the API design.
In the area of concurrency, the method is distinguished by being explicitly specified as thread-safe (thread-safe) [SWS_DM_02194]. This represents a significant peculiarity compared to many other diagnostic interfaces in which StopOffer is defined as not thread-safe, such as in GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558], or CommunicationControl[SWS_DM_00810].
The naming and behavioral scheme follows the general AUTOSAR pattern for offer and StopOffer mechanisms to control message flow between DM and application handlers AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. Interpretation: The invocation is typically likely to occur before destroying the handler object or during temporary unavailability of the SOVD service in order to reliably prevent orphaned requests. Question Q-5a2db04b82fed06b (open)
This usage note was generated automatically based on the AUTOSAR Adaptive R25-11 specification.
Called for "Write a Data Value" request for the specified SOVD Content.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 545b938dce05Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
The method [SWS_DM_02192] of class ara::diag::GenericDiagnosticSovdContent is called by Diagnostic Management (DM) as soon as the method "Write a data resource" is received for a diagnostic element via ASAM SOVD [SWS_DM_02166]. Offering this write operation is optional and requires the presence of configuration DiagnosticSovdData.DiagnosticSovdMethod.put[SWS_DM_01431].
Upon invocation, the DM passes the following parameters [SWS_DM_02192]:
sovd_content_name: Name of the addressed SOVD content.
sovd_abstract_content_data: The abstract payload (DiagnosticSovdContentData), composed of element name and converted value [SWS_DM_02166]. This data remains valid until the promise is fulfilled or processing is canceled via the cancellation handler.
meta_info: Additional meta-information regarding the context of the request.
cancellation_handler: Serves to detect a cancellation of the ongoing operation and must not be stored or referenced beyond the lifetime of the function.
The function is specified as noexcept, is considered exception-safe, and returns an ara::core::Future<void>, which in the success case transports void or, upon negative feedback, an SOVD error [SWS_DM_02192]. The method is declared as thread-safe [SWS_DM_02192]; whether the DM may execute read and write methods concurrently is governed by the parameter readWrite in ara::diag::SovdContentConcurrencyType[SWS_DM_02185].
This text was generated by an AI based on the AUTOSAR specification R25-11.
gemini-3.8-flash-low· 2026-10-13 · German original