Serves to transmit and manage the state of a DoIP activation line to the Diagnostic Manager.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: f91d71d289e3ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Serves to transmit and manage the state of a DoIP activation line to the Diagnostic Manager.
The class ara::diag::DoIPActivationLine enables an application to provide the state of a DoIP activation line and to transmit changes to the Diagnostic Manager [SWS_DM_00830]. After port-based instantiation, the service is activated by means of Offer(), whereupon the DM queries line status and network ID and receives status changes via UpdateActivationLineState()[SWS_DM_00834]. As a central constraint, the associated network interface must be configured in the model as activation-line dependent [SWS_DM_00833].
Context
The class ara::diag::DoIPActivationLine represents the interface DiagnosticDoIPActivationLineInterface according to [SWS_DM_00830]. It enables an Adaptive Application (AA) to report and provide the physical or logical state of a DoIP activation line to the Diagnostic Manager (DM). Via this activation line, an application indirectly controls the transmission of DoIP Vehicle Announcement Messages, as specified in AUTOSAR_AP_SWS_Diagnostics, p. 107, without explicitly triggering the transmission itself.
Essentially three components participate in the interaction: the implementing Adaptive Application, the instance of ara::diag::DoIPActivationLine as a service interface, and the Diagnostic Manager of the base system. If the DM detects a state change of the activation line via this interface, it notifies dependent network interfaces and initiates standardized DoIP workflows [SWS_DM_00816].
An instance of ara::diag::DoIPActivationLine is created via an ara::core::InstanceSpecifier that references an PortPrototype[SWS_DM_00831]. The class models a unique instance: Copy and move constructors as well as copy and move assignment operators are deleted (=delete), which precludes moving or duplicating ([SWS_DM_01631], [SWS_DM_01632], [SWS_DM_01633], [SWS_DM_01634]).
After instantiation, the object is in the “not offered” state. Calling Offer() activates the provisioning so that the DM can listen for state changes of the activation line [SWS_DM_00836]. By means of StopOffer(), this provisioning is deactivated again [SWS_DM_00837]. The virtual destructor is declared as default destructor and releases resources [SWS_DM_00832]. Regarding concurrency, the constructor [SWS_DM_00831] as well as the pure read queries GetActivationLineState()[SWS_DM_00835] and GetNetworkInterfaceId()[SWS_DM_00833] are implemented thread-safely, while Offer()[SWS_DM_00836], StopOffer()[SWS_DM_00837], and UpdateActivationLineState()[SWS_DM_00834] are not thread-safe.
Usage Path
The regular flow comprises deriving and registering an application-specific class as well as continuous state transmission:
Instantiation: The Adaptive Application instantiates the derived class specifying the matching InstanceSpecifier[SWS_DM_00831].
Offer service: The application calls Offer() to make the interface available to the DM [SWS_DM_00836].
Network and initial query: Via the pure virtual method GetNetworkInterfaceId(), the DM determines the associated interface ID [SWS_DM_00833] and queries the current line state using GetActivationLineState()[SWS_DM_00835]. Both methods return a ara::core::Future.
State update: If the physical state of the line changes (e.g., level change on a hardware line), the application informs the DM synchronously via UpdateActivationLineState()[SWS_DM_00834]. This prompts the DM to perform follow-up actions such as state notifications to network interfaces [SWS_DM_00816].
Termination: Before shutdown or upon deactivation, the application calls StopOffer()[SWS_DM_00837].
When using ara::diag::DoIPActivationLine, functional and configuration errors can occur:
Model and port violations during creation: The constructor checks the validity of the InstanceSpecifier[SWS_DM_00831]. If resolution fails, standardized violation messages are triggered: InstanceSpecifierMappingIntegrityViolation (invalid model element), PortInterfaceMappingViolation (port not typed by DiagnosticDoIPActivationLineInterface), ProcessMappingViolation (missing process reference), or InstanceSpecifierAlreadyInUseViolation (specifier already assigned within the process).
Multiple offering: If Offer() is called while the service is already being offered, the operation fails with error code DiagOfferErrc::kAlreadyOffered[SWS_DM_00836].
Configuration inconsistency of the network interface: If the application reports an interface ID via GetNetworkInterfaceId() whose associated DoIpNetworkConfiguration has the property isActivationLineDependent = 'FALSE', this is explicitly considered a severe configuration error according to the specification [SWS_DM_00833].
Exception safety: While the constructor, the getters, Offer(), StopOffer(), and the destructor are specified as exception safe, UpdateActivationLineState() is explicitly designated as not exception safe [SWS_DM_00834]. Errors within this call must therefore be handled carefully by the calling application.
This guide relies exclusively on the specification requirements from AUTOSAR AP Release R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPActivationLineInterface
Request a governed re-review of this record. The record is not changed immediately.
network interface id for which this activation line is responsible.
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Hinweise: If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property isActivationLineDependent = ’FALSE’, this is an error!
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to listen to activation line state changes.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 3534ff4305bfProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
The synchronous method Offer of class ara::diag::DoIPActivationLine ([SWS_DM_00836], header file #include "ara/diag/doip_activationline.h") enables Diagnostic Management (DM) to detect state changes of the activation line. The operation has no input parameters and reports the result via the return type ara::core::Result<void>.
As soon as the interface has been provided by means of Offer, the DM monitors the activation line. If the DM detects a transition to the state "active", it causes vehicle announcement messages (Vehicle Announcement Messages) to be sent according to ISO 13400-2 on the network interfaces concerned ([SWS_DM_00816], AUTOSAR_AP_SWS_Diagnostics §[SWS_DM_00816] p. 106). Interpretation: The call to Offer is likely to occur typically during the initialization phase of the application so that state changes are detected early. Question Q-254ced2fd3a1e3d2 (open)
In case of an error, a corresponding error code is returned in the Result. If the method is called repeatedly for the same instance while the service is already offered, it returns the error code DiagOfferErrc::kAlreadyOffered with rollback semantics ([SWS_DM_00836]).
Regarding concurrency, the method is specified as not thread-safe (not thread-safe) ([SWS_DM_00836]). Simultaneous calls on the same instance must therefore be synchronized on the application side. By being declared as noexcept, the function is completely exception-safe ([SWS_DM_00836]).
This usage note is based on the specification AUTOSAR Adaptive Platform Release R25-11.
This StopOffer will disable the provision of activation line state to DM.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 668b8f5f37f2ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Method ara::diag::DoIPActivationLine::StopOffer terminates the provision of the DoIP activation line (Activation Line) state to Diagnostic Management (DM) in accordance with [SWS_DM_00837].
The function has the signature void StopOffer() noexcept and is executed synchronously on an instance of ara::diag::DoIPActivationLine (AUTOSAR_AP_SWS_Diagnostics §5 “Overview”). It takes no parameters and returns no return value. By calling it, the active transmission of state changes of the activation line to the Diagnostic Manager is disabled.
With regard to error handling, the method is specified as exception safe and guarantees via noexcept that no exceptions are thrown ([SWS_DM_00837]). Because the operation is not thread-safe according to the specification, calls on the same instance must not occur concurrently from multiple threads without protection; parallel accesses mandatorily require synchronization on the application side.
The design pattern follows the nomenclature established in the Adaptive Platform for service provision (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). While StopOffer disables the forwarding of incoming DM requests for related DoIP classes such as ara::diag::DoIPGroupIdentification ([SWS_DM_00726]) or ara::diag::DoIPPowerMode ([SWS_DM_00736]), here it specifically stops reporting the activation line state to the DM. Interpretation: For consistent operational flow, it is likely assumed that provision via the same instance has already been actively initiated prior to calling StopOffer. Question Q-c5d38151ef8198e7 (open)
This usage note was generated by an AI based on the AUTOSAR R25-11 specification.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: becd58166c09ProvenanceOpen questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Method UpdateActivationLineState of class ara::diag::DoIPActivationLine serves to transmit the current status of the DoIP activation line to the adaptive Diagnostic Management [SWS_DM_00834] (AUTOSAR_AP_SWS_Diagnostics §8.32.1.1.3.5). The declaration is provided via header file ara/diag/doip_activationline.h.
Usage and parameters:
Parameters: The boolean input parameter activation_line_state signals to the system whether the activation line is active (TRUE) or inactive (FALSE) [SWS_DM_00834].
Return value: The operation has no return value (void) and operates synchronously.
Concurrency and limitations:
Thread safety: The function is explicitly specified as not thread-safe[SWS_DM_00834]. Interpretation: Calls to the same instance of DoIPActivationLine must be synchronized by the calling application to avoid data conflicts. Question Q-d1c43b8ffc4bdcff (open)
Error handling: The method is declared as not exception safe[SWS_DM_00834]. Specific error codes or exceptions are not defined; the calling application will typically not be able to catch exceptions. Question Q-394304b9d771cf69 (open)
This text was generated by an AI based on the specification.
gemini-3.8-flash-low· 2026-10-13 · German original