AUTOSAR TPS SoftwareComponentTemplate
AUTOSAR TPS SoftwareComponentTemplate
AUTOSAR TPS SoftwareComponentTemplate
AUTOSAR CP R21-11
• Introduction of PRPortPrototype
• Definition of implicit communication
behavior
• Support for the formal analysis of
resource locking
• Introduction of refined scheduling of
RunnableEntitys
• Get information about activating
RTEEvent
• Connection of Mode Managers and
AUTOSAR Mode Users with different number of
2013-03-15 4.1.1
Administration ModeDeclarations
• Support activation of
RunnableEntitys on remote
ECUs
• Support for ModeTransition
• Support for the definition of the
network representation of composite
data types
• ServiceNeeds for diagnostics over
IP
• Various fixes and clarifications
• Added CompuMethod categories
SCALE_LINEAR_AND_TEXTTABLE
and SCALE_RATIONAL_
AND_TEXTTABLE (table 5.80)
• Clarification concerning the usage of
invalid values
• Revised support for data filters
• Support for partial networking
AUTOSAR • Support for the specification of local
2011-12-22 4.0.3 connections between
Administration
software-components
• Improved description of service
needs
• Change history of constraints and
specification items
• Miscellaneous improvements and
clarifications
• “Support for Standardization” moved
to Standardization Template [1]
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
1 Introduction 29
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3 Organization of the Meta-Model . . . . . . . . . . . . . . . . . . . . . . 30
1.4 Structure of the Template . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1 Description of Software Components on VFB Level . . . . . 32
1.4.2 Description of Software Components on RTE Level . . . . . 32
1.4.3 Descriptions of Software Components on Implementation Level 33
1.5 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.6 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.7 Imposition Times of Constraints . . . . . . . . . . . . . . . . . . . . . . 36
1.8 Requirements Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2 Conceptual Aspects 46
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2 Measurement and Calibration . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.1 Basic Approach of Measurement and Calibration . . . . . . . 46
2.2.2 Calibration Parameters Overview . . . . . . . . . . . . . . . . 46
2.2.3 Using Calibration Parameters . . . . . . . . . . . . . . . . . . 47
2.2.3.1 Sharing Calibration Parameters within Compositions 47
2.2.3.2 Sharing Calibration Parameters between SwCompo-
nentPrototypes of the Same SwComponentType . . 49
2.2.3.3 Providing Instance Individual Characteristic Data . . 50
2.3 Runtime and Data Consistency Aspects . . . . . . . . . . . . . . . . . 51
2.3.1 Background: the Issues . . . . . . . . . . . . . . . . . . . . . 51
2.3.1.1 Mutual Exclusion with Semaphores . . . . . . . . . . 51
2.3.1.2 Interrupt Disabling . . . . . . . . . . . . . . . . . . . 52
2.3.1.3 Priority Ceiling . . . . . . . . . . . . . . . . . . . . . 52
2.3.1.4 Implicit Communication by Means of Variable Copies 52
2.3.2 Data Consistency at Runtime . . . . . . . . . . . . . . . . . . 53
2.3.3 Modeling Aspects of Data Consistency . . . . . . . . . . . . 54
2.4 Variant Handling in the Software Component Template . . . . . . . . . 55
2.5 Communication Specification of Composition Component Types . . . . 57
2.5.1 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.6 PRPortPrototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.1 Use Case 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.2 Use Case 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.6.3 Use Case 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.6.4 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.7 Variable-size Array Data Types . . . . . . . . . . . . . . . . . . . . . . 61
2.7.1 Overview and Use cases . . . . . . . . . . . . . . . . . . . . 61
2.7.1.1 “Old-world” dynamic-size Arrays . . . . . . . . . . . 61
2.7.1.2 “New-world” variable-size Arrays . . . . . . . . . . . 63
2.7.2 Modeling Aspects regarding Application Data Types . . . . . 65
13.13.1 Error Tracer Use Case: Default Error Tracer Service use
Case: report failure . . . . . . . . . . . . . . . . . . . . . . . 831
13.14 Vehicle-2-X Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
13.14.1 V2xFac Use Case: Application software component provides
Vehicle specific data to the V2X-Stack for CAM transmission 833
13.14.2 V2xFac Use Case: V2xFac notifies application software com-
ponent about received messages . . . . . . . . . . . . . . . 833
13.14.3 V2xFac Use Case: Application software component triggers
transmission of DENM message . . . . . . . . . . . . . . . . 834
13.14.4 V2xFac Use Case: Application software component pro-
cesses the MAP (topology) Extended Message . . . . . . . . 835
13.14.5 V2xFac Use Case: Application software component pro-
cesses Infrastructure to Vehicle Information Message . . . . 836
13.14.6 V2xFac Use Case: Application software component pro-
cesses Signal Phase And Timing Extended Message . . . . 836
13.15 Vehicle-2-X Management . . . . . . . . . . . . . . . . . . . . . . . . . 837
13.15.1 V2xM Use Case: Application software component provides
Vehicle specific data to the V2X-Stack for Position and Time
information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
13.15.2 V2xM Use Case: Application software component needs
V2X specific data from the V2X Manager . . . . . . . . . . . 838
13.15.3 V2xM Use Case: Application software component has soft-
control over Pseudonym-Change within V2X Manager . . . . 839
13.15.4 V2xM Use Case: Application software component has the
ability to do Verification-on-Demand . . . . . . . . . . . . . . 839
13.15.5 V2xM Use Case: Application software component do loca-
tion based calculations . . . . . . . . . . . . . . . . . . . . . 840
13.16 Hardware Test Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 841
13.16.1 HtssM Service Use Case: Query results of hardware tests . 841
13.17 Intrusion Detection System Manager . . . . . . . . . . . . . . . . . . . 842
13.17.1 IdsM Service Use Case: AtomicSwComponentType reports
security event . . . . . . . . . . . . . . . . . . . . . . . . . . 842
13.17.2 IdsM Service Use Case: AtomicSwComponentType reports
security event using Smart Sensor API . . . . . . . . . . . . 843
13.17.3 IdsM Service Use Case: AtomicSwComponentType provides
time stamp to IdsM . . . . . . . . . . . . . . . . . . . . . . . 844
14 Rapid Prototyping Scenarios 845
14.1 Definition of Rapid Prototyping Scenario . . . . . . . . . . . . . . . . . 845
14.2 Usage of RptContainers on M1 . . . . . . . . . . . . . . . . . . . . . . 848
14.3 Usage of atpSplitable for RptContainers on M1 . . . . . . . . . . . . . 850
14.4 Modifications of the Meta-Model for supporting the RPT scenario . . . 850
14.5 Extended Buffer Access Method . . . . . . . . . . . . . . . . . . . . . 853
14.5.1 RP Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . 854
14.5.2 Service Points . . . . . . . . . . . . . . . . . . . . . . . . . . 858
14.5.2.1 Service Functions . . . . . . . . . . . . . . . . . . . 859
A Glossary 862
References
[1] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[2] Specification of RTE Software
AUTOSAR_SWS_RTE
[3] Virtual Functional Bus
AUTOSAR_EXP_VFB
[4] Methodology for Classic Platform
AUTOSAR_TR_Methodology
[5] Layered Software Architecture
AUTOSAR_EXP_LayeredSoftwareArchitecture
[6] Basic Software Module Description Template
AUTOSAR_TPS_BSWModuleDescriptionTemplate
[7] Specification of Timing Extensions
AUTOSAR_TPS_TimingExtensions
[8] Requirements on Timing Extensions
AUTOSAR_RS_TimingExtensions
[9] Specification of ECU Resource Template
AUTOSAR_TPS_ECUResourceTemplate
[10] System Template
AUTOSAR_TPS_SystemTemplate
[11] Generic Structure Template
AUTOSAR_TPS_GenericStructureTemplate
[12] Requirements on Software Component Template
AUTOSAR_RS_SoftwareComponentTemplate
[13] Supplementary material of general blueprints for AUTOSAR
AUTOSAR_TR_GeneralBlueprintsSupplement
[14] Specification of Manifest
AUTOSAR_TPS_ManifestSpecification
[15] Information technology – Universal Coded Character Set (UCS)
http://www.iso.org
[16] Specification of I/O Hardware Abstraction
AUTOSAR_SWS_IOHardwareAbstraction
[17] ISO 17356-4: Road vehicles – Open interface for embedded automotive applica-
tions – Part 4: OSEK/VDX Communication (COM)
AUTOSAR_SWS_NVRAMManager
[36] ASAM AE Functional Specification Exchange Format V1.0.0
http://www.asam.net
AE-FSX_V1.0.0.pdf
[37] Specification of Watchdog Manager
AUTOSAR_SWS_WatchdogManager
[38] Specification of ECU State Manager
AUTOSAR_SWS_ECUStateManager
[39] Diagnostic Extract Template
AUTOSAR_TPS_DiagnosticExtractTemplate
[40] Specification of Function Inhibition Manager
AUTOSAR_SWS_FunctionInhibitionManager
[41] Specification of Diagnostic Event Manager
AUTOSAR_SWS_DiagnosticEventManager
[42] Specification of Diagnostic Communication Manager
AUTOSAR_SWS_DiagnosticCommunicationManager
[43] Road vehicles – Diagnostic communication over Internet Protocol (DoIP)
http://www.iso.org
[44] Specification of Diagnostic Log and Trace
AUTOSAR_SWS_DiagnosticLogAndTrace
[45] Specification of Synchronized Time-Base Manager
AUTOSAR_SWS_SynchronizedTimeBaseManager
[46] Specification of Secure Onboard Communication
AUTOSAR_SWS_SecureOnboardCommunication
[47] Specification of a Request Manager for SAE J1939
AUTOSAR_SWS_SAEJ1939RequestManager
[48] Specification of Default Error Tracer
AUTOSAR_SWS_DefaultErrorTracer
[49] Specification of Vehicle-2-X Facilities
AUTOSAR_SWS_V2XFacilities
[50] Specification of Vehicle-2-X Management
AUTOSAR_SWS_V2XManagement
[51] Software Process Engineering Meta-Model Specification
http://www.omg.org/spec/SPEM/2.0/
[52] Specification of SOME/IP Transformer
AUTOSAR_SWS_SOMEIPTransformer
1 Introduction
1.1 Overview
This document contains the specification of the AUTOSAR Software-Component
Template. Actually, it has been created as a supplement to the formal definition of
the Software-Component Template by means of the AUTOSAR meta-model. In
other words, this document in addition to the formal specification provides introductory
description and rationale for the part of the AUTOSAR meta-model relevant for the
definition of software-components.
In this context, the term software-component refers to a formally described piece of
software existing that needs the AUTOSAR RTE [2] for execution.
Please note that the general ideas behind the semantics of application software-
components have been described in the specification of the Virtual Functional
Bus [3]. The latter, however, represents conceptual work that strongly influences but
does not totally govern the formal definition of software-components.
Note further that this document does not provide any “best practice” recommendations
of software-component modeling nor does it require or enforce a certain methodol-
ogy. Note however, that the methodology aspect is covered by the specification of the
AUTOSAR methodology [4].
Although it is beyond any doubt reasonable to use a suitable AUTOSAR Authoring Tool
for dealing with AUTOSAR software-components, this specification does not make any
assumptions nor does it give recommendations regarding the tooling.
1.2 Scope
As already mentioned in chapter 1.1, the Scope of this document is the description of
AUTOSAR software-components. This work covers the following three aspects:
• A general description of SwComponentTypes using PortPrototypes and
PortInterfaces, i.e. this document defines the SwComponentType as an en-
tity which can be described through PortPrototypes which provide or require
PortInterfaces.
• A description of CompositionSwComponentTypes which are sub-systems
consisting out of connected instances of software-components, i.e. software-
components may be defined in the form of hierarchical subsystems which in turn
consist of software-components again. The description of such hierarchical struc-
tures is in scope of this document.
• A description of AtomicSwComponentType which is implemented as a piece of
software that can be mapped to an AUTOSAR ECU.
An AtomicSwComponentType therefore shows up in the ECU Software Archi-
tecture depicted in Figure 1.1. In this figure, the green (vertically striped) and
blue (diagonally striped) borders show the aspects that are described by the
Software-Component Template.
Aspects of AUTOSAR Basic Software not relevant for the RTE are out of scope; these
are covered by the Basic Software Module Description Template [6].
Also, the document does not cover aspects of timing analysis with respect to the ex-
ecution of AUTOSAR software-components. This issue is explained in the Speci-
fication of Timing Extensions [7] as well as the corresponding requirement
specification [8].
SWComponentTemplate EcuResourceTemplate
AdaptivePlatform
SystemTemplate
DiagnosticExtract
ECUCDescriptionTemplate
ECUCParameterDefTemplate
BswModuleTemplate
For clarification, please note that the package GenericStructure contains some
fundamental infrastructure meta-classes and common patterns that are described
in [11]. As these are used by all other template specification the dependency asso-
ciations are not depicted in the diagram for the sake of clarity.
«atpVariation,atpSplitable»
+internalBehavior 0..1
SwcInternalBehavior
+behavior 0..1
SwcImplementation
The highest (most abstract) description level is the Virtual Functional Bus [3].
In this document SwComponentTypes are described with the means of DataTypes,
PortInterfaces, PortPrototypes, and connections between them. At this level,
the fundamental communication properties of components and their communication
relationships among each other are expressed.
In the diagram depicted in Figure 1.3, this aspect is expressed by means of the de-
scription of AtomicSwComponentType1 .
1
To avoid clutter and require additional up-front information about the meta-model, Composition-
SwComponentTypes have not been added to the diagram.
The lowest level of description specifies the implementation (i.e. in terms of the
AUTOSAR meta-model: the SwcImplementation) of a given SwcInternalBe-
havior description. More precisely, the RunnableEntitys of such a behavior are
mapped to code (source code or object code).
There may be different SwcImplementations that reference a specific SwcInter-
nalBehavior description, e.g. in different programming languages, or with differently
optimized code.
Please note that Implementation has been described in previous versions of this
document. In response to the evolution of the AUTOSAR concept the description of the
Implementation aspect has been moved to the “CommonStructure” (see Figure 1.2)
because it is also used for creating the Basic Software Module Description
Template [6].
However, the SwcImplementation still remains in the scope of this document as it
exclusively covers aspects of software-components rather than basic software mod-
ules.
1.5 Abbreviations
The following table contains a list of abbreviations used in the scope of this document
along with the spelled-out meaning of each of the abbreviations.
Abbreviation Meaning
API Application Programming Interface
BOM Byte Order Mark
CAN Controller Area Network
CSE Codes for Scaling Units
DCM Diagnostics Communication Manager
DCY Driving Cycle
DEM Diagnostics Event Manager
5
4
Abbreviation Meaning
DID Diagnostic Identifier
DTC Diagnostic Trouble Code
DoIp Diagnostics over IP
ECU Electrical Control Unit
EPROM Erasable Programmable Read-Only Memory
EEPROM Electrically Erasable Programmable Read-Only Memory
FID Function Identifier
GID Group Identifier
ID Identifier
IO Input/Output
IP Internet Protocol
IUMPR In-Use Monitor Performance Ratio
ISO International Standardization Organization
MAC Message Authentication Code
MCAL Micro-Controller Abstraction
LIN Local Interconnect Network
MCD Measurement, Calibration, Diagnostics
NM Network Management
NV Non-Volatile
OBD On-Board Diagnostic
OEM Original Equipment Manufacturer
OS Operating System
PDU Protocol Data Unit
PID Parameter Identifier
PTO Power Take Off
RA Routing Activation
RAM Random Access Memory
ROM Read-Only Memory
RPT Rapid Prototyping
RTE Runtime Environment
SWC Software Component
TID Test Identifier
UDS Unified Diagnostic Services
UML Unified Modeling Language
VFB Virtual Functional Bus
WWH-OBD World-Wide Harmonized On-Board Diagnostics
XML Extensible Markup Language
XSD XML Schema Definition
2
Different imposition times may be defined in the context of other AUTOSAR standard documents
From the appearance of an imposition time that only applies to the AUTOSAR classic
platform in the text of a constraint in this document, it shall not be concluded that the
constraint is exclusively applicable to the AUTOSAR classic platform.
4
Requirement Description Satisfied by
[RS_SWCT_00160] AUTOSAR shall provide means [TPS_SWCT_01002]
to achieve compositionality
[RS_SWCT_00170] AUTOSAR shall provide [TPS_SWCT_01028] [TPS_SWCT_01029] [TPS_SWCT_01129]
diagnostics means during [TPS_SWCT_01132] [TPS_SWCT_01134] [TPS_SWCT_01135]
runtime, for production and [TPS_SWCT_01136] [TPS_SWCT_01137] [TPS_SWCT_01138]
services purposes [TPS_SWCT_01139] [TPS_SWCT_01140] [TPS_SWCT_01425]
[TPS_SWCT_01426] [TPS_SWCT_01427] [TPS_SWCT_01453]
[TPS_SWCT_01582] [TPS_SWCT_01627] [TPS_SWCT_01628]
[TPS_SWCT_01629] [TPS_SWCT_01630] [TPS_SWCT_01631]
[TPS_SWCT_01632] [TPS_SWCT_01633] [TPS_SWCT_01634]
[TPS_SWCT_01639] [TPS_SWCT_01640] [TPS_SWCT_01654]
[TPS_SWCT_01655] [TPS_SWCT_01656] [TPS_SWCT_01657]
[TPS_SWCT_01690] [TPS_SWCT_01691] [TPS_SWCT_01706]
[TPS_SWCT_01707] [TPS_SWCT_01708] [TPS_SWCT_01709]
[TPS_SWCT_01711] [TPS_SWCT_01712] [TPS_SWCT_01715]
[TPS_SWCT_01739] [TPS_SWCT_01765] [TPS_SWCT_01766]
[TPS_SWCT_01767] [TPS_SWCT_01789] [TPS_SWCT_01790]
[TPS_SWCT_01791] [TPS_SWCT_01808] [TPS_SWCT_02002]
[TPS_SWCT_02003] [TPS_SWCT_02004] [TPS_SWCT_02005]
[TPS_SWCT_02007] [TPS_SWCT_02008] [TPS_SWCT_02009]
[TPS_SWCT_02010] [TPS_SWCT_02011] [TPS_SWCT_02012]
[TPS_SWCT_02013] [TPS_SWCT_02014] [TPS_SWCT_02015]
[TPS_SWCT_02016] [TPS_SWCT_02505]
[RS_SWCT_00190] AUTOSAR shall support [TPS_SWCT_01032] [TPS_SWCT_01033] [TPS_SWCT_01034]
hierarchical design methods [TPS_SWCT_01035] [TPS_SWCT_01036] [TPS_SWCT_01037]
[RS_SWCT_00200] Definitions of relations between [TPS_SWCT_01002] [TPS_SWCT_01322] [TPS_SWCT_01323]
SW components are exhaustive [TPS_SWCT_01325] [TPS_SWCT_01326] [TPS_SWCT_01328]
and formal [TPS_SWCT_01329] [TPS_SWCT_01330] [TPS_SWCT_01331]
[TPS_SWCT_01333] [TPS_SWCT_01334] [TPS_SWCT_01335]
[TPS_SWCT_01336] [TPS_SWCT_01337] [TPS_SWCT_01338]
[TPS_SWCT_01339] [TPS_SWCT_01340] [TPS_SWCT_01341]
[TPS_SWCT_01342] [TPS_SWCT_01343] [TPS_SWCT_01345]
[TPS_SWCT_01346] [TPS_SWCT_01347] [TPS_SWCT_01348]
[TPS_SWCT_01349] [TPS_SWCT_01350] [TPS_SWCT_01351]
[TPS_SWCT_01352] [TPS_SWCT_01353] [TPS_SWCT_01557]
[TPS_SWCT_01558] [TPS_SWCT_01567] [TPS_SWCT_01663]
[RS_SWCT_00210] SW components are protected [TPS_SWCT_01002]
from illegal access
[RS_SWCT_00220] Management of vehicle diversity [TPS_SWCT_01038] [TPS_SWCT_01040] [TPS_SWCT_01041]
is supported by AUTOSAR [TPS_SWCT_01042] [TPS_SWCT_01447]
[RS_SWCT_00230] The Software Component [TPS_SWCT_01000] [TPS_SWCT_01001] [TPS_SWCT_01635]
Template shall provide the
ability to define naming
conventions for public symbols
[RS_SWCT_02000] AUTOSAR shall support a [TPS_SWCT_01032] [TPS_SWCT_01033] [TPS_SWCT_01034]
top-down hierarchical design [TPS_SWCT_01035] [TPS_SWCT_01036] [TPS_SWCT_01037]
[RS_SWCT_02010] Interfaces of atomic [TPS_SWCT_01002]
software-components shall be
supported
[RS_SWCT_02020] Bottom-up design of [TPS_SWCT_01032] [TPS_SWCT_01033] [TPS_SWCT_01034]
CompositionTypes shall be [TPS_SWCT_01035] [TPS_SWCT_01036] [TPS_SWCT_01037]
supported
5
4
Requirement Description Satisfied by
[RS_SWCT_02030] Specification of [TPS_SWCT_01002] [TPS_SWCT_01025] [TPS_SWCT_01026]
Communications shall be [TPS_SWCT_01027] [TPS_SWCT_01087] [TPS_SWCT_01106]
supported [TPS_SWCT_01114] [TPS_SWCT_01115] [TPS_SWCT_01116]
[TPS_SWCT_01117] [TPS_SWCT_01118] [TPS_SWCT_01119]
[TPS_SWCT_01120] [TPS_SWCT_01121] [TPS_SWCT_01122]
[TPS_SWCT_01124] [TPS_SWCT_01196] [TPS_SWCT_01198]
[TPS_SWCT_01218] [TPS_SWCT_01454] [TPS_SWCT_01516]
[TPS_SWCT_01517] [TPS_SWCT_01801] [TPS_SWCT_01803]
[RS_SWCT_02060] Interaction with basic software [TPS_SWCT_01005] [TPS_SWCT_01043] [TPS_SWCT_01044]
shall be considered [TPS_SWCT_01045] [TPS_SWCT_01046] [TPS_SWCT_01556]
[TPS_SWCT_01660] [TPS_SWCT_01661] [TPS_SWCT_01689]
[TPS_SWCT_01693] [TPS_SWCT_01833]
[RS_SWCT_02080] Designing a Sensor Actuator [TPS_SWCT_01047] [TPS_SWCT_01048]
Component shall be supported
[RS_SWCT_02090] Data-consistency for [TPS_SWCT_01031] [TPS_SWCT_01049] [TPS_SWCT_01050]
communication among [TPS_SWCT_01051] [TPS_SWCT_01052] [TPS_SWCT_01053]
RunnableEntities shall be [TPS_SWCT_01054] [TPS_SWCT_01055] [TPS_SWCT_01637]
supported [TPS_SWCT_01713] [TPS_SWCT_01714]
[RS_SWCT_02100] Definition of physical units shall [TPS_SWCT_01056] [TPS_SWCT_01057] [TPS_SWCT_01058]
be supported [TPS_SWCT_01059] [TPS_SWCT_01060] [TPS_SWCT_01061]
[TPS_SWCT_01068] [TPS_SWCT_01736] [TPS_SWCT_01737]
[RS_SWCT_02110] Definition of comments shall be [TPS_SWCT_01062] [TPS_SWCT_01203] [TPS_SWCT_01204]
supported [TPS_SWCT_01205] [TPS_SWCT_01206] [TPS_SWCT_01207]
[TPS_SWCT_01208] [TPS_SWCT_01209] [TPS_SWCT_01211]
[TPS_SWCT_01212] [TPS_SWCT_01214] [TPS_SWCT_01215]
[TPS_SWCT_01216] [TPS_SWCT_01217] [TPS_SWCT_01524]
[RS_SWCT_03000] The SW-Component template [TPS_SWCT_01032] [TPS_SWCT_01033] [TPS_SWCT_01034]
shall support compositions [TPS_SWCT_01035] [TPS_SWCT_01036] [TPS_SWCT_01037]
[RS_SWCT_03010] The SW-Component template [TPS_SWCT_01025] [TPS_SWCT_01026] [TPS_SWCT_01069]
shall support interfaces [TPS_SWCT_01070] [TPS_SWCT_01516]
[RS_SWCT_03040] The SW-Component template [TPS_SWCT_01022] [TPS_SWCT_01030] [TPS_SWCT_01075]
shall support description of the [TPS_SWCT_01098] [TPS_SWCT_01108] [TPS_SWCT_01153]
behavior [TPS_SWCT_01154] [TPS_SWCT_01155] [TPS_SWCT_01156]
[TPS_SWCT_01157] [TPS_SWCT_01302] [TPS_SWCT_01303]
[TPS_SWCT_01304] [TPS_SWCT_01305] [TPS_SWCT_01306]
[TPS_SWCT_01307] [TPS_SWCT_01309] [TPS_SWCT_01310]
[TPS_SWCT_01312] [TPS_SWCT_01313] [TPS_SWCT_01314]
[TPS_SWCT_01315] [TPS_SWCT_01317] [TPS_SWCT_01318]
[TPS_SWCT_01320] [TPS_SWCT_01324] [TPS_SWCT_01354]
[TPS_SWCT_01355] [TPS_SWCT_01356] [TPS_SWCT_01357]
[TPS_SWCT_01358] [TPS_SWCT_01359] [TPS_SWCT_01360]
[TPS_SWCT_01361] [TPS_SWCT_01363] [TPS_SWCT_01366]
[TPS_SWCT_01367] [TPS_SWCT_01368] [TPS_SWCT_01369]
[TPS_SWCT_01469] [TPS_SWCT_01483] [TPS_SWCT_01519]
[TPS_SWCT_01520] [TPS_SWCT_01521] [TPS_SWCT_01522]
[TPS_SWCT_01523] [TPS_SWCT_01687] [TPS_SWCT_03500]
[TPS_SWCT_03501]
[RS_SWCT_03045] The SW-Component template [TPS_SWCT_01469]
shall allow enabling of
RTE-Feature to get the
activating RTE-Event of
Runnable Entity
[RS_SWCT_03046] The SW-Component template [TPS_SWCT_02507]
shall support instance specific
RTE-Events
[RS_SWCT_03050] The SW-Component template [TPS_SWCT_01030] [TPS_SWCT_01097] [TPS_SWCT_01098]
shall support the definition of
schedulability
5
4
Requirement Description Satisfied by
[RS_SWCT_03055] The SW-Component template [TPS_SWCT_01457] [TPS_SWCT_01458] [TPS_SWCT_01459]
shall support optional [TPS_SWCT_01460]
configuration of ExclusiveArea
usage within RunnableEntities
[RS_SWCT_03065] The SW-Component template [TPS_SWCT_01466] [TPS_SWCT_01470] [TPS_SWCT_01471]
shall support the definition of [TPS_SWCT_01472] [TPS_SWCT_01473] [TPS_SWCT_01474]
implicit communication behavior [TPS_SWCT_01475] [TPS_SWCT_01476] [TPS_SWCT_01479]
[TPS_SWCT_01480] [TPS_SWCT_01481] [TPS_SWCT_01482]
[TPS_SWCT_01509] [TPS_SWCT_01625]
[RS_SWCT_03090] The SW-Component template [TPS_SWCT_01047] [TPS_SWCT_01048]
shall support the definition of
needed and usable sensors and
actuators
[RS_SWCT_03100] The SW-Component template [TPS_SWCT_01038] [TPS_SWCT_01040] [TPS_SWCT_01041]
shall support variant handling [TPS_SWCT_01042] [TPS_SWCT_01370] [TPS_SWCT_01371]
[TPS_SWCT_01372] [TPS_SWCT_01373] [TPS_SWCT_01448]
[RS_SWCT_03110] The SW-Component template [TPS_SWCT_01071] [TPS_SWCT_01153] [TPS_SWCT_01154]
shall support modes [TPS_SWCT_01190] [TPS_SWCT_01376] [TPS_SWCT_01377]
[TPS_SWCT_01378] [TPS_SWCT_01379] [TPS_SWCT_01380]
[TPS_SWCT_01381] [TPS_SWCT_01382] [TPS_SWCT_01383]
[TPS_SWCT_01384] [TPS_SWCT_01385] [TPS_SWCT_01388]
[TPS_SWCT_01530] [TPS_SWCT_01531] [TPS_SWCT_01532]
[TPS_SWCT_01533] [TPS_SWCT_01534] [TPS_SWCT_01535]
[TPS_SWCT_01536] [TPS_SWCT_01541] [TPS_SWCT_01542]
[TPS_SWCT_01552] [TPS_SWCT_01553] [TPS_SWCT_01554]
[TPS_SWCT_01555] [TPS_SWCT_01581] [TPS_SWCT_01664]
[RS_SWCT_03115] The SW-Component template [TPS_SWCT_01464] [TPS_SWCT_01465] [TPS_SWCT_01545]
shall support mapping of mode
declarations
[RS_SWCT_03120] The SW-Component template [TPS_SWCT_01077]
shall support dependency on
modes
[RS_SWCT_03130] The SW-Component template [TPS_SWCT_01079] [TPS_SWCT_01080] [TPS_SWCT_01081]
shall support connections [TPS_SWCT_01082] [TPS_SWCT_01083] [TPS_SWCT_01084]
between PortInterfaces [TPS_SWCT_01113] [TPS_SWCT_01507] [TPS_SWCT_01515]
[TPS_SWCT_01573] [TPS_SWCT_01843]
[RS_SWCT_03135] The SW-Component template [TPS_SWCT_01023] [TPS_SWCT_01024] [TPS_SWCT_01551]
shall support record type
subsetting
[RS_SWCT_03136] The SW-Component template [TPS_SWCT_01195]
shall support record type
subsetting with primitive types
[RS_SWCT_03140] The SW-Component template [TPS_SWCT_01038]
shall support conditional
existence of PortPrototypes
[RS_SWCT_03141] The SW-Component template [TPS_SWCT_01106]
shall support the conditional
existence of data element
prototypes, operation
prototypes, parameter
prototypes in an interface
[RS_SWCT_03142] The SW-Component template [TPS_SWCT_01038]
shall support the conditional
existence of Component
Prototypes
5
4
Requirement Description Satisfied by
[RS_SWCT_03143] The SW-Component template [TPS_SWCT_01040]
shall support the conditional
existence of Connector
Prototypes
[RS_SWCT_03144] The SW-Component template [TPS_SWCT_01076] [TPS_SWCT_01078]
shall support a configurable
size of arrays
[RS_SWCT_03148] Attributes swMinAxisPoints and [TPS_SWCT_01107] [TPS_SWCT_01181] [TPS_SWCT_01839]
swMaxAxisPoints shall be
adjustable by an System
Constant Definition
[RS_SWCT_03149] The SW-Component template [TPS_SWCT_01085]
shall support the conditional
existence of RunnableEntitys
[RS_SWCT_03150] The SW-Component template [TPS_SWCT_01085]
shall support the conditional
existence of RTEEvents
[RS_SWCT_03151] The SW-Component template [TPS_SWCT_01085]
shall support the conditional
existence of InterRunnable
Variables
[RS_SWCT_03152] The SW-Component template [TPS_SWCT_01130]
shall support the conditional
accessibility for measurement
[RS_SWCT_03153] The SW-Component template [TPS_SWCT_01085]
shall support the conditional
existence of parameter
prototypes
[RS_SWCT_03154] The SW-Component template [TPS_SWCT_01038]
shall support conditional ports
for software components
[RS_SWCT_03155] The SW-Component template [TPS_SWCT_01099] [TPS_SWCT_01100] [TPS_SWCT_01101]
shall support interfaces with [TPS_SWCT_01102] [TPS_SWCT_01103] [TPS_SWCT_01104]
different resolutions [TPS_SWCT_01105]
[RS_SWCT_03170] The SW-Component template [TPS_SWCT_01102] [TPS_SWCT_01103] [TPS_SWCT_01104]
shall support fixed data
exchange
[RS_SWCT_03175] The SW-Component template [TPS_SWCT_01177] [TPS_SWCT_01178] [TPS_SWCT_01188]
shall support the definition of [TPS_SWCT_01793] [TPS_SWCT_01794]
calibration datasets
[RS_SWCT_03180] The SW-Component template [TPS_SWCT_01076] [TPS_SWCT_01673] [TPS_SWCT_01674]
shall support SAE J1939 [TPS_SWCT_01809]
Protocol Features
[RS_SWCT_03181] The SW-Component template [TPS_SWCT_01076] [TPS_SWCT_01127] [TPS_SWCT_01495]
shall support arrays of variable [TPS_SWCT_01601] [TPS_SWCT_01602] [TPS_SWCT_01604]
number of elements within the [TPS_SWCT_01605] [TPS_SWCT_01606] [TPS_SWCT_01607]
maximum size [TPS_SWCT_01608] [TPS_SWCT_01610] [TPS_SWCT_01612]
[TPS_SWCT_01613] [TPS_SWCT_01614] [TPS_SWCT_01615]
[TPS_SWCT_01617] [TPS_SWCT_01618] [TPS_SWCT_01619]
[TPS_SWCT_01620] [TPS_SWCT_01621] [TPS_SWCT_01622]
[TPS_SWCT_01623] [TPS_SWCT_01636] [TPS_SWCT_01641]
[TPS_SWCT_01642] [TPS_SWCT_01644] [TPS_SWCT_01645]
[TPS_SWCT_01647] [TPS_SWCT_01648] [TPS_SWCT_01649]
[TPS_SWCT_01650] [TPS_SWCT_01793] [TPS_SWCT_01794]
[RS_SWCT_03182] The SW-Component template [TPS_SWCT_01127]
shall support byte arrays of
variable number of elements
5
4
Requirement Description Satisfied by
[RS_SWCT_03190] The SW-Component template [TPS_SWCT_01028] [TPS_SWCT_01029] [TPS_SWCT_01129]
shall support the ability to [TPS_SWCT_01132] [TPS_SWCT_01134] [TPS_SWCT_01135]
publish/specify the diagnostic [TPS_SWCT_01136] [TPS_SWCT_01137] [TPS_SWCT_01138]
capabilities and its resources of [TPS_SWCT_01139] [TPS_SWCT_01140] [TPS_SWCT_01421]
an SWC [TPS_SWCT_01422] [TPS_SWCT_01425] [TPS_SWCT_01426]
[TPS_SWCT_01427] [TPS_SWCT_01453] [TPS_SWCT_01537]
[TPS_SWCT_01538] [TPS_SWCT_01539] [TPS_SWCT_01540]
[TPS_SWCT_01544] [TPS_SWCT_01546] [TPS_SWCT_01547]
[TPS_SWCT_01577] [TPS_SWCT_01578] [TPS_SWCT_01582]
[TPS_SWCT_01627] [TPS_SWCT_01628] [TPS_SWCT_01629]
[TPS_SWCT_01630] [TPS_SWCT_01631] [TPS_SWCT_01632]
[TPS_SWCT_01633] [TPS_SWCT_01634] [TPS_SWCT_01639]
[TPS_SWCT_01640] [TPS_SWCT_01654] [TPS_SWCT_01655]
[TPS_SWCT_01656] [TPS_SWCT_01657] [TPS_SWCT_01680]
[TPS_SWCT_01690] [TPS_SWCT_01691] [TPS_SWCT_01706]
[TPS_SWCT_01707] [TPS_SWCT_01708] [TPS_SWCT_01709]
[TPS_SWCT_01711] [TPS_SWCT_01712] [TPS_SWCT_01715]
[TPS_SWCT_01739] [TPS_SWCT_01746] [TPS_SWCT_01765]
[TPS_SWCT_01766] [TPS_SWCT_01767] [TPS_SWCT_01769]
[TPS_SWCT_01789] [TPS_SWCT_01790] [TPS_SWCT_01791]
[TPS_SWCT_01808] [TPS_SWCT_02002] [TPS_SWCT_02003]
[TPS_SWCT_02004] [TPS_SWCT_02005] [TPS_SWCT_02007]
[TPS_SWCT_02008] [TPS_SWCT_02009] [TPS_SWCT_02010]
[TPS_SWCT_02011] [TPS_SWCT_02012] [TPS_SWCT_02013]
[TPS_SWCT_02014] [TPS_SWCT_02015] [TPS_SWCT_02016]
[TPS_SWCT_02505]
[RS_SWCT_03200] The SW-Component template [TPS_SWCT_01008] [TPS_SWCT_01009] [TPS_SWCT_01010]
shall support vehicle and [TPS_SWCT_01011] [TPS_SWCT_01016] [TPS_SWCT_01017]
application mode management [TPS_SWCT_01018] [TPS_SWCT_01019] [TPS_SWCT_01020]
[TPS_SWCT_01021] [TPS_SWCT_01063] [TPS_SWCT_01064]
[TPS_SWCT_01065] [TPS_SWCT_01066] [TPS_SWCT_01067]
[TPS_SWCT_01071] [TPS_SWCT_01126] [TPS_SWCT_01450]
[TPS_SWCT_01451] [TPS_SWCT_01552] [TPS_SWCT_01553]
[TPS_SWCT_01554] [TPS_SWCT_01572] [TPS_SWCT_01581]
[TPS_SWCT_01664] [TPS_SWCT_01811]
[RS_SWCT_03201] The SW-Component template [TPS_SWCT_01063] [TPS_SWCT_01064] [TPS_SWCT_01065]
shall support Portgroups [TPS_SWCT_01066] [TPS_SWCT_01096] [TPS_SWCT_01126]
[TPS_SWCT_01169] [TPS_SWCT_01173] [TPS_SWCT_01174]
[RS_SWCT_03202] The SW-Component template [TPS_SWCT_01086] [TPS_SWCT_01201] [TPS_SWCT_01353]
shall support enabling SWCs to [TPS_SWCT_01554] [TPS_SWCT_01572]
request dedicated modes
[RS_SWCT_03203] The SW-Component template [TPS_SWCT_01086] [TPS_SWCT_01087] [TPS_SWCT_01200]
shall support propagation of [TPS_SWCT_01201] [TPS_SWCT_01202] [TPS_SWCT_01552]
mode information [TPS_SWCT_01553] [TPS_SWCT_01566] [TPS_SWCT_01664]
[RS_SWCT_03210] The SW-Component template [TPS_SWCT_01023] [TPS_SWCT_01024] [TPS_SWCT_01099]
shall support integrity and [TPS_SWCT_01100] [TPS_SWCT_01101] [TPS_SWCT_01102]
scaling at ports [TPS_SWCT_01103] [TPS_SWCT_01104] [TPS_SWCT_01105]
[TPS_SWCT_01158] [TPS_SWCT_01159] [TPS_SWCT_01160]
[TPS_SWCT_01161] [TPS_SWCT_01162] [TPS_SWCT_01163]
[TPS_SWCT_01164] [TPS_SWCT_01165] [TPS_SWCT_01166]
[TPS_SWCT_01167] [TPS_SWCT_01168] [TPS_SWCT_01449]
[TPS_SWCT_01543] [TPS_SWCT_01549] [TPS_SWCT_01550]
[TPS_SWCT_01551] [TPS_SWCT_01560] [TPS_SWCT_01561]
[TPS_SWCT_01583] [TPS_SWCT_01768]
[RS_SWCT_03215] The SW-Component template [TPS_SWCT_01072] [TPS_SWCT_01073] [TPS_SWCT_01074]
shall define the need to add [TPS_SWCT_01076] [TPS_SWCT_01078] [TPS_SWCT_01189]
application data type on top of [TPS_SWCT_01229] [TPS_SWCT_01231] [TPS_SWCT_01235]
implementation data type [TPS_SWCT_01236] [TPS_SWCT_01247] [TPS_SWCT_01256]
[TPS_SWCT_01295] [TPS_SWCT_01296] [TPS_SWCT_01298]
[TPS_SWCT_01299] [TPS_SWCT_01300] [TPS_SWCT_01489]
[TPS_SWCT_01837]
5
4
Requirement Description Satisfied by
[RS_SWCT_03216] The SW-Component template [TPS_SWCT_01072] [TPS_SWCT_01073] [TPS_SWCT_01179]
shall support application data [TPS_SWCT_01180] [TPS_SWCT_01181] [TPS_SWCT_01183]
type [TPS_SWCT_01184] [TPS_SWCT_01185] [TPS_SWCT_01189]
[TPS_SWCT_01191] [TPS_SWCT_01229] [TPS_SWCT_01230]
[TPS_SWCT_01231] [TPS_SWCT_01235] [TPS_SWCT_01236]
[TPS_SWCT_01237] [TPS_SWCT_01240] [TPS_SWCT_01241]
[TPS_SWCT_01242] [TPS_SWCT_01243] [TPS_SWCT_01244]
[TPS_SWCT_01245] [TPS_SWCT_01247] [TPS_SWCT_01249]
[TPS_SWCT_01256] [TPS_SWCT_01486] [TPS_SWCT_01562]
[TPS_SWCT_01564] [TPS_SWCT_01565] [TPS_SWCT_01760]
[TPS_SWCT_01834] [TPS_SWCT_01835] [TPS_SWCT_01839]
[RS_SWCT_03217] The SW-Component template [TPS_SWCT_01006] [TPS_SWCT_01007] [TPS_SWCT_01072]
shall support implementation [TPS_SWCT_01074] [TPS_SWCT_01183] [TPS_SWCT_01184]
data type [TPS_SWCT_01189] [TPS_SWCT_01191] [TPS_SWCT_01229]
[TPS_SWCT_01231] [TPS_SWCT_01232] [TPS_SWCT_01233]
[TPS_SWCT_01235] [TPS_SWCT_01236] [TPS_SWCT_01237]
[TPS_SWCT_01248] [TPS_SWCT_01250] [TPS_SWCT_01251]
[TPS_SWCT_01252] [TPS_SWCT_01253] [TPS_SWCT_01254]
[TPS_SWCT_01255] [TPS_SWCT_01257] [TPS_SWCT_01257]
[TPS_SWCT_01258] [TPS_SWCT_01259] [TPS_SWCT_01442]
[TPS_SWCT_01443] [TPS_SWCT_01478] [TPS_SWCT_01564]
[TPS_SWCT_01565] [TPS_SWCT_01610] [TPS_SWCT_01612]
[TPS_SWCT_01613] [TPS_SWCT_01614] [TPS_SWCT_01615]
[TPS_SWCT_01617] [TPS_SWCT_01618] [TPS_SWCT_01619]
[TPS_SWCT_01620] [TPS_SWCT_01621] [TPS_SWCT_01622]
[TPS_SWCT_01647] [TPS_SWCT_01648] [TPS_SWCT_01649]
[TPS_SWCT_01650] [TPS_SWCT_01700] [TPS_SWCT_01701]
[TPS_SWCT_01702] [TPS_SWCT_01759] [TPS_SWCT_01772]
[TPS_SWCT_01773]
[RS_SWCT_03218] The SW-Component template [TPS_SWCT_01477]
shall support data types for
primitive data mapping
[RS_SWCT_03220] The SW-Component template [TPS_SWCT_01088] [TPS_SWCT_01568]
shall allow communication
attributes on compositions
[RS_SWCT_03221] The SW-Component template [TPS_SWCT_01222] [TPS_SWCT_01594] [TPS_SWCT_01595]
shall allow port specific [TPS_SWCT_01596] [TPS_SWCT_01597] [TPS_SWCT_01598]
configuration of data [TPS_SWCT_01599] [TPS_SWCT_01600] [TPS_SWCT_01626]
transformation properties [TPS_SWCT_01812] [TPS_SWCT_03500] [TPS_SWCT_03501]
[RS_SWCT_03222] The SW-Component template [TPS_SWCT_01616] [TPS_SWCT_01624] [TPS_SWCT_01626]
shall support error notification
for transformed data
communication
[RS_SWCT_03225] The SW-Component template [TPS_SWCT_01141] [TPS_SWCT_01142] [TPS_SWCT_01143]
shall support an enhanced [TPS_SWCT_01227] [TPS_SWCT_01228] [TPS_SWCT_01584]
non-volatile (NV) memory [TPS_SWCT_01585] [TPS_SWCT_01586] [TPS_SWCT_01587]
interface [TPS_SWCT_01588] [TPS_SWCT_01589] [TPS_SWCT_01590]
[TPS_SWCT_01662] [TPS_SWCT_01665] [TPS_SWCT_01666]
[TPS_SWCT_01675] [TPS_SWCT_01754] [TPS_SWCT_01755]
[TPS_SWCT_01795] [TPS_SWCT_01805] [TPS_SWCT_01806]
[TPS_SWCT_01807] [TPS_SWCT_02501] [TPS_SWCT_02502]
[TPS_SWCT_02503] [TPS_SWCT_02504]
[RS_SWCT_03230] The SW-Component template [TPS_SWCT_01062] [TPS_SWCT_01699]
shall support documentation of
M1 artifacts
[RS_SWCT_03240] The SW-Component template [TPS_SWCT_01089] [TPS_SWCT_01090] [TPS_SWCT_01091]
shall support end-to-end [TPS_SWCT_01092] [TPS_SWCT_01093] [TPS_SWCT_01094]
communication protection [TPS_SWCT_01095] [TPS_SWCT_01508] [TPS_SWCT_01529]
5
4
Requirement Description Satisfied by
[RS_SWCT_03241] The SW-Component template [TPS_SWCT_01169] [TPS_SWCT_01170] [TPS_SWCT_01171]
shall support partial networking [TPS_SWCT_01172] [TPS_SWCT_01173] [TPS_SWCT_01174]
[TPS_SWCT_01175]
[RS_SWCT_03250] The SW-Component template [TPS_SWCT_01112] [TPS_SWCT_01113] [TPS_SWCT_01454]
shall support bidirectional [TPS_SWCT_01455] [TPS_SWCT_01514] [TPS_SWCT_01573]
communication
[RS_SWCT_03260] The SW-Component template [TPS_SWCT_01484] [TPS_SWCT_01485] [TPS_SWCT_01493]
shall support rule-based [TPS_SWCT_01494] [TPS_SWCT_01495] [TPS_SWCT_01528]
initialization of arrays [TPS_SWCT_01609] [TPS_SWCT_01692]
[RS_SWCT_03270] The SW-Component template [TPS_SWCT_02507]
shall support overriding the
activation period time on
instance level
[RS_SWCT_03280] The SW-Component template [TPS_SWCT_01719] [TPS_SWCT_01720] [TPS_SWCT_01721]
shall support the description of [TPS_SWCT_01722] [TPS_SWCT_01723] [TPS_SWCT_01724]
bypass points and bypass [TPS_SWCT_02046] [TPS_SWCT_02047] [TPS_SWCT_02048]
scenarios [TPS_SWCT_02049] [TPS_SWCT_02050] [TPS_SWCT_02051]
[TPS_SWCT_02052]
[RS_SWCT_03281] The SW-Component template [TPS_SWCT_02047]
shall support post-build hooking
tools for rapid prototyping
[RS_SWCT_03282] The SW-Component template [TPS_SWCT_02046] [TPS_SWCT_02047]
shall support the description of
service points and rapid
prototyping scenarios
[RS_SWCT_03290] The SW-Component template [TPS_SWCT_01525]
shall support the initialization of
runnables without usage of
mode management
[RS_SWCT_03310] The SW-Component template [TPS_SWCT_01537] [TPS_SWCT_01538] [TPS_SWCT_01539]
shall support Diagnostics over [TPS_SWCT_01544] [TPS_SWCT_01546] [TPS_SWCT_01547]
IP [TPS_SWCT_01746]
[RS_SWCT_03320] The SW-Component template [TPS_SWCT_01771] [TPS_SWCT_01772] [TPS_SWCT_01773]
shall support the definition of [TPS_SWCT_01774] [TPS_SWCT_01775] [TPS_SWCT_01785]
optional elements for [TPS_SWCT_01786] [TPS_SWCT_01821] [TPS_SWCT_01822]
communication [TPS_SWCT_01823]
2 Conceptual Aspects
2.1 Introduction
For the sake of a compact description of relevant meta-model elements the discussion
and explanation of conceptual aspects has been concentrated in this chapter.
Reading this chapter is not a pre-requisite for understanding the subsequent chapters.
It just provides a central place for the detailed description of conceptual aspects used
in various other chapters of this document.
The actual explanation of the concept of a software-component starts in chapter 3.
While performing the calibration process using an MCD tool (Measurement, Calibra-
tion, and Diagnostic) the calibration engineer needs to have a specific insight to the
data within the CPU at runtime.
This insight is provided by access to ECU internal variables (also called measure-
ments) as well as calibration parameters (sometimes also called characteristic value).
For more details, please refer to [TPS_SWCT_01418]
The description of measurement variables and calibration parameters is basically the
same. In AUTOSAR both appear finally as DataPrototypes.
4
Class ParameterSwComponentType
Note The ParameterSwComponentType defines parameters and characteristic values accessible via provided
Ports. The provided values are the same for all connected SwComponentPrototypes
Tags:atp.recommendedPackage=SwComponentTypes
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, Referrable, SwComponentType
Attribute Type Mult. Kind Note
constant ConstantSpecification * ref Reference to the ConstantSpecificationMapping to be
Mapping MappingSet applied for the particular ParameterSwComponentType
Stereotypes: atpSplitable
Tags:atp.Splitkey=constantMapping
dataType DataTypeMappingSet * ref Reference to the DataTypeMapping to be applied for the
Mapping particular ParameterSwComponentType
Stereotypes: atpSplitable
Tags:atp.Splitkey=dataTypeMapping
instantiation InstantiationDataDef * aggr The purpose of this is that within the context of a given
DataDefProps Props SwComponentType some data def properties of individual
instantiations can be modified.
The aggregation of InstantiationDataDefProps is subject
to variability with the purpose to support the conditional
existence of PortPrototypes
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
The compatibility rules for ParameterInterfaces are described in chapter 6.4; the
compatibility rules for ParameterDataPrototypes are described in chapter 6.4.4.
AtpBlueprintable
AtpPrototype
PortPrototype
AbstractProvidedPortPrototype AbstractRequiredPortPrototype
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
PortInterface
PPortPrototype «isOfType»
+providedInterface + isService: Boolean [0..1] «isOfType»
+requiredInterface RPortPrototype
+ serviceKind: ServiceProviderEnum [0..1]
0..1 0..1 + mayBeUnconnected: Boolean [0..1]
{redefines atpType} {redefines atpType}
AtpPrototype
ParameterInterface DataInterface
DataPrototype
AtpStructureElement +constantMemory
ParameterDataPrototype
InternalBehavior «atpVariation,atpSplitable» 0..*
+perInstanceParameter
SwcInternalBehavior
«atpVariation,atpSplitable» 0..*
+ handleTerminationAndRestart: HandleTerminationAndRestartEnum [0..1]
+ supportsMultipleInstantiation: Boolean [0..1] +sharedParameter
«atpVariation,atpSplitable» 0..*
AtpPrototype
«atpVariation,atpSplitable»
DataPrototype
+runnable 0..*
AtpStructureElement +localParameter 0..1 +autosarParameter 0..1
ExecutableEntity «instanceRef»
AbstractAccessPoint
RunnableEntity
+parameterAccess AtpStructureElement
+ canBeInvokedConcurrently: Identifiable +accessedParameter AutosarParameterRef
Boolean [0..1] «atpVariation,atpSplitable» 0..*
ParameterAccess
+ symbol: CIdentifier [0..1] 0..1
This section gives some background information and lists possible strategies concern-
ing the implementation of the RunnableEntitys and the RTE with respect to efficient
communication between the RunnableEntitys.
The communication among RunnableEntitys can very efficiently be implemented
by means of “sharing memory”1 .
This is technically feasible because it is always guaranteed that the RunnableEn-
titys within an AtomicSwComponentType are always gathered at a specific pro-
cessing unit (in other words: distribution is not an option).
Note that the purpose of communication among the RunnableEntitys is to establish
a data flow scheme. The latter is a very popular pattern in the application of control
theory to automotive embedded systems. So if “global variables” are used for estab-
lishing internal communication among RunnableEntitys they acquire the semantics
of so called state-messages.
Nevertheless, directly sharing memory between RunnableEntitys requires a seri-
ous problem to be solved: the guarantee of data consistency among communicating
RunnableEntitys. The RunnableEntitys will indeed be mapped to tasks so that
one RunnableEntity of an AtomicSwComponentType may be preempted by a dif-
ferent RunnableEntity of the same AtomicSwComponentType.
Please note that a purist approach to achieving data consistency not only applies to
single accesses of concurrently accessed variables. Rather, it would not be permitted
that the value of a concurrently accessed variable (with state-message semantics) is
unintentionally changed during the run-time of a RunnableEntity.
The following paragraphs describe some common strategies that can be used to en-
sure the required data-consistency. We do not attempt to describe the pros or cons of
these approaches.
1
Please note that the term “sharing memory” can be interpreted on different levels. It is e.g. in the C
language possible to use variables with external linkage (a.k.a. “global variables”, although this term is
not officially defined by the C language) for the purpose of inter-Runnable communication.
The RTE could use these OS-provided mutexes to make sure that the RunnableEn-
titys sharing a memory-space would never run concurrently. The RTE would make
sure the task running the RunnableEntity has taken an appropriate mutex before
accessing the memory shared between the RunnableEntitys.
Priority ceiling allows for a non-blocking protection of shared resources. Provided that
the priority scheme is static, the AUTOSAR OS is capable of temporarily raising the
priority of a task that attempts to access a shared resource to the highest priority of all
tasks that would ever attempt to access the resource.
By this means is technically impossible that a task in temporary possession of a re-
source is ever preempted by a task that attempts to access the resource as well.
Another alternative is the usage of copies of concurrently accessed variables with state
message semantics. Note that this approach directly corresponds to the semantics of
“implicit” sender-receiver communication (see 7.5.1.2).
This means in particular that for a concurrently used variable a copy is created on
which a RunnableEntity entity can work without any danger of data inconsistency.
This concept requires additional code to write the value of the concurrently accessed
variable to the copy before the RunnableEntity that accesses the variable is exe-
cuted. The value of the copy shall be written back to the concurrently accessed variable
after the RunnableEntity has been terminated.
This concept is sketched in Figure 2.4. Since it would be too expensive and error-prone
to manually care about the copy routines it would be a good idea to leave the creation
of the additional code to a suitable code generator.
The additional copy routines as sketched in Figure 2.4 already protect the particular
RunnableEntitys from unintended changes of concurrently accessed variables. It
would, however, be possible to further optimize the process by reducing the additional
code at the beginning and end of each task (see Figure 2.5).
In addition, copy routines will only be inserted where appropriate, e.g. a copy routine
for writing the value of a copy back to the concurrently accessed variable will only be
inserted if the RunnableEntity has write-access to the concurrently used variable.
Please note that the copy routines have to temporarily make sure that the copy process
is not interrupted in order to be capable of consistently copying the values from and to
the concurrently accessed variable.
These periods, however, are supposed to be very short compared with the overall
run-time consumption of the RunnableEntity and thus would not have a significant
impact on the runtime behavior.
Further optimization criteria can be applied, for example: it would be perfectly safe
to avoid the creation of copies for RunnableEntitys that are scheduled in the task
with the highest priority of all tasks that (via contained RunnableEntitys) access a
certain concurrently accessed variable.
In order to keep the application code free of any dependencies from the code gener-
ation, access to concurrently accessed variables will be guarded by macros that are
later resolved by the code generator.
The presence of the guard macros directly supports reuse on the level of source code.
Reuse on the level of object code is only possible if the scheduling scenario (in terms
of the assignment of RunnableEntitys to priority levels) does not change.
This concept can only be implemented properly with the aid of a code generator if
the variables in question can be identified. In other words: the description of an
The intrinsic meaning of the terms “explicit communication” and “implicit communica-
tion” is explained in section 7.5.1.1. It would be fair to say that the distinction between
implicit and explicit communication establishes a usage pattern in the application do-
main, i.e. in the world of the developer of AUTOSAR software-components and their
implementation.
There is another facet to this subject, however, namely the question of how this pattern
is implemented in the meta-model. With respect to the application of the pattern for
port-based communication the details can be found in section 7.5.1.2, more specif-
ically in section 7.5.1.3. The consideration of the internal communication based on
so-called “inter-runnable variables” is described in section 7.4.2.
By reading the respective text sections it becomes apparent that the two applications
of the pattern are modeled differently. The port-based communication uses the Vari-
ableAccess to formalize different roles of accessing communication elements. Some
roles used for this purpose imply explicit communication (e.g. dataSendPoint) and
some represent implicit communication (e.g. dataWriteAccess).
The important thing about using the VariableAccess, however, is that the modeling
of communication roles is abstracted from the actual communication elements and
represents a uniform (meaning: it can refer to the target directly or by a so-called
InstanceRef) modeling approach that is applied for all use cases2 .
Admittedly, this is handled differently for the internal communication. Here, the addi-
tional layer of abstraction is not used (although it would have been technically feasible
to do so) with respect to the clear separation of “inter-runnable variables with implicit
behavior” and “inter-runnable variables with explicit behavior” in the RTE.
The implementation of different communication roles (i.e. implicit vs. explicit) is done
by directly aggregating VariableDataPrototype in the roles explicitInter-
RunnableVariable and implicitInterRunnableVariable.
On the other hand, access to internal communication never requires the usage of an
InstanceRef and therefore the abstraction might be considered unnecessary over-
head that blows up the M1 model.
2
On a related note, even for non-communication related data access the same pattern applies imple-
mented by ParameterAccess
2.5.1 Rationale
Please note that the ability to define a ComSpec in the context of a Composition-
SwComponentType implies that it shall be possible to define mappings of Applica-
tionDataTypes used in a PortInterface to their corresponding Implementa-
tionDataTypes.
For this purpose the CompositionSwComponentType owns a DataTypeMap-
pingSet in the role dataTypeMapping and a ConstantSpecificationMap-
pingSet in the role constantValueMapping.
SwComponentType
CompositionSwComponentType
«atpSplitable» «atpSplitable»
ARElement ARElement
AtpBlueprint ConstantSpecificationMappingSet
AtpBlueprintable
DataTypeMappingSet
2.6 PRPortPrototype
In some cases SwComponentTypes need to read and write the same piece of data.
One of the most prominent examples for this use case is the NvBlockSwComponent-
Type that factually ready and writes blocks of NvRAM.
Without the ability to combine read and write semantics in a kind of PortPrototype
that supports both read and write semantics, work-arounds have to be implemented
that come with a certain footprint on memory and processing time.
Without the ability to define a combined read and write semantics the definition of an
RPortPrototype and a PPortPrototype is required for reading and writing the
applicable data.
Technically, this read and write access is related to the same data item in an NVRAM
Block. This requires a consistent connection of the PortPrototypes between
an NvBlockSwComponentType and ApplicationSwComponentType as well as a
consistent mapping of the corresponding RPortPrototype and a PPortPrototype
of the NvBlockSwComponentType and the related element of the ramBlock.
It may happen that a SwComponentType need to consume the same data that it pro-
duces. If the only way to achieve this was the connection of a PPortPrototype
to an RPortPrototype of the same SwComponentType then the creator of the
SwComponentType cannot enforce this connection as it is created on a higher level of
abstraction in the context of a CompositionSwComponentType.
In other words, it is impossible to fully specify the semantics of the otherwise self-
contained SwComponentType.
This means that only in the in best case one buffer for the data is needed. But depend-
ing on the mapping RunnableEntitys to OS tasks additional buffers may need to be
allocated by the RTE to fully implement the implicit communication pattern.
2.6.4 Solution
The solution to the above-mentioned use cases is the ability to define a PortProto-
type that can read and write the same piece of data. This solves both the described
problem of resource consumption and the problem of having to define multiple Port-
Prototypes as outlets for same piece of data item.
AUTOSAR supports the definition of array data types where the size of the actual
payload varies at run-time. As far as the configuration is concerned, it is possible to
specify a maximum number of array elements that shall not be exceeded at run-time.
In order to properly understand the approach, it is necessary to understand that the
support for Variable-Size Array Data Types has been introduced in two waves
that each had a different motivation.
In the first wave, the support for Variable-Size Array Data Types was limited
to data types that basically boil down to an array where the base type is an unsigned
integer data type with a length of exactly one byte.
The main use cases for this scenario are derived from diagnostics requirements as
well as support for the J1939 communication protocol.
In both cases the actual length of a Variable-Size Array Data Type could be
determined from the context, i.e. either by the diagnostic basic-software module or by
the implementation of the J1939 TP.
For the lack of a better terminology, this specification distinguishes between “old-world”
dynamic-size arrays and “new-world” Variable-Size Array Data Types. It will
be necessary to clearly define the characteristics that allow for a disambiguation be-
tween the “old-world” dynamic-size arrays and “new-world” Variable-Size Array
Data Types.
[TPS_SWCT_01641] Definition of an “old-world” dynamic-size array data type by
means of an ApplicationArrayDataType dAn ApplicationArrayDataType
that doesn’t define attribute dynamicArraySizeProfile and that aggregates an
ApplicationArrayElement where attribute arraySizeSemantics exists and is
set to the value variableSize shall be considered an “old-world” dynamic-size array
data type.c(RS_SWCT_03181)
Please note that [TPS_SWCT_01641] can’t go any deeper into the specifics of the
given data type because it is intentionally focused on ApplicationDataTypes.
There are use cases where the distinction between “old-world” dynamic-size arrays
and “new-world” Variable-Size Array Data Types shall be done in the absence
of a corresponding ImplementationDataType.
In contrast to this, the second wave of support for Variable-Size Array Data
Types was motivated by the application software layer itself.
Here, the situation is entirely different because the actual size cannot be determined
by any context software module. The application itself is responsible for maintaining
the proper length of a Variable-Size Array Data Type at run-time.
As a consequence, the specification of the actual array size at run-time needs to be re-
flected by the structure of the data types used for hosting the Variable-Size Array
Data Type.
[TPS_SWCT_01644] Definition of a “new-world” variable-size array data type by
means of an ApplicationArrayDataType dAn ApplicationArrayDataType
that fulfills all the following conditions shall be considered an “new-world” dynamic-size
array data type.
• The ApplicationArrayDataType defines attribute ApplicationArray-
DataType.dynamicArraySizeProfile.
• ApplicationArrayDataType aggregates an ApplicationArrayElement
that defines attribute ApplicationArrayElement.arraySizeHandling.
c(RS_SWCT_03181)
[TPS_SWCT_01645] Definition of a “new-world” variable-size array data type by
means of an ImplementationDataType dAn ImplementationDataType that ful-
fills all the following conditions shall be considered an “new-world” dynamic-size array
data type.
• The ImplementationDataType defines attribute Implementation-
DataType.dynamicArraySizeProfile.
• ImplementationDataType aggregates an ImplementationDataType-
Element that defines attribute ImplementationDataTypeElement.array-
SizeHandling.
c(RS_SWCT_03181)
In contrast to the first use case described above, the application-motivated Variable-
-Size Array Data Type cannot be limited in terms of the base type of the array
data type, i.e. limiting the underlying data type to an unsigned integer data type with a
length of exactly one byte is not an option.
On top of that, several possible structures of Variable-Size Array Data Types
have been required. This aspect is depicted in Figure 2.10.
[TPS_SWCT_01636] Definition of profiles for the definition of Variable-Size
Array Data Types dThe possible variants for Variable-Size Array Data
Types are:
Linear The data type of the elements of the Variable-Size Array Data Type
itself does not consist of a Variable-Size Array Data Type.
This case corresponds to the possible value VSA_LINEAR of attribute dynami-
cArraySizeProfile.
Square The data type of the elements of the Variable-Size Array Data Type
itself consists of Variable-Size Array Data Types where the maximum
number of elements in all “second order” arrays is identical to the maximum
number of elements in the “first order” array.
This case corresponds to the possible value VSA_SQUARE of attribute dynami-
cArraySizeProfile.
Rectangular The data type of the elements of the Variable-Size Array Data
Type itself consists of Variable-Size Array Data Types where the maxi-
mum number of elements in “second order” arrays is identical but this value is
typically not identical3 to the maximum number of elements in the “first order”
array.
This case corresponds to the possible value VSA_RECTANGULAR of attribute
dynamicArraySizeProfile.
Fully Flexible The data type of the elements of the Variable-Size Array Data
Type itself consists of Variable-Size Array Data Types where the maxi-
mum number of elements in “second order” arrays is not necessarily identical
with each other and (obviously) not necessarily identical to the maximum num-
ber of elements in the “first order” array.
This case corresponds to the possible value VSA_FULLY_FLEXIBLE of attribute
dynamicArraySizeProfile.
c(RS_SWCT_03181)
The described cases directly correspond to the portrayal of different kinds of variable-
size arrays in Figure 2.10:
• The value VSA_LINEAR corresponds to the tag (a).
• The value VSA_SQUARE corresponds to the tag (b).
• The value VSA_RECTANGULAR corresponds to the tag (c).
• The value VSA_FULLY_FLEXIBLE corresponds to the tag (d).
Please note that the leaf elements in a Variable-Size Array Data Type doesn’t
have to be primitive data types. As mentioned before, it is possible to define multiple-
dimension Variable-Size Array Data Types.
The “terminal” elements can be recognized as such in that they don’t establish further
Variable-Size Array Data Types.
3
If it was, the case boils down to the rectangular scenario tagged (b).
Figure 2.10: Structural variety of array data types with variable size
Please note further that the modeling of Variable-Size Array Data Types is a
complex step governed by a collection of rules and constraints.
It is the expressed intent of this specification to keep the complexity of the rule set as
low as possible while still providing the user with a powerful modeling framework.
The major consequence of this conclusion is to keep the modeling as straightforward
as possible; in other words: intentionally cut away certain modeling variants for which
acceptable workarounds within the modeling framework itself exist.
One concrete example for such a restriction is that for ImplementationDataTypes,
Variable-Size Array Data Types can only be defined on the level of an Au-
tosarDataType.
It is intentionally not supported to define a Variable-Size Array Data Type on
the level of an ImplementationDataTypeElement because the intended seman-
tics can be realized by assigning the value TYPE_REFERENCE to the Implemen-
tationDataTypeElement.category and then let it reference to another Imple-
mentationDataType that in turn implements the Variable-Size Array Data
Type.
In the context of the AUTOSAR layered data type concept, the level of Application-
DataTypes is not concerned about the structure of how the Variable-Size Array
Data Types.
In other words, aspects of the implementation of this kind of data type is intentionally
abstracted as much as possible in order to support the idea behind the definition of
ApplicationDataTypes as a concept that is independent of an implementation to
the applicable degree.
Consequently, the support for Variable-Size Array Data Types on the level of
ApplicationDataTypes requires the addition of a couple of additional attributes.
Details can be found in chapter 5.2.4.2.
On the other hand, the data type used for the actual hosting of the Variable-
-Size Array Data Type corresponds directly to the level of the Implementa-
tionDataType.
Here, it is possible to define how an ImplementationDataType can be used to
define a Variable-Size Array Data Type.
The definition of ImplementationDataType in the AUTOSAR meta-model comes
with a certain level of generic nature the support for Variable-Size Array Data
Types on this level comes as a mixture of dedicated attributes in the meta-model and
a set of recipes how to support different use cases of Variable-Size Array Data
Types.
This means that the definition of ImplementationDataTypes for the purpose of
creating Variable-Size Array Data Types only has a chance to take off if the
structure of these data types is replicated in different implementations of AUTOSAR
software.
Therefore, AUTOSAR defines a common way of how ImplementationDataTypes
for the purpose of creating Variable-Size Array Data Types shall be defined
such that the ImplementationDataType shall be of category STRUCTURE with
the following sub-elements:
1. A numerical value that determines the actual size. This element shall be called
the Size Indicator throughout this document.
2. An array of the base-type of the Variable-Size Array Data Type that im-
plements the payload of the Variable-Size Array Data Type. The dimen-
sion of the array shall be defined such that the intended maximum number of
elements fits in.
A Size Indicator of a Variable-Size Array Data Type holds the number of
valid elements of the array. This information is necessary for the RTE to handle the
array efficiently.
On the sender-side this indicator is actively updated by the software-component, which
is the only instance that knows how many elements of the array are valid.
So the number of valid elements and the Size Indicator have to be kept consistent
by the application. When the software-component sends the data over to the RTE, the
RTE hands the data over to the transformer.
The transformer may evaluate the Size Indicator (depends on the transformer)
and only work on the valid array elements. The output of the transformer can vary in
length and only contain necessary data. Therefore, it can be more resource saving.
On the receiver side, the last transformer in the execution order restores the data ele-
ments of the array and the value of the Size Indicator. This output is handed over
by the RTE to the software-component. The application is now aware of the number of
valid elements in the array.
The details of how ImplementationDataTypes need to be modeled for the imple-
mentation of Variable-Size Array Data Types can be found in chapter 5.2.5
and a couple of examples is available in the appendix E.1.
2.8.1 Background
The AUTOSAR classic platform supports the usage of a TLV4 data encoding on the
SOME/IP transport layer. TLV is typically used where at least a part of the transmitted
data is only optionally existing and filled with meaningful values.
In other words: an optional part of a data structure may exist and carry meaningful val-
ues in one instance of data transmission and be completely missing in another instance
of the data transmission.
The receiving software needs to be able to identify whether the optional part exists and
read its value accordingly.
The receiving software also needs to be able to still execute meaningfully if the optional
part of such a data structure does not exist in the specific communication instance.
Consequently, it is necessary to be able to precisely identify the parts of a data struc-
ture that may become optional for specific instances of data transmission.
In terms of the AUTOSAR meta-model, the identification could - in principle - be at-
tached at various levels of abstraction:
AutosarDataType In this case the optionality that is only needed for communication
purposes would still be existing in all other usages of data types. This seems
unbalanced.
Admittedly, the definition of different optionality configurations for the same data
type may lead to the existence of a bunch of structurally identical data types that
4
This abbreviation stands for tag-length-value
only vary in terms of optionality. The existence of variation points may help to
mitigate this effect, though.
PortInterface In this case the optionality is defined where it is actually required.
However, different optionality could - in principle - be defined for DataProto-
types typed by the same AutosarDataType.
This would lead to an increased effort for the definition of C data types in the
context of the same PortInterface.
Additional constraints have been identified in the context of the definition of RTE
APIs of the AUTOSAR classic platform that finally render this option as not viable.
ComSpec In this case (for more information please refer to section 4.5) the definition
of optionality would even be more specific in comparison to the definition of op-
tionality on the level of PortInterfaces.
On top of that, the task to define optionality in the vast majority of cases is done by
an OEM, whereas the model definition on the level of ComSpec requires the exis-
tence of SwComponentTypes and this definition is in many cases in the domain
of a supplier.
As a result of this consideration, AUTOSAR has opted for implementation of the con-
cept of defining the optionality on the level of the AutosarDataType.
3.1 Introduction
The detailed introduction of all aspects of the Software Component Template in
one move is considered too complex. This chapter therefore provides an overview of
the main conceptual aspects of software components, ports and interfaces.
The overview will then be broken down into further details in chapter 4.
One of the goals of the AUTOSAR concept is the support of re-usability on the level of
application software.
In other words: it should be possible to re-use existing artifacts to create further model
elements instead of being forced to create every single modeling detail from scratch.
One of the consequences of this approach is the application of the so-called type-
prototype pattern [11].
The type-prototype pattern is created by using references from prototype to type that
are decorated with the isOfType.
[constr_10028] Existence of reference stereotyped isOfType dAny reference
that is decorated with the stereotype isOfType shall exist at any time in
the workflow.c()
Among other things, this concept allows for creating hierarchical structures of software-
components with arbitrary complexity. However, the creation of hierarchical structures
itself does not have an impact on the run-time behavior of the overall system.
The actual behavior is completely defined within the individual software-components.
This conclusion is backed by the understanding that software-components are devel-
oped against the so-called Virtual Functional Bus (VFB), an abstract communication
channel without direct dependency on ECUs and communication buses.
The VFB does not provide any means for expressing a hierarchy of software-
components.
Of course, the usage of the VFB has further consequences on the design of software-
components which shall not directly call the operating system or the communication
hardware.
As a result, software-components can be deployed to actual ECUs at a rather late
stage in the development process.
In order to make the description more precise, the following text preferably uses accu-
rate meta-model terms instead of the rather vague terminology of “composition” and
“software-component”.
3.2.1 Overview
AUTOSAR SwConnector
SwConnector
attributes
4
Class SwComponentType (abstract)
port PortPrototype * aggr The PortPrototypes through which this SwComponent
Type can communicate.
The aggregation of PortPrototype is subject to variability
with the purpose to support the conditional existence of
PortPrototypes.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=port.shortName, port.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
portGroup PortGroup * aggr A port group being part of this component.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
swcMapping SwComponentMapping * ref Reference to constraints that are valid for this Sw
Constraint Constraints ComponentType.
swComponent SwComponent 0..1 aggr This adds a documentation to the SwComponentType.
Documentation Documentation
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swComponentDocumentation, sw
ComponentDocumentation.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=-10
unitGroup UnitGroup * ref This allows for the specification of which UnitGroups are
relevant in the context of referencing SwComponentType.
3.2.2 PortPrototype
The concept of the PortInterface as another means for establishing a high degree
of re-usability is described in chapter 3.4.
Class PortPrototype (abstract)
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note Base class for the ports of an AUTOSAR software component.
The aggregation of PortPrototypes is subject to variability with the purpose to support the conditional
existence of ports.
Base ARObject, AtpBlueprintable, AtpFeature, AtpPrototype, Identifiable, MultilanguageReferrable, Referrable
Subclasses AbstractProvidedPortPrototype, AbstractRequiredPortPrototype
Attribute Type Mult. Kind Note
clientServer ClientServerAnnotation * aggr Annotation of this PortPrototype with respect to client/
Annotation server communication.
delegatedPort DelegatedPort 0..1 aggr Annotations on this delegated port.
Annotation Annotation
ioHwAbstraction IoHwAbstractionServer * aggr Annotations on this IO Hardware Abstraction port.
Server Annotation
Annotation
logAndTrace LogAndTraceMessage 0..1 ref Reference to a collection of Log or Trace messages that
Message CollectionSet will be used by the application.
CollectionSet
Tags:atp.Status=draft
modePort ModePortAnnotation * aggr Annotations on this mode port.
Annotation
nvDataPort NvDataPortAnnotation * aggr Annotations on this non voilatile data port.
Annotation
parameterPort ParameterPort * aggr Annotations on this parameter port.
Annotation Annotation
senderReceiver SenderReceiver * aggr Collection of annotations of this ports sender/receiver
Annotation Annotation communication.
triggerPort TriggerPortAnnotation * aggr Annotations on this trigger port.
Annotation
Table 3.2: PortPrototype
AtpBlueprintable
AtpPrototype
PortPrototype
AbstractProvidedPortPrototype AbstractRequiredPortPrototype
Class RPortPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note Component port requiring a certain port interface.
Base ARObject, AbstractRequiredPortPrototype, AtpBlueprintable, AtpFeature, AtpPrototype, Identifiable,
MultilanguageReferrable, PortPrototype, Referrable
Attribute Type Mult. Kind Note
mayBe Boolean 0..1 attr If set to true, this attribute indicates that the enclosing
Unconnected RPortPrototype may be left unconnected and that this
aspect has explicitly been considered in the
software-component’s design.
required PortInterface 0..1 tref The interface that this port requires.
Interface
Stereotypes: isOfType
Class PPortPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note Component port providing a certain port interface.
Base ARObject, AbstractProvidedPortPrototype, AtpBlueprintable, AtpFeature, AtpPrototype, Identifiable,
MultilanguageReferrable, PortPrototype, Referrable
Attribute Type Mult. Kind Note
provided PortInterface 0..1 tref The interface that this port provides.
Interface
Stereotypes: isOfType
Class PRPortPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note This kind of PortPrototype can take the role of both a required and a provided PortPrototype.
Base ARObject, AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, AtpBlueprintable, Atp
Feature, AtpPrototype, Identifiable, MultilanguageReferrable, PortPrototype, Referrable
Attribute Type Mult. Kind Note
provided PortInterface 0..1 tref This represents the PortInterface used to type the PRPort
Required Prototype
Interface
Stereotypes: isOfType
AbstractRequiredPortPrototype AbstractProvidedPortPrototype
Note that the attribute applies to the entire RPortPrototype, not to individual ele-
ments of the applicable PortInterface.
In other words, the attribute does not affect the case, where e.g. only one dataEle-
ment of several sender/receiver RPortPrototype is left unconsidered, as described
by [TPS_SWCT_01101].
Please note that the usage of RPortPrototype.mayBeUnconnected is potentially
dangerous because it removes a warning and this can be harmful if the suppression of
a legitimate warning were done by mistake.
It is therefore advised to handle the existence of RPortPrototype.mayBeUncon-
nected with care.
3.2.3 AtomicSwComponentType
ARElement AtpPrototype
AtpBlueprint
«isOfType» SwComponentPrototype
AtpBlueprintable +type
AtpType
0..1
SwComponentType {redefines atpType}
+component 0..*
«atpVariation,atpSplitable»
3.2.4 ParameterSwComponentType
«atpSplitable» «atpSplitable»
«atpVariation»
+dataTypeMapping 0..* +constantMapping 0..* +instantiationDataDefProps 0..*
ARElement ARElement
InstantiationDataDefProps
AtpBlueprint ConstantSpecificationMappingSet
AtpBlueprintable
DataTypeMappingSet
This is a further measure to mitigate the risk of potential name clashes in the RTE
code.
[TPS_SWCT_01635] Naming conventions may support the effectiveness of Sym-
bolProps dOf course, there is a residual risk that even in the presence of Symbol-
Props name clashes may occur.
Therefore, the definition of naming conventions may facilitate the avoidance of name
clashes to the further degree.c(RS_SWCT_00230)
3.3 Composition
3.3.1 Overview
+component 0..*
CompositionSwComponentType «atpVariation,atpSplitable»
3.3.2 SwComponentPrototype
4
Class CompositionSwComponentType
4
Connectors between ApplicationSwComponentTypes and
ServiceSwComponentTypes during the ECU integration.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=connector.shortName, connector.variation
Point.shortLabel
vh.latestBindingTime=postBuild
constantValue ConstantSpecification * ref Reference to the ConstantSpecificationMapping to be
Mapping MappingSet applied for initValues of PPortComSpecs and RPortCom
Spec.
Stereotypes: atpSplitable
Tags:atp.Splitkey=constantValueMapping
dataType DataTypeMappingSet * ref Reference to the DataTypeMapping to be applied for the
Mapping used ApplicationDataTypes in PortInterfaces.
Background: when developing subsystems it may happen
that ApplicationDataTypes are used on the surface of
CompositionSwComponentTypes. In this case it would be
reasonable to be able to also provide the intended
mapping to the ImplementationDataTypes. However, this
mapping shall be informal and not technically binding for
the implementors mainly because the RTE generator is
not concerned about the CompositionSwComponent
Types.
Rationale: if the mapping of ApplicationDataTypes on the
delegated and inner PortPrototype matches then the
mapping to ImplementationDataTypes is not impacting
compatibility.
Stereotypes: atpSplitable
Tags:atp.Splitkey=dataTypeMapping
instantiation InstantiationRTEEvent * aggr This allows to define instantiation specific properties for
RTEEventProps Props RTE Events, in particular for instance specific scheduling.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=instantiationRTEEventProps.shortLabel,
instantiationRTEEventProps.variationPoint.shortLabel
vh.latestBindingTime=codeGenerationTime
Class SwComponentPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note Role of a software component within a composition.
Base ARObject, AtpFeature, AtpPrototype, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
type SwComponentType 0..1 tref Type of the instance.
Stereotypes: isOfType
InstantiationRTEEventProps +instantiationRTEEventProps
+component AtpPrototype
«atpIdentityContributor» 0..* SwComponentPrototype
+ shortLabel: Identifier [0..1] «atpVariation,atpSplitable» «atpVariation,atpSplitable» 0..*
3.3.3 Connectors
• AssemblySwConnector.requester
• AssemblySwConnector.provider
• PassThroughSwConnector.providedOuterPort
• PassThroughSwConnector.requiredOuterPort
do not establish a direction in this case.c()
For clarification, [TPS_SWCT_01638] means that the SwConnector represents the
ability for bi-directional communication between the two PRPortPrototypes.
[constr_1087] AssemblySwConnector inside CompositionSwComponentType
dAn AssemblySwConnector can only connect PortPrototypes of SwComponent-
Prototypes that are owned by the same CompositionSwComponentType at any
time in the workflow.c()
[constr_1088] DelegationSwConnector inside CompositionSwComponent-
Type dA DelegationSwConnector can only connect a PortPrototype of a
SwComponentPrototype that is owned by the same CompositionSwComponent-
Type that also owns the connected delegation PortPrototype at any time in
the workflow.c()
In the context of attaching a DelegationSwConnector to an inner PRPortProto-
type there is some ambiguity to be considered. In particular, from the formal point of
view it would be feasible to use either a PPortInCompositionInstanceRef or a
RPortInCompositionInstanceRef.
The ability to use one or the other meta-class arbitrarily is considered confusing. There-
fore, [TPS_SWCT_01515] has been defined to remove the unnecessary degree of
freedom.
[TPS_SWCT_01515] PPortInCompositionInstanceRef shall be used for at-
taching DelegationSwConnector to an inner PRPortPrototype dFor the imple-
mentation of the attachment of a DelegationSwConnector to an inner PRPortPro-
totype the meta-class PPortInCompositionInstanceRef shall be used.c(RS_-
SWCT_03130)
[constr_1100] Unconnected RPortPrototype typed by a DataInterface dFor
any element in an unconnected RPortPrototype typed by a DataInterface, there
shall be a requiredComSpec that defines an initValue at the time when the
RTE is generated.c()
Class SwConnector (abstract)
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note The base class for connectors between ports. Connectors have to be identifiable to allow references from
the system constraint template.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
5
4
Class SwConnector (abstract)
Subclasses AssemblySwConnector, DelegationSwConnector, PassThroughSwConnector
Attribute Type Mult. Kind Note
mapping PortInterfaceMapping 0..1 ref Reference to a PortInterfaceMapping specifying the
mapping of unequal named PortInterface elements of the
two different PortInterfaces typing the two PortPrototypes
which are referenced by the ConnectorPrototype.
One specific use case for the application of SwConnectors is exemplified by the fig-
ures 3.9 and 3.11. A specific CompositionSwComponentType exists in two variants
where one (more complex) variant foresees the existence of a SwComponentPro-
totype inside the CompositionSwComponentType (depicted by 3.9) and the other
(because it is implementing a simpler semantics) does not need the SwComponent-
Prototype.
Class AssemblySwConnector
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note AssemblySwConnectors are exclusively used to connect SwComponentPrototypes in the context of a
CompositionSwComponentType.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable, SwConnector
Attribute Type Mult. Kind Note
provider AbstractProvidedPort 0..1 iref Instance of providing port.
Prototype
InstanceRef implemented by:PPortInComposition
InstanceRef
requester AbstractRequiredPort 0..1 iref Instance of requiring port.
Prototype
InstanceRef implemented by:RPortInComposition
InstanceRef
Table 3.13: AssemblySwConnector
Class DelegationSwConnector
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note A delegation connector delegates one inner PortPrototype (a port of a component that is used inside the
composition) to a outer PortPrototype of compatible type that belongs directly to the composition (a port
that is owned by the composition).
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable, SwConnector
Attribute Type Mult. Kind Note
innerPort PortPrototype 0..1 iref The port that belongs to the ComponentPrototype in the
composition
Tags:xml.typeElement=true
InstanceRef implemented by:PortInCompositionType
InstanceRef
outerPort PortPrototype 0..1 ref The port that is located on the outside of the Composition
Type
Composition SW Component
Application SW Component
RTO Trigger
RunA1
«instanceRef» «instanceRef»
AtpBlueprintable
AbstractProvidedPortPrototype
«instanceRef» AtpPrototype
PortPrototype
AbstractRequiredPortPrototype
This would not only be cumbersome it would also obviously require additional re-
sources (memory and code) at run-time. Plus, the existence of addition RunnableEn-
titys also unnecessarily increases the propagation delay of information flowing
around inside the ECU.
[TPS_SWCT_01507] The role of PassThroughSwConnector dPassThrough-
SwConnector can be taken to connect PortPrototypes owned by the same Com-
positionSwComponentType. In other words, PassThroughSwConnector creates
a bypass inside a CompositionSwComponentType from the requiredOuterPort
to the providedOuterPort (or vice versa) without involving SwComponentProto-
types.c(RS_SWCT_03130)
[constr_1252] Creation of a loop involving a PassThroughSwConnector is not
allowed dat any time in the workflow, a PassThroughSwConnector is not
allowed if the required outer PortPrototype is directly or indirectly connected to the
provided outer PortPrototype without the placement of a SwComponentProto-
type typed by an AtomicSwComponentType in the chain of SwConnectors.c()
Composition SW Component
Application SW Component
PortInterfaceMapping
This software-component can potentially be deployed to “slow” and “fast” control sce-
narios. As the actual time-base of the control algorithm is derived from the scheduling
implemented in the RTE it obviously facilitates the overall design if the timing can be
defined on “instance” level.
[constr_1233] InstantiationTimingEventProps shall only reference
TimingEvent dat any time in the workflow, an Instantiation-
TimingEventProps shall only reference TimingEvent in the role refinedEvent.
A reference to other kinds of RTEEvents is not supported.c()
[constr_1864] Multiplicity of InstantiationRTEEventProps.refinedEvent
dFor each InstantiationRTEEventProps, the instance-reference Instanti-
ationRTEEventProps.refinedEvent shall exist at the time when the RTE
is generated.c()
SwComponentType SwComponentType
AtomicSwComponentType CompositionSwComponentType
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+internalBehavior 0..1 +instantiationRTEEventProps 0..*
InternalBehavior
InstantiationRTEEventProps
SwcInternalBehavior
«atpIdentityContributor»
+ handleTerminationAndRestart: HandleTerminationAndRestartEnum [0..1]
+ shortLabel: Identifier [0..1]
+ supportsMultipleInstantiation: Boolean [0..1]
«instanceRef»
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+runnable 0..* +event 0..*
+refinedEvent
AtpStructureElement AbstractEvent
ExecutableEntity +startOnEvent AtpStructureElement 0..1
RunnableEntity RTEEvent
0..1 InstantiationTimingEventProps
+ canBeInvokedConcurrently: Boolean [0..1]
+ symbol: CIdentifier [0..1] + period: TimeValue [0..1]
+waitPoint 0..*
TimingEvent
Identifiable
+trigger + offset: TimeValue [0..1]
WaitPoint
+ period: TimeValue [0..1]
+ timeout: TimeValue [0..1] 0..1
Please note that the attribute shortLabel only contributes to model semantics if the
ability to split the definition of the aggregation CompositionSwComponentType.in-
stantiationRTEEventProps over several physical files is actually utilized1 .
More explanation about the ability to split models over physical files can be found
in [11].
1
In which case the shortLabel serves as a part of the splitkey
• ModeSwitchInterface
• ClientServerInterface
• TriggerInterface
c(RS_SWCT_00010, RS_SWCT_00080, RS_SWCT_00110, RS_SWCT_02030)
PortInterface
DataInterface
This means in particular that several PortPrototypes can be typed by the same
PortInterface.c(RS_SWCT_00010, RS_SWCT_00080, RS_SWCT_00110, RS_-
SWCT_03010)
Class DataInterface (abstract)
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note The purpose of this meta-class is to act as an abstract base class for subclasses that share the
semantics of being concerned about data (as opposed to e.g. operations).
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
Subclasses NvDataInterface, ParameterInterface, SenderReceiverInterface
Attribute Type Mult. Kind Note
– – – – –
Table 3.18: DataInterface
Of course, this aspect facilitates the creation of valid connections between software-
components dramatically. By using a specific PortInterface for typing particular
PortPrototypes the latter are eligible for being connected to each other by definition.
However, the creation of a valid connection does not need to be based on the usage
of identical PortInterfaces. It is also possible to use different, but compatible
PortInterfaces. The details about compatibility of PortInterfaces are described
in chapter 6.
[constr_1036] Connect kinds of PortInterfaces dIt shall not be possible to con-
nect PortPrototypes typed by PortInterfaces of different kinds at the time
when the RTE is generated.
Subclasses of DataInterface make an exception to this rule and can be used for
creating connections to each other.c()
ARElement
AtpBlueprint
AtpBlueprintable
DataInterface
AtpType
PortInterface
«atpVariation»
+parameter 0..* +dataElement 0..* +nvData 0..* +modeGroup 0..1 +trigger 0..* +operation 0..*
«atpVariation»
+argument 0..* {ordered}
AutosarDataPrototype
ArgumentDataPrototype
4
Enumeration ServiceProviderEnum
diagnosticEvent The service relates to the Diagnostic Event Manager (DEM).
Manager
Tags:atp.EnumerationLiteralIndex=7
diagnosticLogAnd The service relates to the Diagnostic Log and Trace (DLT).
Trace
Tags:atp.EnumerationLiteralIndex=8
ecuManager The service relates to the ECU Manager (EcuM).
Tags:atp.EnumerationLiteralIndex=9
errorTracer This service relates to the error tracer.
Tags:atp.EnumerationLiteralIndex=18
functionInhibition The service relates to the Function Inhibition Manager (FIM).
Manager
Tags:atp.EnumerationLiteralIndex=10
hardwareTest This service relates to the hardware test manager.
Manager
Tags:atp.EnumerationLiteralIndex=19
intrusionDetection The service relates to the intrusion detection security management (IdsM).
Security
Tags:atp.EnumerationLiteralIndex=24
Management
j1939Dcm This service relates to the J1939 Dcm.
Tags:atp.EnumerationLiteralIndex=22
j1939Request The service relates to the J1939Rm.
Manager
Tags:atp.EnumerationLiteralIndex=11
nonVolatileRam The service relates to the Non-Volatile RAM Manager (NvM).
Manager
Tags:atp.EnumerationLiteralIndex=12
operatingSystem The service relates to the Operating System (OS).
Tags:atp.EnumerationLiteralIndex=13
secureOnBoard The service relates to the SecOc module.
Communication
Tags:atp.EnumerationLiteralIndex=14
syncBaseTime The service relates to the Sync Time Base Manager (StbM).
Manager
Tags:atp.EnumerationLiteralIndex=15
v2xFacilities This service relates to the Vehicle to X facilities.
Tags:atp.EnumerationLiteralIndex=20
v2xManagement This service relates to the Vehicle to X management.
Tags:atp.EnumerationLiteralIndex=21
vendorSpecific This value denotes a vendor-specific service.
Tags:atp.EnumerationLiteralIndex=16
watchDogManager The service relates to the Watchdog Manager (WdgM).
Tags:atp.EnumerationLiteralIndex=17
Please find more details about the relation of PortInterfaces to AUTOSAR services
in chapter 11.
4.1 Introduction
The specification of the Virtual Functional Bus (VFB) [3] explains the main commu-
nication paradigms for communication among software-components: client/server for
operation-based communication, and sender/receiver for data-based communication.
The nature of the two communication paradigms is quite different, and so is the mod-
eling of SenderReceiverInterfaces and ClientServerInterfaces and their
related meta-classes.
[TPS_SWCT_01516] PortInterface describes the static structure of informa-
tion interchange dPortInterfaces are limited to the description of the static struc-
ture of the exchanged information; the dynamic attributes relevant for communica-
tion are attached to PortPrototypes.c(RS_SWCT_00010, RS_SWCT_00080, RS_-
SWCT_00110, RS_SWCT_02030, RS_SWCT_03010)
Please note that the dynamic attributes relevant for communication are described in
chapter 4.5.
4.2.1 Introduction
The usage of value encodings (for more information please refer to section 5.2.6) is
limited within the context of PortInterfaces.
[constr_1045] Supported value encodings for SwBaseType in the context of
PortInterfaces dThe supported value encodings for the usage within a PortIn-
terface are:
• 2C: Two’s complement
• IEEE754: floating-point numbers
• ISO-8859-1: single-byte coded character
• ISO-8859-2: single-byte coded character
• WINDOWS-1252: single-byte coded character
• UTF-8: UCS Transformation Format 8
• UTF-16: Character encoding for Unicode code points based on 16 bit code
units [15]
• UCS-2: Universal Character Set 2
4
Class SenderReceiverInterface
metaDataItem MetaDataItemSet * aggr This aggregation defines fixed sets of meta-data items
Set associated with dataElements of the enclosing Sender
ReceiverInterface
Table 4.1: SenderReceiverInterface
Class InvalidationPolicy
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Specifies whether the component can actively invalidate a particular dataElement.
If no invalidationPolicy points to a dataElement this is considered to yield the identical result as if the
handleInvalid attribute was set to dontInvalidate.
Base ARObject
Attribute Type Mult. Kind Note
dataElement VariableDataPrototype 0..1 ref Reference to the dataElement for which the Invalidation
Policy applies.
handleInvalid HandleInvalidEnum 0..1 attr This attribute controls how invalidation is applied to the
dataElement.
Table 4.2: InvalidationPolicy
Enumeration HandleInvalidEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Strategies of handling the reception of invalidValue.
Literal Description
dontInvalidate Invalidation is switched off.
Tags:atp.EnumerationLiteralIndex=0
external Replace a received invalidValue. The replacement value is sourced from the externalReplacement.
Replacement
Tags:atp.EnumerationLiteralIndex=1
keep The application software is supposed to handle signal invalidation on RTE API level either by Data
ReceiveErrorEvent or check of error code on read access.
Tags:atp.EnumerationLiteralIndex=2
replace Replace a received invalidValue. The replacement value is specified by the initValue.
Tags:atp.EnumerationLiteralIndex=3
keep
replace
dontInvalidate
externalReplacement
SenderReceiverInterface +dataElement VariableDataPrototype
0..*
ValueSpecification
TextValueSpecification +invalidationPolicy 0..*
There are cases where information available on different levels in the AUTOSAR basic
software stack need to be made available as meta-data on the application layer in order
to make the overall software function properly.
One example could be a software-component that is involved with communication us-
ing the J1939 protocol.
In such a case, the semantics of the information transmitted is strongly bound to the
source address and the sender needs to be able to set the source address individually.
[TPS_SWCT_01801] Support for Meta-Data dMeta-data on the application software
level can only be made available in the context of a SenderReceiverInterface.
No other kind of PortInterface supports the definition of meta-data.c(RS_SWCT_-
02030)
[TPS_SWCT_01802] Definition of meta-data in the context of a Sender-
ReceiverInterface dThe definition of meta-data in the context of a Sender-
ReceiverInterface involves two aspects:
• The available meta-data are defined by means of an ordered aggregation of meta-
class MetaDataItem at MetaDataItemSet that in turn is aggregated in the role
SenderReceiverInterface.metaDataItemSet.
• The involvement of dataElements with meta-data is specified by means of the
reference MetaDataItemSet.dataElement. In other words, the dataEle-
ments that are referenced by a MetaDataItemSet in the role dataElement
are involved with meta-data handling.
c()
Class MetaDataItem
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class represents a single meta-data item.
Base ARObject
Attribute Type Mult. Kind Note
length PositiveInteger 0..1 attr This attribute determines the length of the MetaDataItem
at run-time.
metaDataItem TextValueSpecification 0..1 aggr This aggregation contributes the specification of the
Type concrete meta-data item type.
Class MetaDataItemSet
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class represents the ability to define a set of meta-data items to be used in SenderReceiver
Interfaces.
Base ARObject
5
4
Class MetaDataItemSet
Attribute Type Mult. Kind Note
dataElement VariableDataPrototype * ref This reference identifies the dataElement for which the
ordered list of meta-data items is defined.
metaDataItem MetaDataItem * aggr This aggregation represents the ordered definition of
(ordered) meta-data items.
2
However, different connection patterns apply, see [constr_1037]
AtpStructureElement DataPrototype
ArgumentDataPrototype
Identifiable AutosarDataPrototype
ClientServerOperation +argument + direction: ArgumentDirectionEnum [0..1]
+ serverArgumentImplPolicy:
+ diagArgIntegrity: Boolean [0..1] «atpVariation» 0..* ServerArgumentImplPolicyEnum [0..1]
{ordered}
4
Class ClientServerOperation
diagArgIntegrity Boolean 0..1 attr This attribute shall only be used in the implementation of
diagnostic routines to support the case where input and
output arguments are allocated in a shared buffer and
might unintentionally overwrite input arguments by
tentative write operations to output arguments.
This situation can happen during sliced execution or while
output parameters are arrays (call by reference). The
value true means that the ClientServerOperation is aware
of the usage of a shared buffer and takes precautions to
avoid unintentional overwrite of input arguments.
If the attribute does not exist or is set to false the Client
ServerOperation does not have to consider the usage of a
shared buffer.
possibleError ApplicationError * ref Possible errors that may by raised by the referring
operation.
Class ArgumentDataPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note An argument of an operation, much like a data element, but also carries direction information and is
owned by a particular ClientServerOperation.
Base ARObject, AtpFeature, AtpPrototype, AutosarDataPrototype, DataPrototype, Identifiable, Multilanguage
Referrable, Referrable
Attribute Type Mult. Kind Note
direction ArgumentDirection 0..1 attr This attribute specifies the direction of the argument
Enum prototype.
serverArgument ServerArgumentImpl 0..1 attr This defines how the argument type of the servers
ImplPolicy PolicyEnum RunnableEntity is implemented.
If the attribute is not defined this has the same semantics
as if the attribute is set to the value useArgumentType for
primitive arguments and structures.
3
In different parts of the definition of a ClientServerInterface, a “calling-order” of the
ClientServerOperations might be prescribed: the client might be required to use the
ClientServerOperations in a certain logical ordering.
However, this ordering has nothing to do with the order in which the ClientServerOperations are
listed in the definition of a ClientServerInterface
{A} n=2
{A}
{B}
{B} n=3 Server
RunnableEntity
n=4 {C}
{C}
Figure 4.3: Use case for one server RunnableEntity processes calls from different
PortPrototypes
Please note that the server RunnableEntity needs information about the currently
used array length respectively structure size by usage of additional arguments passed
by the Client. This aspect is exemplified by Figure 4.3.
It is only natural that in such a case a Variable-Size Array Data Type would
be used because it comes with a built-in capability to indicate the number of elements
currently stored in the array without the need to add further arguments to the signature
of the RunnableEntity.
Note further that a ClientServerInterface does not define any timing information
(how quickly the client expects a response of the server). It does not define how the
threading works (if the client for example blocks until the response comes back from
the server).
It also does not define explicitly how information is passed between an implementation
of the client and the server and the underlying RTE (for example: through “pointers” or
“by value”).
RPortPrototype PPortPrototype PRPortPrototype
RPortPrototype No Yes Yes
PPortPrototype Yes No No
PRPortPrototype Yes No No
This section describes the handling of errors occurring either within an application
software-component or during the communication across the VFB [3]. Errors that are
created and consumed by basic software modules are not in the scope of this docu-
ment and therefore will not be discussed.
Therefore, errors in the scope of this document are divided into two simple classes:
• infrastructure errors and
• application errors.
A software-component implementation uses RTE API methods to communicate with
other software-components. During this communication certain errors can occur as a
result of infrastructure faults, like a bus is not working, or an expected data value was
not arriving in time.
These errors are listed in the RTE specification [2], as they are an inherent feature
of the infrastructure provided by the VFB. Software-components will therefore typically
not raise infrastructure errors on their own.
Instead, the AUTOSAR basic software and the RTE will determine infrastructure faults
and communicate the corresponding error codes to the relevant software-components.
PortInterface AtpStructureElement
+operation
ClientServerInterface Identifiable
«atpVariation» 0..* ClientServerOperation
+possibleError 0..* +possibleError 0..*
Identifiable
ApplicationError
Class ApplicationError
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This is a user-defined error that is associated with an element of an AUTOSAR interface. It is specific for
the particular functionality or service provided by the AUTOSAR software component.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
errorCode Integer 0..1 attr The RTE generator is forced to assign this value to the
corresponding error symbol. Note that for error codes
certain ranges are predefined (see RTE specification).
4
Class TriggerInterface
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
Attribute Type Mult. Kind Note
trigger Trigger * aggr The Trigger of this trigger interface.
Class Trigger
Package M2::AUTOSARTemplates::CommonStructure::TriggerDeclaration
Note A trigger which is provided (i.e. released) or required (i.e. used to activate something) in the given
context.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
swImplPolicy SwImplPolicyEnum 0..1 attr This attribute, when set to value queued, allows for a
queued processing of Triggers.
triggerPeriod MultidimensionalTime 0..1 aggr Optional definition of a period in case of a periodically
(time or angle) driven external trigger.
Class MultidimensionalTime
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::MultidimensionalTime
Note This is used to specify a multidimensional time value based on ASAM CSE codes. It is specified by a
code which defined the basis of the time and a scaling factor which finally determines the time value.
If for example the cseCode is 100 and the cseCodeFactor is 360, it represents 360 angular degrees. If
the cseCode is 0 and the cseCodeFactor is 50 it represents 50 microseconds.
Base ARObject
Attribute Type Mult. Kind Note
cseCode CseCodeType 1 attr Specifies the time base by means of CSE codes.
cseCodeFactor Integer 1 attr The scaling factor for the time value based on the
specified CSE code.
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
PortInterface
AtpStructureElement
MultidimensionalTime
+trigger Identifiable
TriggerInterface +triggerPeriod
Trigger + cseCode: CseCodeType
0..* 0..1 + cseCodeFactor: Integer
+ swImplPolicy: SwImplPolicyEnum [0..1]
There are two distinctive use cases for the communication of modes via ports:
1. An actual mode transition can be communicated from a mode manager compo-
nent to its client components to enforce a mode switch.
2. A request for a mode transition can be communicated from any component to a
mode manager.
[TPS_SWCT_01087] Propagation of mode information dFor communicating a mode
switch (i.e. the first use case), the Software-Component Template describes the con-
cept of the communication of ModeDeclarationGroupPrototypes similar to the
communication of VariableDataPrototypes but it uses a special type of PortIn-
terface: the collections of ModeDeclarations that are required or provided by a
SwComponentType are defined by means of ModeSwitchInterfaces used to type
the PortPrototypes owned by the SwComponentType.c(RS_SWCT_02030, RS_-
SWCT_03203)
This aspect is depicted in Figure 4.6.
[constr_2049] Different ModeDeclarationGroups shall have different short-
Names. dA software component is not allowed to type multiple PortPrototypes
with ModeSwitchInterfaces where the contained ModeDeclarationGroupPro-
totypes are referencing ModeDeclarationGroups with identical shortNames but
different ModeDeclarations.
at the time when the contract phase generation is executedc()
Obviously, the rationale for [constr_2049] is to avoid conflicts in generated RTE files.
For instance:
Two ModeDeclarationGroups with identical shortName “Foo” are defined.
ModeDeclarationGroup “Foo”
contains the ModeDeclarations “X”, “Y”, “Z”
ModeDeclarationGroup “Foo*”
contains the ModeDeclarations “W”, “X”, “Y”, “Z”
In this case a software component is only allowed to use either “Foo” or “Foo*”
Class ModeSwitchInterface
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note A mode switch interface declares a ModeDeclarationGroupPrototype to be sent and received.
Tags:atp.recommendedPackage=PortInterfaces
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
Attribute Type Mult. Kind Note
5
4
Class ModeSwitchInterface
modeGroup ModeDeclarationGroup 0..1 aggr The ModeDeclarationGroupPrototype of this mode
Prototype interface.
Class ModeDeclarationGroupPrototype
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note The ModeDeclarationGroupPrototype specifies a set of Modes (ModeDeclarationGroup) which is
provided or required in the given context.
Base ARObject, AtpFeature, AtpPrototype, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
swCalibration SwCalibrationAccess 0..1 attr This allows for specifying whether or not the enclosing
Access Enum ModeDeclarationGroupPrototype can be measured at
run-time.
type ModeDeclarationGroup 0..1 tref The "collection of ModeDeclarations" ( = ModeDeclaration
Group) supported by a component
Stereotypes: isOfType
«isOfType»
0..1
+type {redefines atpType}
ARElement +modeDeclaration AtpStructureElement
AtpBlueprint Identifiable
AtpBlueprintable «atpVariation» 0..*
ModeDeclaration
AtpType
ModeDeclarationGroup + value: PositiveInteger [0..1]
+initialMode
+ onTransitionValue: PositiveInteger [0..1] 0..1
[TPS_SWCT_01086] Request mode change dThe ability to request a mode (i.e. the
second use case) is modeled on the VFB via a SenderReceiverInterface and
for the RTE it is like a usual communication, that means the connector can also cross
ECU boundaries and the communicated dataElements have to be based on Au-
tosarDataTypes.c(RS_SWCT_03202, RS_SWCT_03203)
However, for semantic consistency with the first use case, a communicated mode re-
quest shall also be mapped to a corresponding ModeDeclarationGroup. This can
be defined by a mapping class as shown in figure 4.7.
The ImplementationDataType mapped to a certain ModeDeclarationGroup
can then be used in a PortInterface to represent a ModeDeclaration of the
associated ModeDeclarationGroup as a numerical value:
[constr_4002] Unambiguous mapping of modes to data types dWithin one
DataTypeMappingSet, a ModeDeclarationGroup shall not be mapped to dif-
ferent ImplementationDataTypes at the time when the contract phase
generation is executed.c()
ARElement +implementationDataType AtpBlueprint
ModeRequestTypeMap
AtpBlueprint +modeRequestTypeMap AtpBlueprintable
AtpBlueprintable AutosarDataType
0..1
DataTypeMappingSet 0..* AbstractImplementationDataType
ARElement
AtpBlueprint
AtpBlueprintable
PortInterfaceMappingSet ImplementationDataType
+ dynamicArraySizeProfile: String [0..1]
+ isStructWithOptionalElement: Boolean [0..1]
«atpVariation» + typeEmitter: NameToken [0..1]
0..* +portInterfaceMapping
AtpBlueprint
AtpBlueprintable
Identifiable ARElement
PortInterfaceMapping AtpBlueprint
AtpBlueprintable
+modeGroup
AtpType
ModeDeclarationGroup
0..1
ModeInterfaceMapping
+ onTransitionValue: PositiveInteger [0..1]
+type 0..1
{redefines atpType}
0..1 +modeMapping «isOfType»
+firstModeGroup
AtpPrototype
ModeDeclarationGroupPrototypeMapping
0..1 ModeDeclarationGroupPrototype
+secondModeGroup
+ swCalibrationAccess: SwCalibrationAccessEnum [0..1]
0..1
Class ModeRequestTypeMap
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note Specifies a mapping between a ModeDeclarationGroup and an ImplementationDataType. This
ImplementationDataType shall be used to implement the ModeDeclarationGroup.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class ModeRequestTypeMap
implementation AbstractImplementation 0..1 ref This is the corresponding AbstractImplementationData
DataType DataType Type. It shall be modeled along the idea of an "unsigned
integer-like" data type.
modeGroup ModeDeclarationGroup 0..1 ref This is the corresponding ModeDeclarationGroup.
0..* +modeRequestTypeMap
0..1 «atpVariation,atpSplitable»
+type 0..1
{redefines
atpType} ARElement +providedInterface AbstractProvidedPortPrototype
ModeSwitchInterface
AtpBlueprint «isOfType» PPortPrototype
«isOfType» AtpBlueprintable 0..1
AtpType {redefines atpType}
+requiredInterface AbstractRequiredPortPrototype
0..1 +firstModeGroup +secondModeGroup 0..1
RPortPrototype
0..1 «isOfType»
{redefines atpType}
PortInterfaceMapping
ModeDeclarationGroupPrototypeMapping +modeMapping
ModeInterfaceMapping
0..1
shall exist at the time when the contract phase generation is exe-
cuted.c()
[constr_1872] Existence of attribute ModeRequestTypeMap.modeGroup dFor each
ModeRequestTypeMap, attribute modeGroup shall exist at the time when the
contract phase generation is executed.c()
[constr_1167] ImplementationDataTypes used as ModeRequestTypeMap.im-
plementationDataType dThe ImplementationDataType referenced by a Mod-
eRequestTypeMap shall either be of category VALUE or of category TYPE_REF-
ERENCE that in turn references an ImplementationDataType of category VALUE.
The baseType referenced by the ImplementationDataType shall have set the
value of the attribute BaseTypeDirectDefinition.baseTypeEncoding to NONE.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[TPS_SWCT_01202] ApplicationDataType defines a subset of the values used
in the ModeDeclarationGroup dPlease note that the corresponding Applica-
tionDataType is defining a subset of the values used in the ModeDeclara-
tionGroup and the used labels may differ from the names used for the ModeDec-
larations.
It is in the responsibility of a system designer to maintain the data types and ModeDec-
larationGroups according to the functional needs.
For example, a ModeRequester may only request a subset of the available Modes (via
SenderReceiverInterface or ClientServerInterface). The ModeManager
may additionally decide to indicate failure.c(RS_SWCT_03203)
For more information regarding the ability to connect different kinds of PortProto-
types typed by a ModeSwitchInterface to each other please refer to [constr_1204]
and [constr_1205].
4
Class PortInterfaceMapping (abstract)
Subclasses ClientServerInterfaceMapping, ModeInterfaceMapping, TriggerInterfaceMapping, VariableAndParameter
InterfaceMapping
Attribute Type Mult. Kind Note
– – – – –
Table 4.23: PortInterfaceMapping
Outer CompositionSwComponentType
RPortPro- RPortPro-
totype DelegationSwConnector totype
S = Source, T = Target SwComponentType
S
To avoid further confusion, the rules for the specification of the PortInterfaceMap-
ping are specified from the perspective of the SwConnector rather than the
PortPrototype.
For each SwConnector, a “source” and “target” end is postulated, reflecting the di-
rection of communication implemented by the SwConnector. This understanding is
depicted in Figure 4.9.
Please note that the “sender/receiver-style communication” (see section 4.2.2) is con-
ceptually also applicable for other kinds of communication:
• Mode switch communication5 , see section 4.2.5
• External Trigger communication, see section 4.2.4
• NvData communication, see section 11.5.2
• Parameter “communication”, see 4.2.6
Note further that the association of the “source” and “target” end of an SwConnector
that represents a client/server communication (see section 4.2.3) is aligned along the
“primary” interaction, i.e. the call of a ClientServerOperation, see Figure 4.10.
Outer CompositionSwComponentType
RPortPro-
totype RPortPro-
DelegationSwConnector S = Source, T = Target totype SwComponentType
T
CompositionSwComponentType Inner
S T PPortPro- Outer
T
S totype PPortPro-
T totype
PPortPro- AssemblySwConnector
Inner
PassThroughSwConnector totype S
RPortPro-
totype DelegationSwConnector
5
A mode request is implemented by a sender/receiver communication anyway and does therefore
not represent a dedicated communication pattern.
The conclusion of Figure 4.9 regarding “source” and “target” end of an SwConnector
for a sender/receiver-style interaction is summarized in Table 4.24.
The conclusion of Figure 4.10 regarding “source” and “target” end of an SwConnector
for a client/server-style interaction is summarized in Table 4.25.
Client/Server Source Target
DelegationSwConnector Inner required PortPrototype Outer required PortPrototype
DelegationSwConnector Outer provided PortPrototype Inner provided PortPrototype
AssemblySwConnector Required PortPrototype Provided PortPrototype
PassThroughSwConnector Provided PortPrototype Required PortPrototype
where the swImplPolicy is set differently. This rule shall be imposed at any time
in the workflow.c()
This is required to fulfill the compatibility rules defined in table 6.2.
[constr_1635] Relevance of attribute isOptional dIf a SubElementMapping is
defined for the elements of a structured data type then the attribute isOptional6
shall either not exist for the firstElement and secondElement or it shall have
the identical value for the firstElement and secondElement. This rule shall be
imposed at the time when the RTE is generated.c()
+dataMapping PortInterfaceMapping
DataPrototypeMapping
VariableAndParameterInterfaceMapping
0..*
DataPrototype TextTableMapping
AutosarDataPrototype
+ identicalMapping: Boolean [0..1]
+ mappingDirection: MappingDirectionEnum [0..1]
«atpVariation»
+ bitfieldTextTableMaskFirst: PositiveInteger [0..1]
+ bitfieldTextTableMaskSecond: PositiveInteger [0..1]
VariableDataPrototype ParameterDataPrototype
Figure 4.12: Mapping of Sender Receiver Interface, Parameter Interface and Non Volatile
Data Interface elements
6
this is valid for both ApplicationRecordElement and ImplementationDataTypeElement
Class VariableAndParameterInterfaceMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines the mapping of VariableDataPrototypes or ParameterDataPrototypes in context of two different
SenderReceiverInterfaces, NvDataInterfaces or ParameterInterfaces.
Base ARObject, AtpBlueprint, AtpBlueprintable, Identifiable, MultilanguageReferrable, PortInterfaceMapping,
Referrable
Attribute Type Mult. Kind Note
dataMapping DataPrototypeMapping * aggr Defines the mapping of two particular VariableData
Prototypes or ParameterDataPrototypes with unequal
names and/or unequal semantic (resolution or range) in
context of two different SenderReceiverInterfaces, Nv
DataInterfaces or ParameterInterfaces
Table 4.26: VariableAndParameterInterfaceMapping
Class DataPrototypeMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines the mapping of two particular VariableDataPrototypes, ParameterDataPrototypes or Argument
DataPrototypes with non-equal shortNames, non-equal structure (specific condition is described by
[constr_1187]), and/or non-equal semantic (resolution or range) in context of two different Sender
ReceiverInterface, NvDataInterface or ParameterInterface or Operations.
If the semantic is unequal, the following rules apply: The textTableMapping is only applicable if the
referred DataPrototypes are typed by AutosarDataType referring to CompuMethods of category
TEXTTABLE, SCALE_LINEAR_AND_TEXTTABLE or BITFIELD_TEXTTABLE.
In the case that the DataPrototypes are typed by AutosarDataType either referring to CompuMethods of
category LINEAR, IDENTICAL or referring to no CompuMethod (which is similar as IDENTICAL) the
linear conversion factor is calculated out of the factorSiToUnit and offsetSiToUnit attributes of the referred
Units and the CompuRationalCoeffs of a compuInternalToPhys of the referred CompuMethods.
Base ARObject
Attribute Type Mult. Kind Note
firstData AutosarDataPrototype 0..1 ref First to be mapped DataPrototype in context of a Sender
Prototype ReceiverInterface, NvDataInterface, ParameterInterface
or Operation.
firstToSecond DataTransformation 0..1 ref This reference defines the need to execute the Data
Data Transformation <Mip>_<transformerId> functions of the
Transformation transformation chain when communicating from the Data
PrototypeMapping.firstDataPrototype to the Data
PrototypeMapping.secondDataPrototype.
This reference also specifies the reverse Data
Transformation <Mip>_Inv_<transformerId> functions of
the transformation chain (i.e. from the DataPrototype
Mapping.secondDataPrototype to the DataPrototype
Mapping.firstDataPrototype) if the referenced Data
Transformation is symmetric, i.e. attribute Data
Transformation.dataTransformationKind is set to
symmetric.
secondData AutosarDataPrototype 0..1 ref Second to be mapped DataPrototype in context of a
Prototype SenderReceiverInterface, NvDataInterface, Parameter
Interface or Operation.
secondToFirst DataTransformation 0..1 ref This defines the need to execute the reverse Data
Data Transformation <Mip>_Inv_<transformerId> functions of
Transformation the transformation chain when communicating from the
DataPrototypeMapping.secondDataPrototype to the Data
PrototypeMapping.firstDataPrototype.
subElement SubElementMapping * aggr This represents the owned SubelementMapping.
Mapping
5
4
Class DataPrototypeMapping
textTable TextTableMapping 0..2 aggr Applied TextTableMapping(s)
Mapping
+firstOperation AtpStructureElement
ClientServerOperationMapping
Identifiable
0..1 ClientServerOperation
+secondOperation
+ diagArgIntegrity: Boolean [0..1]
0..1
0..1 +firstToSecondDataTransformation
Identifiable
DataTransformation
0..1
«atpVariation»
TextTableMapping +argument 0..* {ordered}
+ identicalMapping: Boolean [0..1]
ArgumentDataPrototype
+ mappingDirection: MappingDirectionEnum [0..1]
«atpVariation»
+ bitfieldTextTableMaskFirst: PositiveInteger [0..1]
+ bitfieldTextTableMaskSecond: PositiveInteger [0..1]
+textTableMapping 0..2
0..* +argumentMapping
+firstDataPrototype DataPrototype
DataPrototypeMapping
AutosarDataPrototype
0..1
+secondDataPrototype
0..1
Class ClientServerOperationMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines the mapping of two particular ClientServerOperations in context of two different ClientServer
Interfaces.
Base ARObject
Attribute Type Mult. Kind Note
argument DataPrototypeMapping * aggr Defines the mapping of two particular ArgumentData
Mapping Prototypes with unequal names or unequal semantic
(resolution or range) in context of Operations.
firstOperation ClientServerOperation 0..1 ref First to-be-mapped ClientServerOperation of a Client
ServerInterface.
firstToSecond DataTransformation 0..1 ref This reference indicates that a DataTransformation is
Data intended in the context of the ClientServerOperation
Transformation Mapping.
second ClientServerOperation 0..1 ref Second to-be-mapped ClientServerOperation of a Client
Operation ServerInterface.
Class ClientServerApplicationErrorMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class represents the ability to map ApplicationErrors onto each other.
Base ARObject
Attribute Type Mult. Kind Note
firstApplication ApplicationError 0..1 ref This represents the first ApplicationError in the context of
Error the ClientServerApplicationErrorMapping.
second ApplicationError 0..1 ref This represents the second ApplicationError in the
ApplicationError context of the ClientServerApplicationErrorMapping.
Class ModeDeclarationGroupPrototypeMapping
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note Defines the mapping of two particular ModeDeclarationGroupPrototypes (in the given context) that are
unequally named and/or require a reference to a ModeDeclarationMappingSet in order to become
compatible by definition of ModeDeclarationMappings.
Base ARObject
Attribute Type Mult. Kind Note
firstModeGroup ModeDeclarationGroup 0..1 ref ModeDeclarationGroupPrototype to be mapped.
Prototype
mode ModeDeclaration 0..1 ref This represents the available mappings of Mode
Declaration MappingSet Declarations in the context ot this ModeDeclarationGroup
MappingSet Prototype.
secondMode ModeDeclarationGroup 0..1 ref ModeDeclarationGroupPrototype to be mapped.
Group Prototype
PortInterfaceMapping PortInterface
ModeInterfaceMapping ModeSwitchInterface
«isOfType»
0..1
0..1 +modeDeclarationMappingSet +type {redefines atpType}
ARElement ARElement
AtpType AtpBlueprint
ModeDeclarationMappingSet AtpBlueprintable
AtpType
ModeDeclarationGroup
«atpVariation»
0..* +modeDeclarationMapping +initialMode 0..1 +modeDeclaration 0..*
+firstMode
AtpStructureElement AtpStructureElement
Identifiable 0..* Identifiable
ModeDeclarationMapping +secondMode ModeDeclaration
[TPS_SWCT_01463] ModeDeclarationGroupPrototypeMapping.modeDecla-
rationMappingSet defines the applicable set of ModeDeclarationMappings
dThe attribute ModeDeclarationGroupPrototypeMapping.modeDeclaration-
MappingSet defines the applicable set of ModeDeclarationMappings for the
connection of ModeDeclarationGroupPrototypes typed by ModeDeclara-
tionGroups with differently named ModeDeclarations and/or with a different num-
ber of ModeDeclarations.c()
Class ModeDeclarationMappingSet
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class implements a container for ModeDeclarationGroupMappings
Tags:atp.recommendedPackage=PortInterfaceMappingSets
Base ARElement, ARObject, AtpClassifier , AtpType, CollectableElement, Identifiable, Multilanguage
Referrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
mode ModeDeclaration * aggr This represents the collection of ModeDeclaration
Declaration Mapping Mappings owned by the enclosing ModeDeclaration
Mapping MappingSet.
Class ModeDeclarationMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class implements a concrete mapping of two ModeDeclarations.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
firstMode ModeDeclaration * ref This represents the first ModeDeclaration of the Mode
DeclarationMapping. This reference has the multiplicity 1
.. * to support use cases where e.g. one mode of the
mode user is mapped to several modes of the mode
manager.
secondMode ModeDeclaration 0..1 ref This represents the second ModeDeclaration of the Mode
DeclarationMapping.
Class TriggerInterfaceMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines the mapping of unequal named Triggers in context of two different TriggerInterfaces.
Base ARObject, AtpBlueprint, AtpBlueprintable, Identifiable, MultilanguageReferrable, PortInterfaceMapping,
Referrable
Attribute Type Mult. Kind Note
triggerMapping TriggerMapping * aggr Mapping of two Trigger in two different TriggerInterface
Class TriggerMapping
Package M2::AUTOSARTemplates::CommonStructure::TriggerDeclaration
Note Defines the mapping of two particular unequally named Triggers in the given context.
Base ARObject
Attribute Type Mult. Kind Note
firstTrigger Trigger 0..1 ref A Trigger to be mapped.
secondTrigger Trigger 0..1 ref A Trigger to be mapped.
+textTableMapping 0..2
0..* +subElementMapping
+secondElement
SubElementMapping SubElementRef
«atpVariation» 0..1
+firstElement
«atpVariation» 0..1
ApplicationCompositeDataTypeSubElementRef ImplementationDataTypeSubElementRef
«instanceRef»
DataPrototype
ArParameterInImplementationDataInstanceRef ArVariableInImplementationDataInstanceRef
ApplicationCompositeElementDataPrototype
0..* 0..*
+contextDataPrototype {ordered} +targetDataPrototype 0..1 +targetDataPrototype 0..1 +contextDataPrototype {ordered}
AtpStructureElement
Identifiable
AbstractImplementationDataTypeElement
4
Class SubElementRef (abstract)
Base ARObject
Subclasses ApplicationCompositeDataTypeSubElementRef, ImplementationDataTypeSubElementRef
Attribute Type Mult. Kind Note
– – – – –
Table 4.38: SubElementRef
Class ImplementationDataTypeSubElementRef
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class represents the specialization of SubElementMapping with respect to Implementation
DataTypes.
Base ARObject, SubElementRef
Attribute Type Mult. Kind Note
implementation ArVariableIn 0..1 aggr This represents the referenced implementationDataType
DataType ImplementationData Element.
Element InstanceRef
parameter ArParameterIn 0..1 aggr This represents the referenced ImplementationDataType
Implementation ImplementationData Element.
DataType InstanceRef
Element
Table 4.39: ImplementationDataTypeSubElementRef
Class ApplicationCompositeDataTypeSubElementRef
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note This meta-class represents the specialization of SubElementMapping with respect to Application
CompositeDataTypes.
Base ARObject, SubElementRef
Attribute Type Mult. Kind Note
application ApplicationComposite 0..1 iref This represents the referenced ApplicationComposite
Composite ElementDataPrototype DataPrototype.
Element
InstanceRef implemented by:ApplicationComposite
ElementInPortInterfaceInstanceRef
Table 4.40: ApplicationCompositeDataTypeSubElementRef
+base 0..1
{redefines atpBase}
«atpDerived»
0..1 +applicationCompositeElement
AtpPrototype AtpInstanceRef
DataPrototype ApplicationCompositeElementInPortInterfaceInstanceRef
+rootDataPrototype 0..1
{subsets atpContextElement}
Figure 4.18: Implementation of the InstanceRef for the mapping of elements of compos-
ite application data types
Figure 4.19: Implementation of the InstanceRef for the mapping of elements of a Vari-
ableDataPrototype typed by a composite implementation data type
Figure 4.20: Implementation of the InstanceRef for the mapping of elements of a Param-
eterDataPrototype typed by a composite implementation data type
c(RS_SWCT_03210)
[TPS_SWCT_01561] Application of data conversion to composite Autosar-
DataTypes dData conversion is also applicable for composite AutosarDataTypes.
The actual conversion, however, shall be individually applied to each leaf element of a
given composite AutosarDataType.c(RS_SWCT_03210)
c(RS_SWCT_03210)
[TPS_SWCT_01550] Definition of reciprocal linear data scaling dThe term Recip-
rocal Linear Scaling is defined as follows:
1. The involved AutosarDataTypes refer to CompuMethods of category RAT_-
FUNC.
2. The CompuMethods refer either to compatible Units or to Units that in turn
refer to compatible definitions of PhysicalDimension.
3. Both CompuMethods fulfill the following condition:
if the definitions of the isolated parts were created by means of defining primitive Im-
plementationDataTypeElements within the context of a composite Implemen-
tationDataType.
And because it is possible to regard the “mission statement” of a DataPrototype
that refers to a CompuMethod of category BITFIELD_TEXTTABLE as to mimic the
semantics of a structured data type it is also possible to apply some rules that are
already in place for structured data types in this specific case as well.
This conclusion, in combination with the existence of [TPS_SWCT_01551], sets the
stage for [TPS_SWCT_01583].
[TPS_SWCT_01583] Completeness of TextTableMapping is not a requirement
dIf a DataPrototypeMapping contains one or more TextTableMapping(s) where
the DataPrototype on the sender side refers to a CompuMethod of category
BITFIELD_TEXTTABLE it is not required that for each possible value and each pos-
sible bit mask on the sender side corresponding values on the receiver side are speci-
fied.c(RS_SWCT_03210)
With respect to [TPS_SWCT_01583] it is still important to observe that within a single
mask all values on the sender side shall have a mapping to the receiver side.
Otherwise, the RTE generator would not be able to create mapping code that unam-
biguously takes care of mapping the correct values onto each other.
[constr_1313] Completeness of TextTableMapping for the values of a given bit
mask on the sender side dIf a DataPrototypeMapping contains one or more
TextTableMapping(s) where the DataPrototype on the sender side refers to a
CompuMethod of category BITFIELD_TEXTTABLE then all DataPrototypeMap-
ping.textTableMapping shall aggregate a collection of TextTableMapping.val-
uePair where each possible value of the sender bit mask7 is represented by
exactly one TextTableValuePair.firstValue ([TPS_SWCT_01163]) or Text-
TableValuePair.secondValue ([TPS_SWCT_01164]).
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1304] Existence of attribute bitfieldTextTableMaskFirst dThe at-
tribute bitfieldTextTableMaskFirst shall be defined only if the firstDat-
aPrototype of a DataPrototypeMapping refers to a CompuMethod that has the
value of category set to BITFIELD_TEXTTABLE.
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1305] Existence of attribute bitfieldTextTableMaskSecond dThe at-
tribute bitfieldTextTableMaskSecond shall be defined only if the secondDat-
aPrototype of a DataPrototypeMapping refers to a CompuMethod that has the
value of category set to BITFIELD_TEXTTABLE.
7
Depending on the applicable case this means either bitfieldTextTableMaskFirst (ap-
plies if [TPS_SWCT_01163] is in place) or bitfieldTextTableMaskSecond for the case of
[TPS_SWCT_01164].
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1306] Limitation of TextTableMapping for CompuMethods that have
the value of category set to BITFIELD_TEXTTABLE dFor any TextTableMap-
ping where both firstDataPrototype and secondDataPrototype refer to Com-
puMethods that have the value of category set to BITFIELD_TEXTTABLE and
where the attribute TextTableMapping.valuePair exists the value of attribute
TextTableMapping.identicalMapping shall be set to false.
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1307] Consistency of values and masks in TextTableMapping dIf a
TextTableMapping element defines bit masks as bitfieldTextTableMask-
First or bitfieldTextTableMaskSecond then all contained TextTableMap-
ping.valuePair.firstValues as well as all TextTableMapping.valuePair.
secondValues shall not specify a value that would be ruled out when - depending on
the given value of TextTableMapping.mappingDirection - the relevant bit mask
is applied.
This rule shall be imposed at the time when the RTE is generated.c()
Example for [constr_1307]: For a bit mask 0b00001000 only the corresponding values
8 and 0 are allowed.
Class TextTableMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines the mapping of two DataPrototypes typed by AutosarDataTypes that refer to CompuMethods of
category TEXTTABLE, SCALE_LINEAR_AND_TEXTTABLE or BITFIELD_TEXTTABLE.
Base ARObject
Attribute Type Mult. Kind Note
bitfieldTextTable PositiveInteger 0..1 attr This attribute can be used to support the mapping of bit
MaskFirst field to bit field, boolean values to bit fields, and vice
versa. The attribute defines the bit mask for the first
element of the TextTableMapping.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
bitfieldTextTable PositiveInteger 0..1 attr This attribute can be used to support the mapping of bit
MaskSecond field to bit field, boolean values to bit fields, and vice
versa. The attribute defines the bit mask for the second
element of the TextTableMapping.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
identical Boolean 0..1 attr If identicalMapping is set == true the values of the two
Mapping referenced DataPrototypes do not need any conversion of
the values.
mapping MappingDirectionEnum 0..1 attr Specifies the conversion direction for which the TextTable
Direction Mapping is applicable.
valuePair TextTableValuePair * aggr Defines a pair of values which are translated into each
other.
Table 4.41: TextTableMapping
Class TextTableValuePair
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note Defines a pair of text values which are translated into each other.
Base ARObject
Attribute Type Mult. Kind Note
firstValue Numerical 0..1 attr Value of first DataPrototype provided similar to a
numerical ValueSpecification which is intended to be
assigned to a Primitive data element. Note that the
numerical value is a variant, it can be computed by a
formula.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
secondValue Numerical 0..1 attr Value of second DataPrototype provided similar to a
numerical ValueSpecification which is intended to be
assigned to a Primitive data element. Note that the
numerical value is a variant, it can be computed by a
formula.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
0..1
«enumeration»
MappingDirectionEnum
+textTableMapping 0..2
bidirectional
TextTableMapping firstToSecond
secondToFirst
+ identicalMapping: Boolean [0..1]
TextTableValuePair
+ mappingDirection: MappingDirectionEnum [0..1]
+valuePair
«atpVariation» «atpVariation»
+ bitfieldTextTableMaskFirst: PositiveInteger [0..1] 0..* + firstValue: Numerical [0..1]
+ bitfieldTextTableMaskSecond: PositiveInteger [0..1] + secondValue: Numerical [0..1]
TransformationTechnology DataTransformation
protocol=SomeIp transformerChain dataTransformationKind=
asymmetricToByteArray
transformerChain firstToSecondDataTransformation
DataTransformation
dataTransformationKind=
secondToFirstDataTransformation
asymmetricFromByteArray
VariableAndParameterMapping
DataPrototypeMapping
SwComponentPrototype typed by
NvBlockSwComponentType SwComponentPrototype typed by
ServiceSwComponentType (Dcm)
NvDataInterface
RecordElement 1 dataElement
PRPortPrototype
RecordElement 2 Byte-Array
PRPortPrototype
RecordElement 3
RecordElement 4
Figure 4.23: Use case for the existence of asymmetric data transformation in both direc-
tions
Class DataTransformation
Package M2::AUTOSARTemplates::SystemTemplate::Transformer
Note A DataTransformation represents a transformer chain. It is an ordered list of transformers.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
data DataTransformationKind 0..1 attr This attribute controls the kind of DataTransformation to
Transformation Enum be applied.
Kind
executeDespite Boolean 1 attr Specifies whether the transformer chain is executed even
Data if no input data are available.
Unavailability
transformer Transformation 1..* ref This attribute represents the definition of a chain of
Chain (ordered) Technology transformers that are supposed to be executed according
to the order of being referenced from DataTransformation.
4.4.1 Introduction
«atpVariation,atpSplitable»
+port 0..*
AtpBlueprintable GeneralAnnotation
AtpPrototype +senderReceiverAnnotation
SenderReceiverAnnotation
PortPrototype 0..* constraints
{"port's interface is a SenderReceiverInterface"}
GeneralAnnotation
+delegatedPortAnnotation DelegatedPortAnnotation
0..1 constraints
{aggregating PortPrototype is a port of a CompositionSwComponentType (DelegatedPort)}
+failureMonitoring GeneralAnnotation
IoHwAbstractionServerAnnotation
0..1
+ioHwAbstractionServerAnnotation constraints
{"port's interface is a client/server interface using the operations GET and SET"}
0..*
GeneralAnnotation
+parameterPortAnnotation ParameterPortAnnotation
constraints
0..*
{"The corresponding port interface shall be a ParameterInterface."}
GeneralAnnotation
+modePortAnnotation ModePortAnnotation
constraints
0..*
{"The corresponding port interface shall be a ModeInterface."}
GeneralAnnotation
+nvDataPortAnnotation NvDataPortAnnotation
0..* constraints
{"The corresponding port interface shall be a NvDataInterface."}
GeneralAnnotation
+triggerPortAnnotation TriggerPortAnnotation
0..* constraints
{"The corresponding port interface shall be a TriggerInterface."}
GeneralAnnotation
+clientServerAnnotation ClientServerAnnotation
0..* constraints
{"The corresponding PortInterface shall be a ClientServerInterface."}
4.4.2 SenderReceiverAnnotation
Class SenderAnnotation
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Annotation of a sender port, specifying properties of data elements that don’t affect communication or
generation of the RTE.
Base ARObject, GeneralAnnotation, SenderReceiverAnnotation
Attribute Type Mult. Kind Note
– – – – –
Table 4.47: SenderAnnotation
Class ReceiverAnnotation
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Annotation of a receiver port, specifying properties of data elements that don’t affect communication or
generation of the RTE. The given attributes are requirements on the required data.
Base ARObject, GeneralAnnotation, SenderReceiverAnnotation
Attribute Type Mult. Kind Note
signalAge MultidimensionalTime 0..1 aggr The maximum allowed age of the signal since it was
originally read by a sensor. This is a requirement
specified on the receiver side.
Enumeration ProcessingKindEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Kind of processing which has been applied to a data element.
Literal Description
5
4
Enumeration ProcessingKindEnum
filtered Indicates that a raw signal has been manipulated by some application software components by using
filters.
Tags:atp.EnumerationLiteralIndex=0
none Indicates that none of the other option apply.
Tags:atp.EnumerationLiteralIndex=1
raw Specifies that a signal is taken directly from the basic software modules, i.e. from the ECU abstraction
layer. It indicates to a developer that the control algorithm in the software has to provide filters.
Tags:atp.EnumerationLiteralIndex=2
Enumeration DataLimitKindEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Indicates whether the data element carries a minimum or maximum value, thereby limiting the current
range of another value.
Literal Description
max Limitation to maximum value
Tags:atp.EnumerationLiteralIndex=0
min Limitation to minimum value
Tags:atp.EnumerationLiteralIndex=1
none No limitation applicable
Tags:atp.EnumerationLiteralIndex=2
[TPS_SWCT_01206] Min and Max annotations are valid for a certain amount of
time dThe Min and Max annotations are valid for a certain amount of time. The value
is likely to change to another valid value while the ECU is running. e.g. the maximal
torque which can be requested from an engine is a typical use-case.c(RS_SWCT_-
02110)
This value might vary depending on e.g. the status of the climate control system.
Therefore, these annotations shall not be mismatched with the min and max attributes
of CompuMethods.
The application level port annotations for sender/receiver communication have to be
associated to each dataElement in a PortPrototype, e.g. there might be a “raw”
dataElement and a “filtered” dataElement in the same PortPrototype!
[TPS_SWCT_01207] VariableDataPrototypes use the same application-level
SenderReceiverAnnotation dFurthermore, if two VariableDataPrototypes
use the same application-level SenderReceiverAnnotation, a reference from the
annotation to the VariableDataPrototypes will be established by an appropriate
tool.c(RS_SWCT_02110)
GeneralAnnotation
SenderReceiverAnnotation
AtpBlueprintable AutosarDataPrototype
AtpPrototype +senderReceiverAnnotation + computed: Boolean [0..1] +dataElement
VariableDataPrototype
PortPrototype + limitKind: DataLimitKindEnum [0..1]
0..* + processingKind: ProcessingKindEnum [0..1] 0..1
constraints
{"port's interface is a SenderReceiverInterface"}
«enumeration» «enumeration»
ProcessingKindEnum DataLimitKindEnum MultidimensionalTime
none none
SenderAnnotation ReceiverAnnotation +signalAge + cseCode: CseCodeType
raw min + cseCodeFactor: Integer
filtered max 0..1
4.4.3 ClientServerAnnotation
Within the ECU-Abstraction Layer there are ECU-signals defined. These signals rep-
resent the electrical signals as they arrive in the micro-controller peripheral and are
fetched from the registers via the MCAL.
Access to the I/O Hardware Abstraction Layer is done via service interfaces, i.e. the I/O
Hardware Abstraction Layer provides GET- and SET-operations at the specified service
ports of a SensorActuatorSwComponentType.
[TPS_SWCT_01524] Usage of IoHwAbstractionServerAnnotation dIoHwAb-
stractionServerAnnotation can be used for all kinds of PortInterfaces ex-
cept NvDataInterface.c(RS_SWCT_02110)
Class IoHwAbstractionServerAnnotation
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note The IoHwAbstractionServerAnnotation will only be used from a sensor- or an actuator component while
interacting with the IoHwAbstraction layer.
Note that the "server" in the name of this meta-class is not meant to restrict the usage to ClientServer
Interfaces.
Base ARObject, GeneralAnnotation
Attribute Type Mult. Kind Note
age MultidimensionalTime 0..1 aggr In case of a SET operation, the age will be interpreted as
Delay while in a GET operation (input) it specifies the
Lifetime of the signal within the IoHwAbstraction Layer
Tags:xml.sequenceOffset=10
argument ArgumentDataPrototype 0..1 ref Reference to the corresponding ArgumentDataPrototype.
Tags:xml.sequenceOffset=20
bswResolution Float 0..1 attr This value is determined by an appropriate combination
of the range, the unit as well as the data-elements type,
i.e. (ecuSignalRange.upperLimit-ecuSignalRange.lower
Limit) / (2ˆdatatypelength - 1)
Tags:xml.sequenceOffset=30
dataElement VariableDataPrototype 0..1 ref Reference to the corresponding VariableDataPrototype.
Tags:xml.sequenceOffset=40
5
4
Class IoHwAbstractionServerAnnotation
failure PortPrototype 0..1 ref This is only applicable in SET operations. If it is enabled,
Monitoring the IoHwAbstraction layer will monitor the result of the
operation and issue an diagnostic signal. This means
especially, that an additional client-server port has to be
created. Tools can use this information to cross-check
whether for each data-element in a SET operation with
FailureMonitoring enabled an additional port is created
The referenced port monitors a failure in the to be
monitored VariableDataPrototype of the IoHwAbstraction
layer. The referenced port has to be another port of the
same Actuator or Sensor Component.
Tags:xml.sequenceOffset=50
filtering FilterDebouncingEnum 0..1 attr This attribute is used to indicate what kind of filtering/
Debouncing debouncing has been put to the signal in the IoHw
Abstraction layer.
rawData means that no modification of the signal has
been applied. This is the default value debounceData
means that the signal is a mean value waitTimeData
means that the signal is delivered by a GET operation
after a certain amount of time
Tags:xml.sequenceOffset=60
pulseTest PulseTestEnum 0..1 attr This attribute indicates to the connected SensorActuator
SwComponentType whether the VariableDataPrototype
can be used to generate pulse test sequences using the
IoHwAbstraction layer
Tags:xml.sequenceOffset=70
trigger Trigger 0..1 ref Reference to the corresponding Trigger.
Tags:xml.sequenceOffset=80
AtpStructureElement
Identifiable
ClientServerOperation
AtpBlueprintable DataInterface
AtpPrototype + diagArgIntegrity: Boolean [0..1] SenderReceiverInterface
PortPrototype
0..1 +failureMonitoring
«atpVariation»
+ioHwAbstractionServerAnnotation 0..* +argument 0..* {ordered}
GeneralAnnotation +argument AutosarDataPrototype
IoHwAbstractionServerAnnotation ArgumentDataPrototype
0..1 +dataElement 0..*
+ bswResolution: Float [0..1]
+ filteringDebouncing: FilterDebouncingEnum [0..1] +dataElement AutosarDataPrototype
+ pulseTest: PulseTestEnum [0..1] VariableDataPrototype
0..1
«enumeration»
PulseTestEnum
+trigger 0..1 disable
+age 0..1 AtpStructureElement enable
«enumeration»
Identifiable FilterDebouncingEnum
MultidimensionalTime Trigger
+triggerPeriod rawData
PortInterface
+ cseCode: CseCodeType +trigger
0..1 + swImplPolicy: TriggerInterface debounceData
+ cseCodeFactor: Integer SwImplPolicyEnum [0..1] 0..* waitTimeDate
Enumeration FilterDebouncingEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note This enumeration defines possible values for the filter debouncing strategy.
Literal Description
debounceData The signal is a mean value
Tags:atp.EnumerationLiteralIndex=0
rawData Means that no modification of the signal has been applied. This is the default value
Tags:atp.EnumerationLiteralIndex=1
waitTimeDate The signal is delivered by a GET operation after a certain amount of time
Tags:atp.EnumerationLiteralIndex=2
Enumeration PulseTestEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note This element indicates to the connected Actuator Software component whether the data-element can
be used to generate pulse test sequences using the IoHwAbstraction layer
Literal Description
disable Disables the pulse test
Tags:atp.EnumerationLiteralIndex=0
enable Enables the pulse test
Tags:atp.EnumerationLiteralIndex=1
The main use-case is to allow easy access to the information which calibration param-
eters influence the data on the PortPrototype.
GeneralAnnotation
AtpBlueprintable AutosarDataPrototype
ParameterPortAnnotation +parameter
AtpPrototype +parameterPortAnnotation ParameterDataPrototype
PortPrototype constraints
0..* 0..1
{"The corresponding port interface shall be a
ParameterInterface."}
The main use-case is to allow for the definition of additional information related to the
mode declaration group prototype.
Class NvDataPortAnnotation
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Annotation to a port regarding a certain VariableDataPrototype.
Base ARObject, GeneralAnnotation
Attribute Type Mult. Kind Note
variable VariableDataPrototype 0..1 ref The instance of nv data annotated.
The main use-case is to define additional information related to the non-volatile data
elements.
AtpBlueprintable GeneralAnnotation AutosarDataPrototype
+nvDataPortAnnotation +variable
AtpPrototype NvDataPortAnnotation VariableDataPrototype
PortPrototype 0..* 0..1
Enumeration SignalFanEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::ApplicationAttributes
Note Signal Fan inside the Composition Component Type.
Literal Description
nfold The connections internally in the CompositionSwComponentType via DelegationSwConnectors and
AssemblySwConnectors are defined in a way that at least one data element present in the S/R
interface or one ClientServerOperation in the C/S interface of the outer PortPrototype is involved in a
1:n or n:1 communication pattern.
Tags:atp.EnumerationLiteralIndex=0
single The connections internally in the CompositionSwComponentType via DelegationSwConnectors and
AssemblySwConnectors are defined in a way that each VariableDataPrototype present in the S/R
interface or ClientServerOperation in the C/S interface of the outer PortPrototype is involved in a 1:1
communication pattern only.
Tags:atp.EnumerationLiteralIndex=1
PortPrototype
AbstractRequiredPortPrototype
+requiredComSpec 0..*
AbstractProvidedPortPrototype
RPortPrototype RPortComSpec
PRPortPrototype
+ mayBeUnconnected: Boolean [0..1]
+providedComSpec 0..*
AbstractRequiredPortPrototype
PPortPrototype PPortComSpec
PRPortPrototype
4
Class RPortComSpec (abstract)
Subclasses ClientComSpec, ModeSwitchReceiverComSpec, NvRequireComSpec, ParameterRequireComSpec,
ReceiverComSpec
Attribute Type Mult. Kind Note
– – – – –
Table 4.63: RPortComSpec
PortInterface ComSpec
SenderReceiverInterface SenderComSpec, ReceiverComSpec
ClientServerInterface ClientComSpec, ServerComSpec
ModeSwitchInterface ModeSwitchSenderComSpec, ModeSwitchReceiverComSpec
ParameterInterface ParameterProvideComSpec, ParameterRequireComSpec
NvDataInterface NvRequireComSpec, NvProvideComSpec
Figure 4.35 shows the meta-model of the communication attributes relevant sender-
receiver communication at an RPortPrototype.
DataPrototype +leafElement
CompositeNetworkRepresentation
ApplicationCompositeElementDataPrototype «instanceRef»
0..1
0..* +compositeNetworkRepresentation
+networkRepresentation 0..1
AbstractAccessPoint
ReceiverComSpec
AtpStructureElement
Identifiable +replaceWith + handleOutOfRange: HandleOutOfRangeEnum [0..1]
VariableAccess 0..1 + handleOutOfRangeStatus: HandleOutOfRangeStatusEnum [0..1]
+ maxNoNewOrRepeatedData: PositiveInteger [0..1]
+ scope: VariableAccessScopeEnum [0..1] + syncCounterInit: PositiveInteger [0..1]
«atpVariation»
+ maxDeltaCounterInit: PositiveInteger [0..1]
DataPrototype + usesEndToEndProtection: Boolean [0..1]
AutosarDataPrototype +dataElement
0..1
VariableDataPrototype
NonqueuedReceiverComSpec QueuedReceiverComSpec
4
Class ReceiverComSpec (abstract)
syncCounterInit PositiveInteger 0..1 attr Number of Data required for validating the consistency of
the counter that shall be received with a valid counter (i.e.
counter within the allowed lock-in range) after the
detection of an unexpected behavior of a received
counter.
Caveat: The E2E wrapper approach involves
technologies that are not subjected to the AUTOSAR
standard and is superseded by the superior E2E
transformer approach (which is fully standardized by
AUTOSAR). Hence, new projects (without legacy
constraints due to carry-over parts) shall use the fully
standardized E2E transformer approach.
transformation TransformationCom * aggr This references the TransformationComSpecProps which
ComSpecProps SpecProps define port-specific configuration for data transformation.
usesEndToEnd Boolean 0..1 attr This indicates whether the corresponding dataElement
Protection shall be transmitted using end-to-end protection.
Caveat: The E2E wrapper approach involves
technologies that are not subjected to the AUTOSAR
standard and is superseded by the superior E2E
transformer approach (which is fully standardized by
AUTOSAR). Hence, new projects (without legacy
constraints due to carry-over parts) shall use the fully
standardized E2E transformer approach.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
Enumeration HandleOutOfRangeStatusEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note This enumeration defines how the RTE handles values that are out of range.
Literal Description
indicate The RTE sets the return status to RTE_E_OUT_OF_RANGE if the received value is out of range and
the attribute handleOutOfRange is not set to "none" or "invalid".
Tags:atp.EnumerationLiteralIndex=0
silent The RTE sets the return status to RTE_E_OK
Tags:atp.EnumerationLiteralIndex=1
Class NonqueuedReceiverComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes specific to non-queued receiving.
Base ARObject, RPortComSpec, ReceiverComSpec
Attribute Type Mult. Kind Note
aliveTimeout TimeValue 0..1 attr Specify the amount of time (in seconds) after which the
software component (via the RTE) needs to be notified if
the corresponding data item have not been received
according to the specified timing description.
If the aliveTimeout attribute is 0 no timeout monitoring
shall be performed.
5
4
Class NonqueuedReceiverComSpec
enableUpdate Boolean 0..1 attr This attribute controls whether application code is entitled
to check whether the value of the corresponding Variable
DataPrototype has been updated.
filter DataFilter 0..1 aggr The applicable filter algorithm for filtering the value of the
corresponding dataElement.
handleData Boolean 0..1 attr If this attribute is set to true, then the Rte_IStatus API
Status shall exist. If the attribute does not exist or is set to false,
then the Rte_IStatus API may still exist in response to the
existence of further conditions.
handleNever Boolean 0..1 attr This attribute specifies whether for the corresponding
Received VariableDataPrototype the "never received" flag is
available. If yes, the RTE is supposed to assume that
initially the VariableDataPrototype has not been received
before. After the first reception of the corresponding
VariableDataPrototype the flag is cleared.
• If the value of this attribute is set to "true" the flag
is required.
• If set to "false", the RTE shall not support the
"never received" functionality for the
corresponding VariableDataPrototype.
handleTimeout HandleTimeoutEnum 0..1 attr This attribute controls the behavior with respect to the
Type handling of timeouts.
initValue ValueSpecification 0..1 aggr Initial value to be used in case the sending component is
not yet initialized. If the sender also specifies an initial
value, then the receiver’s value will be used.
timeout ValueSpecification 0..1 aggr This attribute represents the substitution value applicable
Substitution in the case of a timeout.
Value
Table 4.67: NonqueuedReceiverComSpec
Class QueuedReceiverComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes specific to queued receiving.
Base ARObject, RPortComSpec, ReceiverComSpec
Attribute Type Mult. Kind Note
queueLength PositiveInteger 0..1 attr Length of queue for received events.
4
Class ReceptionComSpecProps
dataUpdate TimeValue 0..1 attr This attribute defines the period in which the application
Period shall check for updated data. This attribute is used for the
configuration of the E2E protection, but may also indicate
a general data reception period.
timeout TimeValue 0..1 attr This attribute defines the time interval after which the
application shall assume that the to be received data
reception has timed out, i.e. the respective data has not
been received for that amount of time.
Table 4.69: ReceptionComSpecProps
Enumeration HandleTimeoutEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Strategies of handling a reception timeout violation.
Literal Description
none If set to none no replacement shall take place.
Tags:atp.EnumerationLiteralIndex=0
replace If set to replace, the replacement value shall be the ComInitValue.
Tags:atp.EnumerationLiteralIndex=1
replaceByTimeout If set to replace, the replacement value shall be the timeout substitution value.
SubstitutionValue
Tags:atp.EnumerationLiteralIndex=2
Primitive TimeValue
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
in the physical unit second.
Tags:
xml.xsd.customType=TIME-VALUE
xml.xsd.type=double
• Attribute SenderReceiverInterface.invalidationPolicy.handleIn-
valid is set to the value externalReplacement.
This rule shall be applied at the time when the contract phase genera-
tion is executed.c()
[TPS_SWCT_01753] Application of compatibility rules for ReceiverComSpec.
replaceWith dCompatibility rules as formulated by [constr_1068] and [constr_1187]
shall be applicable for the reference ReceiverComSpec.replaceWith.c()
[TPS_SWCT_01223] networkRepresentation defines how a specific dataEle-
ment is represented on a communication bus dFor sender-receiver communication,
it is possible to specify how dataElements are represented given that the communi-
cation requires the usage of a dedicated communication bus.
That is, by means of the networkRepresentation it is possible to define how a
specific dataElement is represented on a communication bus. For this purpose the
networkRepresentation is implemented as an aggregation of SwDataDefProps.c
()
[TPS_SWCT_01224] CompuMethods of dataElement and the networkRepre-
sentation are used for conversion purposes dThe attached CompuMethods of
both the dataElement and the networkRepresentation can be used to identify
the conversion between the two.
The advantage of this approach is that this can also be used without any modifications
in combination with a general remapping and rescaling of dataElements between
different SwComponentTypes, regardless whether they are located on the same or on
different ECUs.c()
Please note that the decision whether to take the networkRepresentation for data
mapping is done in the context of the AUTOSAR System Template [10]. Please find
more detailed information about this aspect in the applicable specification.
[TPS_SWCT_01452] Applicability of networkRepresentation for Applica-
tionCompositeDataType dThe aggregation of networkRepresentation at the
ReceiverComSpec or SenderComSpec only applies for dataElements typed by
ApplicationPrimitiveDataTypes.
For the case of using an ApplicationCompositeDataType an additional mecha-
nism shall be used.
In particular, compositeNetworkRepresentation shall be used to define the net-
workRepresentation of leaf elements of ApplicationCompositeDataTypes.c
()
[constr_1196] Existence of networkRepresentation vs. compositeNet-
workRepresentation dIf a ReceiverComSpec or SenderComSpec aggregates
networkRepresentation it shall not aggregate compositeNetworkRepresen-
tation (and vice versa) at the time when the contract phase genera-
tion is executed.c()
The communication attributes on the sender side are sketched in Figure 4.36.
[constr_1131] swImplPolicy and NonqueuedSenderComSpec dThe attribute
swImplPolicy of a dataElement referenced by a NonqueuedSenderComSpec
shall not be set to the value queued at the time when the contract phase
generation is executed.c()
[constr_1132] swImplPolicy and QueuedSenderComSpec dThe attribute swIm-
plPolicy of a dataElement referenced by a QueuedSenderComSpec shall be
set to the value queued at the time when the contract phase genera-
tion is executed.c()
0..* +compositeNetworkRepresentation
«enumeration» «instanceRef»
HandleOutOfRangeEnum +providedComSpec 0..* +networkRepresentation 0..1 +leafElement 0..1
none «atpVariation» DataPrototype
ignore PPortComSpec
SwDataDefProps ApplicationCompositeElementDataPrototype
saturate
default
invalid
+networkRepresentation 0..1
externalReplacement
DataPrototype
SenderComSpec
AutosarDataPrototype
+ handleOutOfRange: HandleOutOfRangeEnum [0..1]
+dataElement
«atpVariation»
+ usesEndToEndProtection: Boolean [0..1] 0..1
Please note:
• SenderComSpec.usesEndToEndProtection does not have any influence on
code generation.
It could be used, for example, by a validation framework to make sure that, if set
to True the dataElement meets a transformer configuration for all respective
SwConnectors connecting to the PortPrototype that owns the SenderCom-
Spec.
• SenderComSpec.usesEndToEndProtection could be used as a statement
from the application developer that the given dataElement shall be end-to-end
protected.
Class NonqueuedSenderComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes for non-queued sender/receiver communication (sender side)
Base ARObject, PPortComSpec, SenderComSpec
Attribute Type Mult. Kind Note
dataFilter DataFilter 0..1 aggr The applicable filter algorithm for filtering the value of the
corresponding dataElement.
initValue ValueSpecification 0..1 aggr Initial value to be sent if sender component is not yet fully
initialized, but receiver needs data already.
Class TransmissionComSpecProps
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note This meta-class defines a set of transmission attributes which the application software is assumed to
implement.
Base ARObject
Attribute Type Mult. Kind Note
dataUpdate TimeValue 0..1 attr This attribute defines the period in which the application is
Period assumed to transmit the respective data.
minimumSend TimeValue 0..1 attr This attribute defines the minimum interval between two
Interval consecutive transmissions of the respective data the
application is assumed to ensure.
transmission TransmissionMode 0..1 attr The attribute defines the mode in which the application is
Mode DefinitionEnum assumed to transmit the respective data.
Class TransmissionAcknowledgementRequest
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Requests transmission acknowledgement that data has been sent successfully. Success/failure is
reported via a SendPoint of a RunnableEntity.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class TransmissionAcknowledgementRequest
timeout TimeValue 0..1 attr Number of seconds before an error is reported or in case
of allowed redundancy, the value is sent again.
Enumeration TransmissionModeDefinitionEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note This meta-class defines possible settings for the transmission mode.
Literal Description
cyclic The data is assumed to be transmitted in a cyclic manner. The cycle is defined by dataUpdatePeriod.
Tags:atp.EnumerationLiteralIndex=0
cyclicAndOn The data is assumed to be transmitted in a cyclic manner (with cycle time dataUpdatePeriod) and
Change additionally there may be arbitrary transmission if the data value changes (minimumSendInterval to
be respected, if defined).
Tags:atp.EnumerationLiteralIndex=2
triggered The data is assumed to be transmitted in an arbitrary manner (minimumSendInterval to be respected,
if defined).
Tags:atp.EnumerationLiteralIndex=1
Class CompositeNetworkRepresentation
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note This meta-class is used to define the network representation of leaf elements of composite application
data types.
Base ARObject
Attribute Type Mult. Kind Note
leafElement ApplicationComposite 0..1 iref This represents that leaf element of an application
ElementDataPrototype composite data type.
InstanceRef implemented by:ApplicationComposite
ElementInPortInterfaceInstanceRef
network SwDataDefProps 0..1 aggr The SwDataDefProps owned by the CompositeNetwork
Representation Representation are used to define the network
representation of the leaf element of an Application
CompositeDataType.
Figure 4.37 shows the model of the communication attributes relevant for defining data
filters.
DataFilter «enumeration»
DataFilterTypeEnum
+ dataFilterType: DataFilterTypeEnum [0..1]
+ mask: UnlimitedInteger [0..1] always
+ max: UnlimitedInteger [0..1] maskedNewEqualsX
+ min: UnlimitedInteger [0..1] maskedNewDiffersMaskedOld
+ offset: PositiveInteger [0..1] maskedNewDiffersX
+ period: PositiveInteger [0..1] never
+ x: UnlimitedInteger [0..1] newIsWithin
newIsOutside
oneEveryN
Class DataFilter
Package M2::AUTOSARTemplates::CommonStructure::Filter
Note Base class for data filters. The type of the filter is specified in attribute dataFilterType. Some of the filter
types require additional arguments which are specified as attributes of this class.
Base ARObject
Attribute Type Mult. Kind Note
dataFilterType DataFilterTypeEnum 0..1 attr This attribute specifies the type of the filter.
mask UnlimitedInteger 0..1 attr Mask for old and new value.
max UnlimitedInteger 0..1 attr Value to specify the upper boundary
min UnlimitedInteger 0..1 attr Value to specify the lower boundary
offset PositiveInteger 0..1 attr Specifies the initial number of messages to occur before
the first message is passed
period PositiveInteger 0..1 attr Specifies number of messages to occur before the
message is passed again
x UnlimitedInteger 0..1 attr Value to compare with
4
Enumeration DataFilterTypeEnum
newIsOutside Pass a message if its value is outside a predefined boundary.
(min > new_value) OR (new_value > max)
Tags:atp.EnumerationLiteralIndex=5
newIsWithin Pass a message if its value is within a predefined boundary.
min <= new_value <= max
Tags:atp.EnumerationLiteralIndex=6
oneEveryN Pass a message once every N message occurrences.
Algorithm: occurrence % period == offset
Start: occurrence = 0.
Each time the message is received or transmitted, occurrence is incremented by 1 after filtering.
Length of occurrence is 8 bit (minimum).
Tags:atp.EnumerationLiteralIndex=7
8
As a general rule, queued communication between ApplicationSwComponentType and
NvBlockSwComponentType is not supported by AUTOSAR. The tables 4.82 (referenced by [con-
str_10071]) and 4.83 (referenced by [constr_10072]) nevertheless contain a column that represents
the case of queued communication for the sake of completeness. But consequently, this column is
consistently filled with “n/a” entries in the respective tables.
Sender ApplicationSwComponentType
Receiver NvBlockSwComponentType
Queuing Configuration non-queued queued
SenderComSpec.transmissionAcknowledge d/c n/a
SenderComSpec.dataElement 1 n/a
SenderComSpec.handleOutOfRange d/c n/a
SenderComSpec.usesEndToEndProtection d/c n/a
SenderComSpec.transmissionProps.dataUpdatePeriod 0..1 n/a
SenderComSpec.transmissionProps.minimumSendInterval 0..1 n/a
SenderComSpec.transmissionProps.transmissionMode 0..1 n/a
SenderComSpec.networkRepresentation d/c n/a
SenderComSpec.compositeNetworkRepresentation d/c n/a
NonqueuedSenderComSpec.dataFilter d/c n/a
NonqueuedSenderComSpec.initValue 0..1 n/a
Please note that the abbreviation “d/c” stands for “don’t care”.
[constr_10072] Allowed multiplicities of SenderComSpec attributes for commu-
nication between NvBlockSwComponentType and ApplicationSwComponent-
Type dThe allowed multiplicities for SenderComSpec attributes for a communica-
tion between NvBlockSwComponentType and ApplicationSwComponentType
are documented in Table 4.83.
This rule shall be imposed at the time when the RTE is generated.c()
Sender NvBlockSwComponentType
Receiver ApplicationSwComponentType
Queuing Configuration non-queued queued
ReceiverComSpec.replaceWith 0 n/a
ReceiverComSpec.dataElement 1 n/a
ReceiverComSpec.receptionProps.dataUpdatePeriod 0 n/a
ReceiverComSpec.receptionProps.timeout 0 n/a
ReceiverComSpec.usesEndToEndProtection 0 n/a
ReceiverComSpec.maxDeltaCounterInit 0 n/a
ReceiverComSpec.handleOutOfRange 0 n/a
ReceiverComSpec.handleOutOfRangeStatus 0 n/a
ReceiverComSpec.maxNoNewOrRepeatedData 0 n/a
ReceiverComSpec.syncCounterInit 0 n/a
ReceiverComSpec.transformationComSpecProps 0 n/a
ReceiverComSpec.networkRepresentation 0 n/a
ReceiverComSpec.compositeNetworkRepresentation 0 n/a
QueuedReceiverComSpec.queueLength n/a n/a
NonqueuedReceiverComSpec.filter 0 n/a
NonqueuedReceiverComSpec.timeoutSubstitutionValue 0 n/a
5
4
NonqueuedReceiverComSpec.initValue 0..1 n/a
NonqueuedReceiverComSpec.aliveTimeout 0 n/a
NonqueuedReceiverComSpec.enableUpdate 0 n/a
NonqueuedReceiverComSpec.handleDataStatus 0 n/a
NonqueuedReceiverComSpec.handleNeverReceived 0..1 n/a
NonqueuedReceiverComSpec.handleTimeoutType 0 n/a
AUTOSAR supports the handling of periodic data transmission and reception timeout
checking in the Classic AUTOSAR Basic Software layer. The definition of the transmis-
sion modes and time values is defined using the TPS_SystemTemplate [10].
The only value which is also available at the NonqueuedReceiverComSpec is the
aliveTimeout - as this value configures both communication stack timeout handling
(in case of remote communication) and RTE timeout handling (in case of local commu-
nication).
With the introduction of the transformer technology the aspects of periodic data trans-
mission and checking for timeout on reception may have to be implemented by the
application code. The main reason is that the E2E-Transformer needs to be called
periodically in order to keep its state machine up to date.
So, the application code needs to call the transmission / reception APIs periodically in
order to fulfill these timing requirements. But there may also be other reasons why the
application shall take care of the periodicity, for example in case the LdCom module
(which doesn’t have any timing features) is used.
The meta-classes TransmissionComSpecProps and ReceptionComSpecProps
have been introduced to define the expected communication behavior to be imple-
mented by the application code.
As the TransmissionComSpecProps and ReceptionComSpecProps define what
the expected communication behavior is, the values can also be utilized by commu-
nication (network) measurement tools to verify whether the application code actually
implements the attributes properly.
The attribute ReceptionComSpecProps.dataUpdatePeriod defines the time pe-
riod in which the receiving application shall call the reception API to check for new
data.
The communication aspects relevant for client communication are sketched in Figure
4.38.
+requiredComSpec PortPrototype
RPortComSpec
AbstractRequiredPortPrototype
0..*
+transformationComSpecProps Describable
ClientComSpec
TransformationComSpecProps
+ endToEndCallResponseTimeout: TimeValue [0..1] 0..*
AtpStructureElement
+operation Identifiable
ClientServerOperation
0..1
+ diagArgIntegrity: Boolean [0..1]
Class ClientComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Client-specific communication attributes (RPortPrototype typed by ClientServerInterface).
Base ARObject, RPortComSpec
Attribute Type Mult. Kind Note
endToEndCall TimeValue 0..1 attr This attribute defines the maximum time interval in which
Response the application shall expect the servers’s response (time
Timeout between the sending of the call invocation until the arrival
of the server’s response).
operation ClientServerOperation 0..1 ref This represents the corresponding ClientServerOperation.
transformation TransformationCom * aggr This references the TransformationComSpecProps which
ComSpecProps SpecProps define port-specific configuration for data transformation.
Note: on the AUTOSAR adaptive platform the ClientComSpec can also be used in
the context of RPortPrototypes typed by PortInterfaces that are not available
on the AUTOSAR classic platform. This is the motivation for the existence of [con-
str_1540].
[TPS_SWCT_01595] Semantics of attribute ClientComSpec.transformation-
ComSpecProps dThe attribute ClientComSpec.transformationComSpecProps
shall be used to configure PortPrototype-specific properties for data transforma-
tion in case of Client/Server inter-ECU communication for the reception of the server’s
response.c(RS_SWCT_03221)
The server side looks very similar but provides an attribute for specifying the queue
length.
+providedComSpec PortPrototype
PPortComSpec
AbstractProvidedPortPrototype
0..*
ServerComSpec
AtpStructureElement Describable
Identifiable TransformationComSpecProps
ClientServerOperation
Class ServerComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes for a server port (PPortPrototype and ClientServerInterface).
Base ARObject, PPortComSpec
Attribute Type Mult. Kind Note
operation ClientServerOperation 0..1 ref Operation these communication attributes apply to.
queueLength PositiveInteger 0..1 attr Length of call queue on the server side. The queue is
implemented by the RTE. The value shall be greater or
equal to 1. Setting the value of queueLength to 1 implies
that incoming requests are rejected while another request
that arrived earlier is being processed.
transformation TransformationCom * aggr This references the TransformationComSpecProps which
ComSpecProps SpecProps define port-specific configuration for data transformation.
This rule shall be imposed at the time when the RTE is generated.c()
[TPS_SWCT_01596] Semantics of attribute ServerComSpec.transformation-
ComSpecProps dThe attribute ServerComSpec.transformationComSpecProps
shall be used to configure PortPrototype-specific properties for data transforma-
tion in case of Client/Server inter-ECU communication for the reception of the client’s
request.c(RS_SWCT_03221)
See chapter 4.5.6 for details.
In analogy to the previous section, Figure 4.40 shows the meta-model elements rele-
vant for a mode switch communication.
On the sender side it is possible to specify that an acknowledgement is supposed to
be returned that indicates the successful processing of the mode switch request.
PortPrototype
PPortComSpec +providedComSpec
AbstractProvidedPortPrototype
0..*
AtpPrototype
ModeSwitchSenderComSpec +modeGroup
ModeDeclarationGroupPrototype
+ enhancedModeApi: Boolean [0..1] 0..1
+ queueLength: PositiveInteger [0..1] + swCalibrationAccess: SwCalibrationAccessEnum [0..1]
+modeSwitchedAck ModeSwitchedAckRequest
Class ModeSwitchSenderComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes of PPortPrototypes with respect to mode communication
Base ARObject, PPortComSpec
Attribute Type Mult. Kind Note
enhancedMode Boolean 0..1 attr This controls the creation of the enhanced mode API that
Api returns information about the previous mode and the next
mode. If set to "true" the enhanced mode API is
supposed to be generated. For more details please refer
to the SWS_RTE.
modeGroup ModeDeclarationGroup 0..1 ref ModeDeclarationGroupPrototype (of the same Port
Prototype Interface) to which these communication attributes apply.
5
4
Class ModeSwitchSenderComSpec
modeSwitched ModeSwitchedAck 0..1 aggr If this aggregation exists an acknowledgement for the
Ack Request successful processing of the mode switch request is
required.
queueLength PositiveInteger 0..1 attr Length of call queue on the mode user side. The queue is
implemented by the RTE. The value shall be greater or
equal to 1. Setting the value of queueLength to 1 implies
that incoming requests are rejected while another request
that arrived earlier is being processed.
Class ModeSwitchedAckRequest
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Requests acknowledgements that a mode switch has been proceeded successfully
Base ARObject
Attribute Type Mult. Kind Note
timeout TimeValue 0..1 attr Number of seconds before an error is reported or in case
of allowed redundancy, the value is sent again.
AtpPrototype
ModeSwitchReceiverComSpec +modeGroup ModeDeclarationGroupPrototype
+ enhancedModeApi: Boolean [0..1] 0..1 +
+ supportsAsynchronousModeSwitch: Boolean [0..1] swCalibrationAccess: SwCalibrationAccessEnum [0..1]
Class ModeSwitchReceiverComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note Communication attributes of RPortPrototypes with respect to mode communication
Base ARObject, RPortComSpec
Attribute Type Mult. Kind Note
enhancedMode Boolean 0..1 attr This controls the creation of the enhanced mode API that
Api returns information about the previous mode and the next
mode. If set to "true" the enhanced mode API is
supposed to be generated. For more details please refer
to the SWS_RTE.
modeGroup ModeDeclarationGroup 0..1 ref ModeDeclarationGroupPrototype (of the same Port
Prototype Interface) to which these communication attributes apply.
supports Boolean 0..1 attr This attribute controls the behavior of the corresponding
Asynchronous RPortPrototype with respect to the question whether it
ModeSwitch can deal with asynchronous mode switch requests, i.e. if
set to true, the RPortPrototype is able to deal with an
asynchronous mode switch request.
PortPrototype
PPortComSpec +providedComSpec
AbstractProvidedPortPrototype
0..*
+parameter AutosarDataPrototype
ValueSpecification +initValue ParameterProvideComSpec
ParameterDataPrototype
+ shortLabel: Identifier [0..1] 0..1 0..1
Class ParameterProvideComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note "Communication" specification that applies to parameters on the provided side of a connection.
Base ARObject, PPortComSpec
Attribute Type Mult. Kind Note
initValue ValueSpecification 0..1 aggr The initial value applicable for the corresponding
ParameterDataPrototype.
parameter ParameterData 0..1 ref The ParameterDataPrototype to which the Parameter
Prototype ComSpec applies.
+parameter AutosarDataPrototype
ValueSpecification +initValue ParameterRequireComSpec
ParameterDataPrototype
+ shortLabel: Identifier [0..1] 0..1 0..1
Class ParameterRequireComSpec
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note "Communication" specification that applies to parameters on the required side of a connection.
Base ARObject, RPortComSpec
Attribute Type Mult. Kind Note
initValue ValueSpecification 0..1 aggr The initial value applicable for the corresponding
ParameterDataPrototype.
parameter ParameterData 0..1 ref The ParameterDataPrototype to which the Parameter
Prototype RequireComSpec applies.
AutosarDataPrototype
ValueSpecification +initValue NvRequireComSpec +variable
VariableDataPrototype
+ shortLabel: Identifier [0..1] 0..1 0..1
4
Class NvRequireComSpec
initValue ValueSpecification 0..1 aggr The initial value owned by the NvComSpec
variable VariableDataPrototype 0..1 ref The VariableDataPrototype the ComSpec applies for.
+romBlockInitValue
AutosarDataPrototype
ValueSpecification 0..1 NvProvideComSpec +variable
VariableDataPrototype
+ shortLabel: Identifier [0..1] +ramBlockInitValue 0..1
0..1
The big picture of data transformation in AUTOSR is explained in the TPS System
Template [10]. This chapter focuses on the aspects of data transformation that are
related to the configuration of software-components.
Using the TransformationComSpecProps it is possible to define configuration op-
tions for specific transformers of inter-ECU communication which is subject to data
transformation.
[TPS_SWCT_01594] Semantics of TransformationComSpecProps dThe defini-
tion of a TransformationComSpecProps can always be provided in the SWC de-
scription but the configuration shall only have an effect if
1. the actual communication involves at least two EcuInstances
2. the respective data transformer (given by the used TransformationCom-
SpecProps) is used during data transformation (see DataTransformation)
c(RS_SWCT_03221)
For clarification, the configuration given in TransformationComSpecProps will sim-
ply be ignored if the conditions defined by [TPS_SWCT_01594] do not apply.
[TPS_SWCT_01597] PortPrototype-specific data transformation configuration
dMeta-class TransformationComSpecProps shall be used for the specification of
Describable
EndToEndTransformationComSpecProps
TransformationComSpecProps
+ clearFromValidToInvalid: Boolean [0..1]
+ disableEndToEndCheck: Boolean [0..1]
+transformationComSpecProps 0..* + disableEndToEndStateMachine: Boolean [0..1]
+ maxDeltaCounter: PositiveInteger [0..1]
+ maxErrorStateInit: PositiveInteger [0..1]
RPortComSpec + maxErrorStateInvalid: PositiveInteger [0..1]
UserDefinedTransformationComSpecProps
ReceiverComSpec + maxErrorStateValid: PositiveInteger [0..1]
+ maxNoNewOrRepeatedData: PositiveInteger [0..1]
+ minOkStateInit: PositiveInteger [0..1]
+ minOkStateInvalid: PositiveInteger [0..1]
+ minOkStateValid: PositiveInteger [0..1]
ARElement + syncCounterInit: PositiveInteger [0..1]
+e2eProfileCompatibilityProps + windowSizeInit: PositiveInteger [0..1]
E2EProfileCompatibilityProps
+ windowSizeInvalid: PositiveInteger [0..1]
0..1
+ transitToInvalidExtended: Boolean [0..1] + windowSizeValid: PositiveInteger [0..1]
«atpVariation,atpSplitable»
0..* +dataTransformation +secondToFirstDataTransformation 0..1 +firstToSecondDataTransformation 0..1
«atpVariation,atpSplitable» Identifiable
DataTransformation
FibexElement FibexElement
«enumeration» ISignal +iSignal ISignalGroup
DataTransformationKindEnum
+ dataTypePolicy: DataTypePolicyEnum 0..*
symmetric + iSignalType: ISignalTypeEnum [0..1]
asymmetricFromByteArray + length: UnlimitedInteger
asymmetricToByteArray
Describable
«atpVariation»
TransformationISignalProps
1..* +transformer
0..* +transformationTechnology {ordered} +transformerChain 1
Identifiable «enumeration»
TransformationTechnology TransformerClassEnum
+bufferProperties 1
«atpVariation»
CompuScale BufferProperties
0..1 +transformationDescription
+ mask: PositiveInteger [0..1] + headerLength: Integer
Describable + shortLabel: Identifier [0..1] + inPlace: Boolean
TransformationDescription + symbol: CIdentifier [0..1]
«atpVariation»
+ lowerLimit: Limit [0..1]
+ upperLimit: Limit [0..1]
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1401] Restrictions on the relation between DataPrototypeMapping and
DataTransformation dA VariableDataPrototype in the context of a PortPro-
totype shall – at the time when the RTE is generated – not be referenced
by a DataPrototypeMapping that references a DataTransformation while a
DataMapping exists that points to this VariableDataPrototype (via the System-
Signal) that also refers to an ISignal that in turn references a DataTransforma-
tion.c()
In other words: a VariableDataPrototype can either become a part of a Dat-
aPrototypeMapping-based data transformation or of an ISignal-based data trans-
formation.
Please note that in a composite software structure the VariableDataProto-
type can be delegated throughout the CompositionSwComponentType and [con-
str_1401] still applies.
Class TransformationTechnology
Package M2::AUTOSARTemplates::SystemTemplate::Transformer
Note A TransformationTechnology is a transformer inside a transformer chain.
Tags:xml.namePlural=TRANSFORMATION-TECHNOLOGIES
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
bufferProperties BufferProperties 1 aggr Aggregation of the mandatory BufferProperties.
hasInternal Boolean 0..1 attr This attribute defines whether the Transformer has an
State internal state or not.
needsOriginal Boolean 0..1 attr Specifies whether this transformer gets access to the
Data SWC’s original data.
protocol String 1 attr Specifies the protocol that is implemented by this
transformer.
transformation Transformation 0..1 aggr A transformer can be configured with transformer specific
Description Description parameters which are represented by the Transformer
Description.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
transformer TransformerClassEnum 1 attr Specifies to which transformer class this transformer
Class belongs.
version String 1 attr Version of the implemented protocol.
Class UserDefinedTransformationComSpecProps
Package M2::AUTOSARTemplates::SWComponentTemplate::Communication
Note The UserDefinedTransformationComSpecProps is used to specify port specific configuration properties
for custom transformers.
Base ARObject, Describable, TransformationComSpecProps
Attribute Type Mult. Kind Note
– – – – –
Table 4.95: UserDefinedTransformationComSpecProps
4
Class EndToEndTransformationComSpecProps
minOkState PositiveInteger 0..1 attr Minimal number of checks in which ProfileStatus equal to
Invalid E2E_P_OK was determined, within the last WindowSize
checks, for the state E2E_SM_INVALID.
The minimum value is 1.
minOkState PositiveInteger 0..1 attr Minimal number of checks in which ProfileStatus equal to
Valid E2E_P_OK was determined, within the last WindowSize
checks, for the state E2E_SM_VALID.
The minimum value is 1.
syncCounterInit PositiveInteger 0..1 attr EndToEndTransformationDescription holds these
attributes which are profile specific and have the same
value for all E2E transformers.
windowSizeInit PositiveInteger 0..1 attr Size of the monitoring window of state Init for the E2E
state machine.
windowSize PositiveInteger 0..1 attr Size of the monitoring window of state Invalid for the E2E
Invalid state machine.
windowSize PositiveInteger 0..1 attr Size of the monitoring window of state Valid for the E2E
Valid state machine.
Table 4.96: EndToEndTransformationComSpecProps
«atpVariation»
AtpStructureElement
Identifiable +innerGroup
+portGroup «instanceRef»
PortGroup 0..*
«atpVariation» 0..*
Class PortGroup
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note Group of ports which share a common functionality
, e.g. need specific network resources. This information shall be available on the VFB level in order to
delegate it properly via compositions. When propagated into the ECU extract, this information is used as
input for the configuration of Services like the Communication Manager.
A PortGroup is defined locally in a component (which can be a composition) and refers to the "outer"
ports belonging to the group as well as to the "inner" groups which propagate this group into the
components which are part of a composition. A PortGroup within an atomic SWC cannot be linked to
inner groups.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
innerGroup PortGroup * iref Links a PortGroup in a composition to another PortGroup,
that is defined in a component which is part of this
CompositionSwComponentType.
InstanceRef implemented by:InnerPortGroupIn
CompositionInstanceRef
5
4
Class PortGroup
outerPort PortPrototype * ref Outer PortPrototype of this AtomicSwComponentType
which belongs to the group. A port can belong to several
groups or to no group at all.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
On the one hand, there is the definition of dedicated meta-classes, e.g. EndToEnd-
Description, which aim at an implementation that uses a so-called E2E wrapper
(an approach with a software component above RTE invoking the E2E library) or
AUTOSAR Com module callout mechanism (with Com callouts used to invoke E2E
library).
This approach is documented in chapter 4.7 of this document.
As an alternative approach, it is possible to implement end-to-end protection using
so-called data transformers.
The detailed description of how this approach can be configured is beyond the scope
of this document. Please refer to the TPS System Template [10] where the details of
the alternative approach are explained.
Caveat: The E2E wrapper approach involves technologies that are not subjected to
the AUTOSAR standard and is superseded by the superior E2E transformer approach
(which is fully standardized by AUTOSAR, see [18]). Hence, new projects (without
legacy constraints due to carry-over parts) shall use the fully standardized E2E trans-
former approach.
As described in [19], there are cases where safety-related software-components pro-
tect the data exchanged between each other. For this purpose modeling support is
provided by the software-component template.
Note that several end-to-end profiles are selectable for a specific application. The
specific end-to-end profile is represented by the attribute category of meta-class
EndToEndDescription.
Semantically, the category value represents an identification of the specific end-to-
end profile applicable for the communication of the corresponding data element. Ac-
cording to [19] there are two pre-defined profiles that can be used.
[TPS_SWCT_01089] end-to-end communication protection dThe information spe-
cific to each profile is expressed by the set of attributes of EndToEndDescription
owned by EndToEndProtection in the role endToEndProfile.c(RS_SWCT_-
03240)
Class EndToEndDescription
Package M2::AUTOSARTemplates::SWComponentTemplate::EndToEndProtection
Note This meta-class contains information about end-to-end protection. The set of applicable attributes
depends on the actual value of the category attribute of EndToEndProtection.
Base ARObject
Attribute Type Mult. Kind Note
category NameToken 0..1 attr The category represents the identification of the concrete
E2E profile. The applicable values are specified in a
semantic constraint and determine the applicable
attributes of EndToEndDescription.
Tags:xml.sequenceOffset=-100
5
4
Class EndToEndDescription
counterOffset PositiveInteger 0..1 attr Bit offset of Counter from the beginning of the Array
representation of the Signal Group/VariableDataPrototype
(MSB order, bit numbering: bit 0 is the least important).
The offset shall be a multiplicity of 4 and it should be 8
whenever possible. For example, offset 8 means that the
counter will take the low nibble of the byte 1, i.e. bits 8 ..
11. If counterOffset is not present the value is defined by
the selected profile.
Tags:xml.sequenceOffset=-50
crcOffset PositiveInteger 0..1 attr Bit offset of CRC from the beginning of the Array
representation of the Signal Group/VariableDataPrototype
(MSB order, bit numbering: bit 0 is the least important).
The offset shall be a multiplicity of 8 and it should be 0
whenever possible. For example, offset 8 means that the
CRC will take the byte 1, i.e. bits 8..15. If crcOffset is not
present the value is defined by the selected profile.
Tags:xml.sequenceOffset=-60
dataId (ordered) PositiveInteger * attr This represents a unique numerical identifier.
Note: ID is used for protection against masquerading.
The details concerning the maximum number of values
(this information is specific for each E2E profile)
applicable for this attribute are controlled by a semantic
constraint that depends on the category of the EndToEnd
Protection.
Tags:xml.sequenceOffset=-90
dataIdMode PositiveInteger 0..1 attr There are three inclusion modes how the implicit two-byte
Data ID is included in the one-byte CRC:
• dataIDMode = 0: Two bytes are included in the
CRC (double ID configuration) This is used in
variant 1A.
• dataIDMode = 1: One of the two bytes byte is
included, alternating high and low byte,
depending on parity of the counter (alternating ID
configuration). For even counter low byte is
included; For odd counters the high byte is
included. This is used in variant 1B.
• dataIDMode = 2: Only low byte is included, high
byte is never used. This is applicable if the IDs in
a particular system are 8 bits.
• dataIdMode = 3: The low byte is included in the
implicit CRC calculation, the low nibble of the
high byte is transmitted along with the data (i.e. it
is explicitly included), the high nibble of the high
byte is not used. This is applicable for the IDs up
to 12 bits.
Tags:xml.sequenceOffset=-85
dataIdNibble PositiveInteger 0..1 attr Bit offset of the low nibble of the high byte of Data ID. The
Offset applicability of this attribute is controlled by [constr_1261].
Tags:xml.sequenceOffset=-25
dataLength PositiveInteger 0..1 attr This attribute represents the length of the Array
representation of the Signal Group/VariableDataPrototype
including CRC and Counter in bits.
Tags:xml.sequenceOffset=-80
5
4
Class EndToEndDescription
maxDelta PositiveInteger 0..1 attr Initial maximum allowed gap between two counter values
CounterInit of two consecutively received valid Data, i.e. how many
subsequent lost data is accepted. For example, if the
receiver gets Data with counter 1 and MaxDeltaCounter
Init is 1, then at the next reception the receiver can accept
Counters with values 2 and 3, but not 4.
Note that if the receiver does not receive new Data at a
consecutive read, then the receiver increments the
tolerance by 1.
Tags:xml.sequenceOffset=-70
maxNoNewOr PositiveInteger 0..1 attr The maximum amount of missing or repeated Data which
RepeatedData the receiver does not expect to exceed under normal
communication conditions.
Tags:xml.sequenceOffset=-40
syncCounterInit PositiveInteger 0..1 attr Number of Data required for validating the consistency of
the counter that shall be received with a valid counter (i.e.
counter within the allowed lock-in range) after the
detection of an unexpected behavior of a received
counter.
Tags:xml.sequenceOffset=-30
• The information about the dataId shall be available at both the sender and the
receiver(s).
• [TPS_SWCT_01508] Scope of end-to-end protection dEnd-to-end protection
applies to local (i.e. within the ECU) as well as remote (i.e. ECU to ECU) commu-
nication.c(RS_SWCT_03240)
[TPS_SWCT_01092] EndToEndProtectionSet dThe meta-class EndToEndPro-
tectionSet provides a container for EndToEndProtection. The aggregation is
stereotyped atpSplitable because the information about end-to-end protection
is added at a later step in the development workflow.c(RS_SWCT_03240)
It also has the stereotype atpVariation because this allows for implementing
the software-component in two variants, one that uses end-to-end protection and one
that does not use it. It also might happen that the communication ends themselves are
variant.
EndToEndProtection maintains InstanceRefs to one dataElement in the role
of sender and to one or many dataElements in the role of receiver. By this means
it is possible to support a 1:n communication scenario.
[TPS_SWCT_01093] Definition of end-to-end protection is splitable dEnd-
ToEndProtection aggregates EndToEndDescription using stereotype
atpSplitable.
By this means it is for the integrator of an ECU possible to generally specify the nature
of a specific end-to-end protection but leave the actual assignment of values (e.g. for
dataId) to a later process step.c(RS_SWCT_03240)
EndToEndDescription
«instanceRef» 0..1
This rule shall be imposed at the time when the contract phase
generation is executed.c()
[constr_1120] Constraints of dataId in PROFILE_02 dIn PROFILE_02, there
shall be exactly ordered 16 elements in the set and the applicable range of values
is [0 .. 255].
This rule shall be imposed at the time when the contract phase
generation is executed.c()
[constr_1121] Constraints of maxDeltaCounterInit in PROFILE_02 dIn
PROFILE_02, the applicable range of values for EndToEndDescription.
maxDeltaCounterInit and ReceiverComSpec.maxDeltaCounterInit is
[0 .. 15].
This rule shall be imposed at the time when the contract phase
generation is executed.c()
[constr_1213] Constraints of maxNoNewOrRepeatedData in PROFILE_-
02 dIn PROFILE_02, the applicable range of values for EndToEndDescrip-
tion.maxNoNewOrRepeatedData and ReceiverComSpec.maxNoNewOrRe-
peatedData is [0 .. 15].
This rule shall be imposed at the time when the contract phase
generation is executed.c()
[constr_1214] Constraints of syncCounterInit in PROFILE_02 dIn PRO-
FILE_02, the applicable range of values for EndToEndDescription.sync-
CounterInit and ReceiverComSpec.syncCounterInit is [0 .. 15].
This rule shall be imposed at the time when the contract phase
generation is executed.c()
[constr_1217] Interpretation of attribute maxNoNewOrRepeatedData owned
by EndToEndDescription in PROFILE_02 dIf EndToEndProtection.
endToEndProtectionVariablePrototype.receiver is identical to the
RPortPrototype.requiredComSpec.dataElement and RPortPrototype.
requiredComSpec.maxNoNewOrRepeatedData is defined then the value
of RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData shall
be preferred over the value of EndToEndProtection.endToEndProfile.
maxNoNewOrRepeatedData.
If the value of category of EndToEndDescription is set to PROFILE_02
and either the described correspondence rule concerning the referenced Vari-
ableDataPrototype is not fulfilled or RPortPrototype.requiredComSpec.
maxNoNewOrRepeatedData is not defined then EndToEndProtection.end-
ToEndProfile.maxNoNewOrRepeatedData shall exist.c()
Class EndToEndProtection
Package M2::AUTOSARTemplates::SWComponentTemplate::EndToEndProtection
Note This meta-class represents the ability to describe a particular end to end protection.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
endToEnd EndToEndDescription 0..1 aggr This represents the particular EndToEndDescription.
Profile
Stereotypes: atpSplitable
Tags:atp.Splitkey=endToEndProfile
endToEnd EndToEndProtectionI * aggr Defines to which ISignalIPdu - ISignalGroup pair this End
Protection SignalIPdu ToEndProtection shall apply.
ISignalIPdu
In case several ISignalGroups are used to transport the
data (e.g. fan-out in the RTE) there may exist several End
ToEndProtectionISignalIPdu definitions.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=endToEndProtectionISignalIPdu, endToEnd
ProtectionISignalIPdu.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class EndToEndProtection
endToEnd EndToEndProtection * aggr Defines to which VariableDataPrototypes in the roles of
Protection VariablePrototype one sender and one or more receivers this EndTo
Variable Endprotection applies.
Prototype
It shall be possible to aggregate several EndToEnd
ProtectionVariablePrototype in case additional
hierarchical decompositions are introduced subsequently.
In this case one particular PortPrototype is split into
multiple PortPrototypes and connectors, all representing
the same data entity.
Caveat: The E2E wrapper approach involves
technologies that are not subjected to the AUTOSAR
standard and is superseded by the superior E2E
transformer approach (which is fully standardized by
AUTOSAR). Hence, new projects (without legacy
constraints due to carry-over parts) shall use the fully
standardized E2E transformer approach.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=endToEndProtectionVariablePrototype.short
Label, endToEndProtectionVariablePrototype.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
4
Class EndToEndProtectionVariablePrototype
shortLabel Identifier 0..1 attr This serves as part of the split key in case of more than
one EndToEndProtectionVariablePrototype is aggregated
in the bound model.
Stereotypes: atpIdentityContributor
Please note that using end-to-end protection it is explicitly supported that one sender
may correspond to one or more receivers.
[constr_1183] EndToEndProtectionVariablePrototypes aggregated by End-
ToEndProtection dAll EndToEndProtectionVariablePrototypes aggregated
by the same EndToEndProtection shall refer to the identical sender at the
time when the contract phase generation is executed.c()
3. allow for the application software to retrieve the status of a given Virtual Function
Cluster. This aspect is implemented by the concept of a status port.
c(RS_SWCT_03241)
The usage of the generic concept of PortGroups for the purpose of partial networks
shall be indicated by setting the value of the attribute category of PortGroup to
PARTIAL_NETWORKING, see [constr_1147].
[TPS_SWCT_01175] Actively query the status of a partial network dVery much like
mode management, the concept of partial networking supports the ability to actively
query the status of a partial network.
This can be done by means of interfacing the BSW in three alternative (as in “one of”)
ways:
• ComM: ClientServerInterface using the standardized ComM_UserRe-
quest.GetCurrentComMode [20]
• ComM: ModeSwitchInterface using the standardized ComM_CurrentMode.
currentMode [20]
• BswM: ModeSwitchInterface using the standardized AppModeInter-
face.currentMode [21]
c(RS_SWCT_03241)
As mentioned above, the status of the ComM can be retrieved by either a
ClientServerInterface or a SenderReceiverInterface. Which of the two
alternatives applies in a specific case is up to the author of a software-component9 .
When using one of the possible SenderReceiverInterfaces, the correspondence
of the status port concept with mode management extends to the point that the status
of the partial network is returned as an actual ModeDeclaration.
This implies that all mechanisms foreseen by the Software Component Template to
react on mode changes are in place and can be used within the application software.
To assure that the communication via PortPrototypes that belong to a partial net-
work is valid the software component shall consider the status of the partial network
before communicating in order to assert its activity.
[TPS_SWCT_01174] Status port shall not become a member of the PortGroup
dA status port shall not become a member of the PortGroup that corresponds to the
partial network subject to the status port.
The relationship is implemented by means of a specific SwcServiceDependency
that owns a RoleBasedPortAssignment to the intended status port and refers to
a PortGroup (that comprises the VFC) in the role representedPortGroup.c(RS_-
SWCT_03241, RS_SWCT_03201)
For further information, please refer to [TPS_SWCT_01126].
9
The usage of the ClientServerInterface effectively implements a “pull” approach for the mode
information while the usage of the SenderReceiverInterface resembles a “push” approach if it is
used in combination with a SwcModeSwitchEvent.
«atpVariation,atpSplitable»
+consistencyNeeds 0..*
AtpBlueprint
AtpBlueprintable
Identifiable
ConsistencyNeeds
AtpStructureElement AtpStructureElement
«instanceRef» Identifiable Identifiable
RunnableEntityGroup «instanceRef» DataPrototypeGroup
+runnableEntityGroup 0..*
+dataPrototypeGroup 0..* «instanceRef»
«instanceRef»
+runnableEntity 0..* +implicitDataAccess 0..*
AtpStructureElement AutosarDataPrototype
ExecutableEntity VariableDataPrototype
RunnableEntity
DataInterface DataInterface
SenderReceiverInterface NvDataInterface
4
Class ConsistencyNeeds
regDoesNot RunnableEntityGroup * aggr This group of RunnableEntities does not require stability
RequireStability with respect to the implicit communication behavior.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=regDoesNotRequireStability.shortName, reg
DoesNotRequireStability.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
regRequires RunnableEntityGroup * aggr This group of RunnableEntities requires stability with
Stability respect to the implicit communication behavior, i.e. all
read and write access to VariableDataPrototypes in the
DataPrototypeGroup by the RunnableEntitys of the
RunnableEntityGroup need to be handled in a stable
manner.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=regRequiresStability.shortName, reg
RequiresStability.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
Class RunnableEntityGroup
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior
Note This meta-class represents the ability to define a collection of RunnableEntities. The collection can be
nested.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
runnableEntity RunnableEntity * iref This represents a collection of RunnableEntitys that
belong to the enclosing RunnableEntityGroup.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
InstanceRef implemented by:RunnableEntityIn
CompositionInstanceRef
runnableEntity RunnableEntityGroup * iref This represents the ability to define nested groups of
Group RunnableEntitys.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
InstanceRef implemented by:InnerRunnableEntity
GroupInCompositionInstanceRef
Class DataPrototypeGroup
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior
Note This meta-class represents the ability to define a collection of DataPrototypes that are subject to the
formal definition of implicit communication behavior. The definition of the collection can be nested.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
5
4
Class DataPrototypeGroup
dataPrototype DataPrototypeGroup * iref This represents the ability to define nested groups of
Group VariableDataPrototypes.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
InstanceRef implemented by:InnerDataPrototypeGroup
InCompositionInstanceRef
implicitData VariableDataPrototype * iref This represents a collection of VariableDataPrototypes
Access that belong to the enclosing DataPrototypeGroup
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
InstanceRef implemented by:VariableDataPrototypeIn
CompositionInstanceRef
4.9.3 Consistency Needs for Senders and receivers of the same Data inside on
RunnableEntityGroup
5 Data Description
5.1 Introduction
[TPS_SWCT_01229] Three different levels of abstraction regarding the definition
of data types dIn the context of defining data types and prototypes, the AUTOSAR
concept distinguishes between three different levels of abstraction as depicted in Table
5.1.c(RS_SWCT_03215, RS_SWCT_03216, RS_SWCT_03217)
1
There are some aspects that affect the RTE, e.g. scaling of dataElements
Its values correspond to the actual binary numbers handled by the programming lan-
guage on the CPU. It contains concepts like pointers and unions which relate to the
organization of data in memory and are not relevant for the application level.
This level also defines structure, but it can be more granular. For example, the appli-
cation level may define a text to be transferred to an instrument cluster as a primitive
type (if the structure is not relevant for the application), whereas on the implementation
level it could be modeled as an array of bytes.c(RS_SWCT_03217)
[TPS_SWCT_01233] Use case for the Implementation Data Level dThere are sev-
eral use cases for this level in AUTOSAR:
• First, the Implementation Data level can be used in the description of interfaces,
and data (e.g. debug data) within the basic software, see [6] for more details on
these use cases.
• ImplementationDataTypes should also be used to describe the interfaces of
libraries which operate on a purely numerical level.
• Implementation Data is also used for the description of interfaces between
software-components and the basic software (namely AUTOSAR Services), be-
cause these typically cover implementation aspects only.
• It is possible to define communication in a VFB system directly on this level if the
physical and semantical abstraction is not of interest.
• Last not least the input for the RTE generator is defined by data descriptions on
this level. This means that in case a SWC defines its data only on application level
a corresponding set of implementation data types shall be created (or generated)
as part of the ECU extract before the RTE can be generated.
c(RS_SWCT_03217)
[TPS_SWCT_01234] Base Level dThe Base Type Level is used to describe the prim-
itive elements in terms of bits and bytes from which the implementation data is built up.
It is considered as a separate level in order to allow for reuse of the basic types defined
on this level.
These base types still do not completely determine the actual implementation on a
programming language, but they impose strong restrictions for this as they define for
example the number of bits and bytes to be used.
Depending on the use case, the base types can be defined as platform independent or
can also contain platform specific attributes (namely endianess and alignment).c()
[TPS_SWCT_01235] Mapping of data defined on the Application level to the Im-
plementation and Base Type level dIt is important to understand, that the mapping
of data defined on the Application level to the Implementation and Base Type level
depends on the medium on which the data is transported.
For example, if a physical value can be expressed with sufficient accuracy and range
by a 16-bit unsigned integer, it still might look very different when sent over CAN, when
2
More exactly speaking, the data shall be converted to and from a so-called SystemSignal.
Note that in AUTOSAR R3.x the platform types are implemented manually and
could even not be expressed on ARXML model (see [SRS_Rte_00150]). In
AUTOSAR R4.1 the Platform Data Types can be represented in the ARXML
model. Subsequent releases of AUTOSAR may generate the Platform Data
Types directly from the ARXML Model.
Standard Type Defined on M1 - provided by AUTOSAR. Standard types are defined
by referring to platform types.
c(RS_SWCT_03215, RS_SWCT_03216, RS_SWCT_03217)
[TPS_SWCT_01237] SwDataDefProps dThe properties of data are summarized in
the meta-class SwDataDefProps. This meta-class itself is the superset of all applica-
ble properties.c(RS_SWCT_03216, RS_SWCT_03217)
Subsets of SwDataDefProps are applicable in specific case, for a summary please
refer to the following tables:
• The data categorys are summarized in table 5.6.
• Properties for ApplicationDataTypes are summarized in table 5.7.
• Properties for ImplementationDataTypes are summarized in table 5.17.
• Properties for DataPrototypes typed by ApplicationDataTypes are sum-
marized in table 5.34.
• Properties for DataPrototypes typed by ImplementationDataTypes are
summarized in table 5.35.
• Applicability of SwDataDefProps is summarized in table 5.43.
5.2.1 Overview
+type 0..1 +applicationDataType 0..1 +implementationDataType 0..1 0..1 +implementationDataType +modeGroup 0..1
{redefines atpType}
«isOfType»
DataPrototype
DataTypeMap ModeRequestTypeMap
ApplicationCompositeElementDataPrototype
4
Class ApplicationDataType (abstract)
Note ApplicationDataType defines a data type from the application point of view. Especially it should be used
whenever something "physical" is at stake.
An ApplicationDataType represents a set of values as seen in the application model, such as
measurement units. It does not consider implementation details such as bit-size, endianess, etc.
It should be possible to model the application level aspects of a VFB system by using ApplicationData
Types only.
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, AutosarDataType,
CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Subclasses ApplicationCompositeDataType, ApplicationPrimitiveDataType
Attribute Type Mult. Kind Note
– – – – –
Table 5.3: ApplicationDataType
As explained above, the concept of application data types as well as that of implemen-
tation data types can be used to instantiate a data prototype in an M1 model. However,
there are use cases, especially in order to generate the RTE contract for Applica-
tionSwComponentTypes, where it is required to consider both levels for one given
data prototype.
[TPS_SWCT_01189] DataTypeMap dThis is supported by the meta-class
DataTypeMap by which an ApplicationDataType and an Implementation-
DataType can be mapped to each other in order to describe both aspects of one
dataElement.c(RS_SWCT_03216, RS_SWCT_03217, RS_SWCT_03215)
Class DataTypeMap
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::Datatypes
Note This class represents the relationship between ApplicationDataType and its implementing Abstract
ImplementationDataType.
Base ARObject
Attribute Type Mult. Kind Note
applicationData ApplicationDataType 0..1 ref This is the corresponding ApplicationDataType
Type
implementation AbstractImplementation 0..1 ref This is the corresponding AbstractImplementationData
DataType DataType Type.
a more simple type system on the implementation level, than on the application
model level.
• The same ApplicationDataTypes may be mapped to different Implemen-
tationDataTypes for different ECUs. This scenario allows to choose the im-
plementation data types according to the needs of specific ECUs.
• The same ApplicationDataTypes may be mapped to different Implemen-
tationDataTypes even in the scope of a single ECU (more exactly speak-
ing, a single RTE), but only for different AtomicSwComponentTypes (see [con-
str_1004]).
This improves the portability of software components which were developed in-
dependently or are ported between ECUs.
c()
[constr_1004] Mapping of ApplicationDataTypes in the scope of single
AtomicSwComponentTypes dIn the scope of AtomicSwComponentType.inter-
nalBehavior.dataTypeMapping, each ApplicationDataType shall be mapped
to exactly one ImplementationDataType at the time when the contract
phase generation is executed.c()
ApplicationDataType ApplicationDataType
ImplementationDataType ImplementationDataType
shall also be
compatible
RTE is able to cope with possible connections by converting the data accordingly) at
the time when the contract phase generation is executed.c()
This constraint is visualized in figure 5.2.
[constr_1636] Mapping of data types that represent an Optional Element
Structure dAn ApplicationRecordDataType with at least one element where
attribute isOptional is set to True shall only be mapped to an Implementa-
tionDataType that fulfills the structural requirements to represent an Optional
Element Structure (see [TPS_SWCT_01774]) at the time when the con-
tract phase generation is executed.c()
ApplicationRuleBasedValueSpecification
ApplicationValueSpecification
ImplementationDataTypeElement
ApplicationPrimitiveDataType
ApplicationRecordDataType
ApplicationArrayDataType
ApplicationRecordElement
ApplicationArrayElement
McDataInstance
SwSystemconst
SwServiceArg
Measurement
RTE + BSW
Calibration
3
This option has very few valid use cases, e.g. for defining a function pointer in native C notation, for
example: int (*SwCluC_BManif_VoidFncPtrType)(void);
4
[constr_1295] applies!
4
Category Applicable to ... Use Case Description
ApplicationRuleBasedValueSpecification
ApplicationValueSpecification
ImplementationDataTypeElement
ApplicationPrimitiveDataType
ApplicationRecordDataType
ApplicationArrayDataType
ApplicationRecordElement
ApplicationArrayElement
McDataInstance
SwSystemconst
SwServiceArg
Measurement
RTE + BSW
Calibration
4
Category Applicable to ... Use Case Description
ApplicationRuleBasedValueSpecification
ApplicationValueSpecification
ImplementationDataTypeElement
ApplicationPrimitiveDataType
ApplicationRecordDataType
ApplicationArrayDataType
ApplicationRecordElement
ApplicationArrayElement
McDataInstance
SwSystemconst
SwServiceArg
Measurement
RTE + BSW
Calibration
+swDataDefProps 0..1
«atpVariation»
SwDataDefProps ApplicationPrimitiveDataType ApplicationCompositeDataType
ApplicationArrayElement
ApplicationDataType
STRUCTURE
COM_AXIS
RES_AXIS
VAL_BLK
BOOLEAN
STRING
CUBOID
CUBE_4
CUBE_5
VALUE
ARRAY
CURVE
MAP
additionalNativeTypeQualifier
annotation x x x * * * * * * * * * * * * *
baseType
compuMethod x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
dataConstr.dataConstrRule.
x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
physConstrs
dataConstr.dataConstrRule.in-
x x x d/c5 d/c d/c d/c d/c d/c d/c d/c d/c
ternalConstrs
displayFormat x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
displayPresentation x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
implementationDataType
5
5
don’t care
4
invalidValue x 0..1 0..1 0..1
stepSize x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAddrMethod x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAlignment
swBitRepresentation
swCalibrationAccess x x 0..1 0..1 0..1 0..1 0..1 0..1 1 1 1 1 1 1 1
swCalprmAxisSet x 1 1 1 1 1 1 1
swComparisonVariable
swDataDependency
swHostVariable
swImplPolicy x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIntendedResolution x x x 0..1
swInterpolationMethod x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIsVirtual
swPointerTargetProps
swRecordLayout x 0..1 0..16 0..1 1 1 1 1 1 1 1
swRefreshTiming x 0..1 0..1 0..1 0..1
swTextProps x 1
swValueBlockSize x 1
swValueBlockSizeMult x 1
unit x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
valueAxisDataType x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
Other Attributes below the Root Element
element:
x x x 1..*
ApplicationRecordElement
element:
x x x 1
ApplicationArrayElement
ApplicationArrayElement.array-
x 0..1
SizeSemantics
ApplicationArrayElement.
x 1
maxNumberOfElements
Class ApplicationPrimitiveDataType
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::Datatypes
Note A primitive data type defines a set of allowed values.
Tags:atp.recommendedPackage=ApplicationDataTypes
Base ARElement, ARObject, ApplicationDataType, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType,
AutosarDataType, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement,
Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 5.8: ApplicationPrimitiveDataType
6
This is required by [TPS_SWCT_01179].
In contrast to prior versions (R3.x) of the AUTOSAR standard, the primitive application
data types on M2 level are no longer specified. Instead of this, the meta-class Appli-
cationPrimitiveDataType in combination with the attached swDataDefProps is
used on the level of the M2 (meta-) model to specify the details on M1 modeling level.
[TPS_SWCT_01242] category characterizes the nature of a data type on appli-
cation level dThe category is used in addition to characterize the nature of a data
type on application level.c(RS_SWCT_03216)
For example, the IntegerType as of AUTOSAR R3.x allows for specifying lower and
upper ranges that constrain the applicable value interval. That aspect is still supported
by this version of AUTOSAR, but the meta-model is different from the former approach.
Especially it is no more considered of importance to specify that an Application-
PrimitiveDataType is actually represented by “integer” numbers.
Figure 5.4 provides a sketch of how limits are defined now. The key feature is the ag-
gregation of SwDataDefProps at AutosarDataType. The meta-class SwDataDef-
Props allows for creating a reference to a DataConstr that in turn aggregates a
DataConstrRule.
The latter aggregates PhysConstrs and this meta-class finally owns two Limits in
the roles lowerLimit and upperLimit.
Another example is shown in Figure 5.5. By making again use of SwDataDefProps,
this figure shows how semantics in form of a CompuMethod and a Unit can be at-
tached.
Also, an initValue can be defined which is used by the RTE in order to initialize
values of VariableDataPrototypes/ParameterDataPrototypes defined locally
in a software-component.
ARElement «atpVariation» ARElement
+swDataDefProps +compuMethod
AtpType SwDataDefProps AtpBlueprint
AutosarDataType 0..1 AtpBlueprintable
0..1
CompuMethod
+unit 0..1
AtpBlueprint
AtpBlueprintable ARElement
+unit
ApplicationDataType Unit
0..1
+invalidValue 0..1
ApplicationPrimitiveDataType ValueSpecification
Figure 5.6 illustrates the relationship between the data constraints for Application-
DataType, CompuMethod, ImplementationDataType, BaseType and also the
invalidValue for the case of an entirely linear or rational conversion.
Please note that Figure 5.6 is only applicable for linear and rational CompuMethods.
Invalid Value
InvalidValue outside the scope of InvalidValue inside the scope of the
the CompuMethod is transparent CompuMethod is known to the
to the software-component software-component
limits of CompuMethod
CompuMethod
computed internalConstrs of
ApplicationDataType
Implementation
DataType
internalConstrs of
ImplementationDataType
range by BaseType
BaseType
0 2n
Figure 5.6: Value ranges and invalid values for linear and rational CompuMethod
Figure 5.7 and Figure 5.8 depict a similar situation for the case of mixed Com-
puMethods where the invalidValue is defined in the discrete part of a Com-
puMethod.
Invalid Value
InvalidValue appears in the textual part of the CompuMethod and
Application is therefore known to the component
DataType
Lower [unit] Upper [unit]
physConstrs of
ApplicationDataType
CompuMethod limits of CompuMethod
range by BaseType
BaseType
0 2n
Figure 5.7: Value ranges and invalid values with discrete invalidValue defined inside
the scope of the CompuMethod
Figure 5.7 sketches a case where a CompuMethod has a linear and a discrete part and
the invalidValue is defined by means of one value that is defined in the discrete part
of the CompuMethod.
As mentioned by [TPS_SWCT_01834], the invalidValue shall be defined in the
physical domain in this case. In other words, the invalidValue shall be defined by
a symbol according to [TPS_SWCT_01432].
As a consequence of the definition of an invalidValue inside, the scope of a mixed
CompuMethod the invalidValue is visible to the software-component.
Invalid Value
InvalidValue does not appear in the textual part of the
CompuMethod and is therefore not known to the component
Application
DataType Lower [unit] Upper [unit]
physConstrs of
ApplicationDataType
limits of CompuMethod
CompuMethod
Textual Value defined as
computed internalConstrs of
part of the CompuMethod
ApplicationDataType
Implementation
DataType
internalConstrs of
ImplementationDataType
range by BaseType
BaseType
0 2n
Figure 5.8: Value ranges and invalid values with discrete invalidValue defined outside
the scope of the CompuMethod
Figure 5.8, on the other hand, sketches a case where a CompuMethod has a linear
and a discrete part and the invalidValue is not within the defined linear interval and
not defined by means of one value out of the discrete part of the CompuMethod.
As mentioned by [TPS_SWCT_01835], the invalidValue shall be defined in the
internal domain in this case. In other words, the invalidValue shall be defined by a
NumericalValueSpecification.
As a consequence of the definition of an invalidValue outside the scope of a mixed
CompuMethod, the invalidValue is invisible (and therefore not accessible) to the
software-component.
If an ApplicationPrimitiveDataType does not define dataConstr, then implicit
constraints can be derived from physical meaning of the ApplicationDataType.
For example, if the data type represents a temperature the lower bound will not be able
to exceed 0K.
For other physical meanings, it could be possible that the implicitly assumed limits go
from -INF to +INF.
In order to avoid ambiguity regarding the values of limits it is strongly recommended
defining a reasonable limit for ApplicationPrimitiveDataTypes.
[constr_2544] Limits need to be consistent d
• The limits of ApplicationDataType shall be inside the definition range of the
CompuMethod
The CompuMethod needs to be applicable for limits of an Application-
DataType. The reason is that the internal representation of the limits for the
ApplicationDataType are calculated by applying the CompuMethod.
• The such defined internal limits of the ApplicationDataType shall be within
or equal the internalConstrs of the mapped ImplementationDataType.
• The limits of the ImplementationDataType shall be within or equal to the
limits defined by the size of the BaseType.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[TPS_SWCT_01834] invalidValue is inside the scope of the compuMethod dIf
the value of the invalidValue of an ApplicationPrimitiveDataType of cat-
egory VALUE is supposed to be inside the scope of the applicable CompuMethod, an
ApplicationValueSpecification shall be used to describe the invalidValue
of the ApplicationPrimitiveDataType.c(RS_SWCT_03216)
[TPS_SWCT_01834] means that the value of the ApplicationValueSpecifica-
tion shall be within the bounds defined by swDataDefProps.compuMethod.com-
puPhysToInternal.compuContent.compuScale.lowerLimit or upperLimit
or the inverse case that is based on the bounds defined by swDataDefProps.com-
puMethod.compuInternalToPhys.compuContent.compuScale.lowerLimit or
upperLimit.
[TPS_SWCT_01835] invalidValue is outside the scope of the compuMethod dIf
the value of the invalidValue of an ApplicationPrimitiveDataType of cat-
egory VALUE is supposed to be outside the scope of the applicable CompuMethod, a
NumericalValueSpecification (that provides a value in the internal representa-
tion) shall be used to describe the invalidValue of the ApplicationPrimitive-
DataType.c(RS_SWCT_03216)
Because of the existence of [TPS_SWCT_01834] and [TPS_SWCT_01834], the def-
inition of the invalidValue is fully specified and therefore [constr_1221] does not
apply to this case.
The handling of invalidValue for ApplicationPrimitiveDataType of cate-
gory STRING is defined by [constr_1242].
For a more detailed description of the properties that can be defined for data types
(and data prototypes as well) see sections 5.4 and 5.4.2.
[TPS_SWCT_01760] Defining the dimension of an ApplicationPrimitive-
DataType of category VAL_BLK dAn ApplicationPrimitiveDataType of cat-
egory VAL_BLK that has only one dimension shall be described using the attribute
SwDataDefProps.swValueBlockSize.
An ApplicationPrimitiveDataType of category VAL_BLK that has more than
one dimension shall be described using the attribute SwDataDefProps.swValue-
BlockSizeMult.c(RS_SWCT_03216)
[constr_1610] Existence of SwDataDefProps.swValueBlockSize and Sw-
DataDefProps.swValueBlockSizeMult dAttributes SwDataDefProps.swVal-
ueBlockSize and SwDataDefProps.swValueBlockSizeMult shall not exist at
the same time in the context of a given SwDataDefProps.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
+compuContent 0..1
Compu CompuScales
«atpVariation»
+compuDefaultValue 0..1 +compuScale 0..* {ordered}
!"! #$!! %&'($&
CompuConst CompuScale
+compuInverseValue
+ mask: PositiveInteger [0..1]
0..1 + shortLabel: Identifier [0..1]
+compuConst 0..1 + symbol: CIdentifier [0..1]
«atpVariation»
0..1 +compuConstContentType + lowerLimit: Limit [0..1]
+ upperLimit: Limit [0..1]
CompuConstContent CompuScaleConstantContents CompuScaleContents +compuScaleContents
0..1
CompuConstTextContent
+invalidValue
ValueSpecification
AtpBlueprint 0..1
AtpBlueprintable + shortLabel: Identifier [0..1]
ApplicationDataType +swTextProps 0..1
SwTextProps
AtpBlueprint
+ arraySizeSemantics: ArraySizeSemanticsEnum [0..1] CompositeRuleBasedValueArgument
AtpBlueprintable
+baseType + swFillCharacter: Integer [0..1]
ApplicationPrimitiveDataType BaseType ApplicationValueSpecification
«atpVariation»
SwBaseType 0..1
+ swMaxTextSize: Integer [0..1] + category: Identifier [0..1]
The following series of XML fragments exemplifies the definition of a data type for the
representation of a textual string. First, the applicable ApplicationPrimitive-
DataType is defined (see Figure 5.10).
Note that the category is set to the value STRING. Also, the ApplicationPrimi-
tiveDataType.swDataDefProps.swTextProps indicate the width of the string and
also define (by means of the reference to baseType) the encoding this string data type
is supposed to utilize.
Note further that the fact that an ApplicationDataType directly references (across
the implementation level) to a SwBaseType represents an exception to the rule that
ApplicationDataType should not be concerned about the lowest level of data
type definition in AUTOSAR.
If the bridging of the implementation level were accepted as a general pattern for the
modeling of ApplicationDataType it would easily be possible to bypass the imple-
mentation level to some extent and this would render ApplicationDataTypes less
versatile.
[TPS_SWCT_01128] SwRecordLayout needed for ApplicationPrimitive-
DataType of category STRING dAs mentioned in [TPS_SWCT_01179], an Ap-
plicationPrimitiveDataType of category STRING is considered a Compound
Primitive Data Type.
Therefore, it needs a reference to the definition of a SwRecordLayout that presets
the approach for creating a matching ImplementationDataType.c()
In this specific example the definition of the SwRecordLayout foresees the Applica-
tionPrimitiveDataType of category STRING to be implemented as a structured
data type that consists of:
1. the size of an instance of the string data type in terms of the number of characters
plus
2. an array that can be used to store the individual characters contained in an in-
stance of the string data type.
Listing 5.1: Example for the definition of a string ApplicationPrimitiveDataType
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>MyApplicationStringType</SHORT-NAME>
<CATEGORY>STRING</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-TEXT-PROPS>
<ARRAY-SIZE-SEMANTICS>VARIABLE-SIZE</ARRAY-SIZE-SEMANTICS>
<SW-MAX-TEXT-SIZE>50</SW-MAX-TEXT-SIZE>
<BASE-TYPE-REF BASE="default" DEST="SW-BASE-TYPE">BaseTypes/
MyTextBaseType</BASE-TYPE-REF>
</SW-TEXT-PROPS>
<INVALID-VALUE>
<APPLICATION-VALUE-SPECIFICATION>
<CATEGORY>STRING</CATEGORY>
<SW-VALUE-CONT>
<SW-VALUES-PHYS>
<VT>inv</VT>
</SW-VALUES-PHYS>
</SW-VALUE-CONT>
</APPLICATION-VALUE-SPECIFICATION>
</INVALID-VALUE>
<SW-RECORD-LAYOUT-REF BASE="default" DEST="SW-RECORD-LAYOUT">
RecordLayouts/StringDescriptor</SW-RECORD-LAYOUT-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
Depending on the used encoding the array may need to be bigger (in terms of the
number of elements) than the corresponding value of the size.
Furthermore, the definition of the SwRecordLayout already takes into account that
the implementation of an array data type by means of an ImplementationDataType
requires the definition of an ImplementationDataTypeElement.
The meaning of the standardized values of SwRecordLayoutV.swRecordLay-
outVProp are documented in [TPS_SWCT_01489]. In the scope of this example
the values COUNT and VALUE are used.
The fact that the swRecordLayoutGroupTo contains the value -1 means that the
iteration ends at the last element of the array.
Please note further that the discussed example of an ApplicationPrimitive-
DataType of category STRING also contains the definition of an invalidValue
for the string data type.
The next step is the definition of an ImplementationDataType that represents the
string type on the implementation level.
The definition of the ImplementationDataType can be derived from the definition
of the applicable SwRecordLayout.
Listing 5.2: Example for the definition of a SwRecordLayout for an ApplicationPrim-
itiveDataType of category STRING
<SW-RECORD-LAYOUT>
<SHORT-NAME>StringDescriptor</SHORT-NAME>
<LONG-NAME>
<L-4 L="EN">String by descriptor</L-4>
</LONG-NAME>
<INTRODUCTION>
<VERBATIM>
<L-5 L="EN" xml:space="default">
struct{
size,
char[]
}
</L-5>
</VERBATIM>
</INTRODUCTION>
<SW-RECORD-LAYOUT-GROUP>
<SW-RECORD-LAYOUT-V>
<SHORT-LABEL>size</SHORT-LABEL>
<SW-RECORD-LAYOUT-V-AXIS>STRING</SW-RECORD-LAYOUT-V-AXIS>
<SW-RECORD-LAYOUT-V-PROP>COUNT</SW-RECORD-LAYOUT-V-PROP>
</SW-RECORD-LAYOUT-V>
<SW-RECORD-LAYOUT-GROUP>
<SHORT-LABEL>chars</SHORT-LABEL>
<SW-RECORD-LAYOUT-GROUP-AXIS>STRING</SW-RECORD-LAYOUT-GROUP-AXIS>
<SW-RECORD-LAYOUT-GROUP-FROM>0</SW-RECORD-LAYOUT-GROUP-FROM>
<SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
<SW-RECORD-LAYOUT-V>
<SHORT-LABEL>char</SHORT-LABEL>
<SW-RECORD-LAYOUT-V-PROP>VALUE</SW-RECORD-LAYOUT-V-PROP>
</SW-RECORD-LAYOUT-V>
</SW-RECORD-LAYOUT-GROUP>
</SW-RECORD-LAYOUT-GROUP>
</SW-RECORD-LAYOUT>
The next listing describes the data type of one character within the string data type.
Listing 5.3: Example for the definition of the character data type of a string Implemen-
tationDataType
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>uint8</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<BASE-TYPE-REF DEST="SW-BASE-TYPE">BaseTypes/uint8BT</BASE-TYPE-REF
>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</IMPLEMENTATION-DATA-TYPE>
</ARRAY-VALUE-SPECIFICATION>
</FIELDS>
</RECORD-VALUE-SPECIFICATION>
</INVALID-VALUE>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
<DYNAMIC-ARRAY-SIZE-PROFILE>VSA_LINEAR</DYNAMIC-ARRAY-SIZE-PROFILE>
<SUB-ELEMENTS>
<IMPLEMENTATION-DATA-TYPE-ELEMENT>
<SHORT-NAME>size</SHORT-NAME>
<CATEGORY>TYPE_REFERENCE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">
ImplementationDataTypes/uint8</IMPLEMENTATION-DATA-TYPE-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</IMPLEMENTATION-DATA-TYPE-ELEMENT>
<IMPLEMENTATION-DATA-TYPE-ELEMENT>
<SHORT-NAME>string</SHORT-NAME>
<CATEGORY>ARRAY</CATEGORY>
<SUB-ELEMENTS>
<IMPLEMENTATION-DATA-TYPE-ELEMENT>
<SHORT-NAME>character</SHORT-NAME>
<CATEGORY>TYPE_REFERENCE</CATEGORY>
<ARRAY-SIZE>200</ARRAY-SIZE>
<ARRAY-SIZE-HANDLING>ALL-INDICES-SAME-ARRAY-SIZE</ARRAY-SIZE-
HANDLING>
<ARRAY-SIZE-SEMANTICS>VARIABLE-SIZE</ARRAY-SIZE-SEMANTICS>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-
TYPE">ImplementationDataTypes/uint8</IMPLEMENTATION-DATA
-TYPE-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</IMPLEMENTATION-DATA-TYPE-ELEMENT>
</SUB-ELEMENTS>
</IMPLEMENTATION-DATA-TYPE-ELEMENT>
</SUB-ELEMENTS>
</IMPLEMENTATION-DATA-TYPE>
<DATA-TYPE-MAP>
<APPLICATION-DATA-TYPE-REF BASE="default" DEST="APPLICATION-PRIMITIVE
-DATA-TYPE">ApplicationDataTypes/MyApplicationStringType</
APPLICATION-DATA-TYPE-REF>
<IMPLEMENTATION-DATA-TYPE-REF BASE="default" DEST="IMPLEMENTATION-
DATA-TYPE">ImplementationDataTypes/MyImplementationStringType</
IMPLEMENTATION-DATA-TYPE-REF>
</DATA-TYPE-MAP>
</DATA-TYPE-MAPS>
</DATA-TYPE-MAPPING-SET>
However, there is still one important part missing, i.e. the definition of the mapping
of ApplicationPrimitiveDataType to ImplementationDataType (and vice
versa, see Listing 5.6).
As mentioned before, the definition of an ImplementationDataType that corre-
sponds to an ApplicationPrimitiveDataType of category STRING can be
to some extent derived from the ApplicationPrimitiveDataType.swDataDef-
Props.swRecordLayout.
[TPS_SWCT_01570] DataTypeMap is mandatory in the presence of Applica-
tionPrimitiveDataType.swDataDefProps.swRecordLayout dThe definition of
a DataTypeMap is mandatory even if an ImplementationDataType has been de-
rived from an ApplicationPrimitiveDataType that defines a SwRecordLay-
out.c()
One motivation for the existence of [TPS_SWCT_01570] is that the integrator of an
AUTOSAR ECU may rightfully decide to take a different ImplementationDataType
other than the one that has been generated on the basis of the SwRecordLayout.
ApplicationArrayDataType ApplicationRecordDataType
«atpVariation»
«enumeration» +element 0..1 +element 0..* {ordered}
ArraySizeSemanticsEnum
ApplicationCompositeElementDataPrototype ApplicationCompositeElementDataPrototype
fixedSize
ApplicationArrayElement ApplicationRecordElement
variableSize
+ arraySizeHandling: + isOptional: Boolean [0..1]
ArraySizeHandlingEnum [0..1]
«enumeration» + arraySizeSemantics:
ArraySizeHandlingEnum ArraySizeSemanticsEnum [0..1]
allIndicesSameArraySize «atpVariation»
allIndicesDifferentArraySize + maxNumberOfElements: PositiveInteger
inheritedFromArrayElementTypeSize [0..1]
5.2.4.2.1 ApplicationArrayDataType
Please note that the information about the number of elements of a specific Appli-
cationArrayDataType is not absolute but allows for further interpretation.
[TPS_SWCT_01076] Number of elements of a specific ApplicationArray-
DataType might vary at run-time dThat is, there are cases where the number of
elements of a specific ApplicationArrayDataType might vary at run-time.
To be precise, the number of elements might vary between 0 and the value denoted by
maxNumberOfElements.
For this purpose an additional attribute arraySizeSemantics is available that can
be used to clarify the meaning of maxNumberOfElements.
For clarification, it might indeed happen that the actual number of elements in a specific
ApplicationArrayDataType yields 0 simply because the respective DataProto-
type is part of a higher-level protocol where under certain circumstances the Dat-
aPrototype of ApplicationArrayDataType is simply not required for expressing
a given semantics.c(RS_SWCT_03180, RS_SWCT_03181, RS_SWCT_03215, RS_-
SWCT_03144)
Enumeration ArraySizeSemanticsEnum
Package M2::AUTOSARTemplates::CommonStructure::ImplementationDataTypes
5
4
Enumeration ArraySizeSemanticsEnum
Note This type controls how the information about the number of elements in an ApplicationArrayDataType
is to be interpreted.
Literal Description
fixedSize This means that the ApplicationArrayDataType will always have a fixed number of elements.
Tags:atp.EnumerationLiteralIndex=0
variableSize This implies that the actual number of elements in the ApplicationArrayDataType might vary at
run-time. The value of arraySize represents the maximum number of elements in the array.
Tags:atp.EnumerationLiteralIndex=1
Please note that the ability to define the semantic meaning of maxNumberOfEle-
ments is not only limited to the application data type level. The same approach also
applies for ImplementationDataType.
[constr_1152] category of ApplicationArrayElement and AutosarDataType
referenced in the role type shall be kept in sync dThe value of category of an
ApplicationArrayElement shall always be identical to the value of category of
the AutosarDataType referenced by the ApplicationArrayElement.c()
Enumeration ArraySizeHandlingEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::Datatypes
Note This enumeration defines different ways to handle the sizes of variable size arrays.
Literal Description
allIndicesDifferent All elements of the variable size array may have different sizes.
ArraySize
Tags:atp.EnumerationLiteralIndex=0
allIndicesSame All elements of the variable size array have the same size.
ArraySize
Tags:atp.EnumerationLiteralIndex=1
inheritedFromArray The size of all dimensions of the variable size array is determined by the size of the contained array
ElementTypeSize element.
Tags:atp.EnumerationLiteralIndex=2
+applicationDataType +implementationDataType
+element +subElement
+type
BOOLEAN_true_false_SysConDim2_SysConDim3:
ApplicationArrayDataType
category = ARRAY
+element +subElement
+type
BOOLEAN_true_false_SysConDim3:
ApplicationArrayDataType
category = ARRAY
+element +subElement
+swDataDefProps
«atpVariation»
:SwDataDefProps
DefaultDataTypeMapping:
DataTypeMappingSet
+type +implementationDataType
BOOLEAN_true_false: boolean:
ApplicationPrimitiveDataType +dataTypeMap ImplementationDataType
The usage of an array represents an elegant way to group data with identical proper-
ties. This allows for an easy processing of the same functionality by iterating over the
array elements.
From a functional point of view, however, each array element may have a distinct mean-
ing that could be visible to the application software. To create this visibility, it is possible
to take advantage of an existing mechanism: CompuMethods of category TEXT-
TABLE.
[TPS_SWCT_01699] Usage of ApplicationArrayElement.indexDataType
dThe primary use case of the attribute ApplicationArrayElement.index-
DataType is the creation of composite data type mappings or the description of mea-
surement and calibration. Furthermore, the information could be used for documenta-
tion purposes.c(RS_SWCT_03230)
ApplicationCompositeElementDataPrototype AtpBlueprint
ApplicationArrayElement AtpBlueprintable
ApplicationDataType
+ arraySizeHandling:
ArraySizeHandlingEnum [0..1]
+ arraySizeSemantics:
ApplicationCompositeDataType
ArraySizeSemanticsEnum [0..1]
ApplicationArrayDataType +element
«atpVariation» +indexDataType ApplicationPrimitiveDataType
+ dynamicArraySizeProfile: String [0..1] 0..1 + maxNumberOfElements: PositiveInteger
[0..1] 0..1
<COMPU-METHOD-REF DEST="COMPU-METHOD">cylinders</COMPU-METHOD-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
5.2.4.2.2 ApplicationRecordDataType
5.2.5.1 Overview
+swDataDefProps
ARElement «atpVariation»
AtpBlueprint 0..1 SwDataDefProps 0..1
AtpBlueprintable +swAddrMethod
+ additionalNativeTypeQualifier: NativeDeclarationString [0..1] +swDataDefProps
SwAddrMethod
0..1 + displayFormat: DisplayFormatString [0..1]
+ displayPresentation: DisplayPresentationEnum [0..1]
+ stepSize: Float [0..1]
+ swAlignment: AlignmentType [0..1]
+ swCalibrationAccess: SwCalibrationAccessEnum [0..1]
SwBitRepresentation +swBitRepresentation + swImplPolicy: SwImplPolicyEnum [0..1]
+ swIntendedResolution: Numerical [0..1]
+ bitPosition: Integer [0..1] 0..1 + swInterpolationMethod: Identifier [0..1]
+ numberOfBits: Integer [0..1]
+ swIsVirtual: Boolean [0..1]
«atpVariation»
+ swValueBlockSize: Numerical [0..1]
+ swValueBlockSizeMult: Numerical [0..*] {ordered}
AtpBlueprint
AtpBlueprintable +baseType
BaseType
0..1
SwBaseType
0..1 +swDataDefProps
+swPointerTargetProps 0..1
ARElement
SwPointerTargetProps
AtpBlueprint +functionPointerSignature
AtpBlueprintable + targetCategory: Identifier [0..1]
0..1 A
BswModuleEntry
The allowed existence and multiplicity of all the attributes of SwDataDefProps and
other properties depend on the category of the ImplementationDataType.
[constr_1178] Existence of attributes of SwDataDefProps in the context of Im-
plementationDataType dFor the sake of removing possible sources of ambiguity,
SwDataDefProps used in the context of ImplementationDataType can only have
one of
• baseType
• swPointerTargetProps
• implementationDataType
at the time when the contract phase generation is executed.c()
[TPS_SWCT_01251] Limited set of values for category are applicable for Im-
plementationDataType dLike any AutosarDataType, also the data types on im-
plementation level are characterized by its category and its SwDataDefProps. For
a given category, only a limited set of attributes of the SwDataDefProps makes
sense.c(RS_SWCT_03217)
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes dA
complete list of the SwDataDefProps and other attributes and their multiplicities which
are allowed for a given category is shown in table 5.17.
This rule shall be applied at any time in the workflow.c()
Attributes of SwDataDefProps Root Element Attribute Existence per Category
ImplementationDataTypeElement
ImplementationDataType
SwPointerTargetProps
FUNCTION_REFERENCE
DATA_REFERENCE
TYPE_REFERENCE
SwServiceArg
STRUCTURE
VALUE
UNION
ARRAY
7
don’t care
8
There is a use case for the definition of an invalidValue for category ARRAY and therefore
category STRUCTURE is also supported for the sake of symmetry.
9
This represents an exception such that it would make sense to use an entire ArrayValueSpeci-
fication as the invalidValue because a string semantically is more than just a bunch of characters
in a row.
4
Attributes of SwDataDefProps Root Element Attribute Existence per Category
ImplementationDataTypeElement
ImplementationDataType
SwPointerTargetProps
FUNCTION_REFERENCE
DATA_REFERENCE
TYPE_REFERENCE
SwServiceArg
STRUCTURE
VALUE
UNION
ARRAY
swAddrMethod x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAlignment x 0..1 0..1 0..1 0..1 0..1 0..1
swBitRepresentation
swCalibrationAccess x x 0..1 0..1 0..1 0..1 0..1
swCalprmAxisSet
swComparisonVariable
swDataDependency
swHostVariable
swImplPolicy x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIntendedResolution
swInterpolationMethod
swIsVirtual
swPointerTargetProps x x x x 1 1
swPointerTargetProps
x x x x 1
.swDataDefProps
swPointerTargetProps
x x x x 1
.functionPointerSignature
swRecordLayout
swRefreshTiming x x x x 0..1 0..1 0..1 0..1
swTextProps
swValueBlockSize
swValueBlockSizeMult
unit
valueAxisDataType
Other Attributes
subElement: ImplementationDataTypeElement x x 1..* 1..* 1
subElement.arraySizeSemantics x x 0..1
subElement.arraySize x x 1
This list makes use of the SwDataDefProps and other meta-model elements which
are explained in detail in the further sections of this chapter.
Regulations regarding the applicable categorys for attribute Implementation-
DataType.swDataDefProps.compuMethod can be found in [constr_1158] inside
section 5.5.1.3.2.
AbstractImplementationDataType ImplementationProps «enumeration»
+symbolProps
ImplementationDataType SymbolProps ArrayImplPolicyEnum
«atpSplitable» 0..1
+ dynamicArraySizeProfile: String [0..1] payloadAsArray
+ isStructWithOptionalElement: Boolean [0..1] payloadAsPointerToArray
+ typeEmitter: NameToken [0..1]
AtpStructureElement
Identifiable «enumeration»
AbstractImplementationDataTypeElement «atpVariation» ArraySizeSemanticsEnum
fixedSize
0..* variableSize
{ordered} +subElement
ImplementationDataTypeElement
+subElement
+ arrayImplPolicy: ArrayImplPolicyEnum [0..1] 0..* {ordered}
«enumeration»
+ arraySizeHandling: ArraySizeHandlingEnum [0..1] ArraySizeHandlingEnum
+ arraySizeSemantics: ArraySizeSemanticsEnum [0..1]
+ isOptional: Boolean [0..1] «atpVariation»
allIndicesSameArraySize
«atpVariation» allIndicesDifferentArraySize
+ arraySize: PositiveInteger [0..1] inheritedFromArrayElementTypeSize
4
Class AbstractImplementationDataType (abstract)
– – – – –
Table 5.18: AbstractImplementationDataType
Class ImplementationDataType
Package M2::AUTOSARTemplates::CommonStructure::ImplementationDataTypes
Note Describes a reusable data type on the implementation level. This will typically correspond to a typedef in
C-code.
Tags:atp.recommendedPackage=ImplementationDataTypes
Base ARElement, ARObject, AbstractImplementationDataType, AtpBlueprint, AtpBlueprintable, AtpClassifier ,
AtpType, AutosarDataType, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
dynamicArray String 0..1 attr Specifies the profile which the array will follow in case this
SizeProfile data type is a variable size array.
isStructWith Boolean 0..1 attr This attribute is only valid if the attribute category is set to
Optional STRUCTURE.
Element
If set to True, this attribute indicates that the
ImplementationDataType has been created with the
intention to define at least one element of the structure as
optional.
subElement ImplementationData * aggr Specifies an element of an array, struct, or union data
(ordered) TypeElement type.
The aggregation of ImplementionDataTypeElement is
subject to variability with the purpose to support the
conditional existence of elements inside a Implementation
DataType representing a structure.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
symbolProps SymbolProps 0..1 aggr This represents the SymbolProps for the Implementation
DataType.
Stereotypes: atpSplitable
Tags:atp.Splitkey=symbolProps.shortName
typeEmitter NameToken 0..1 attr This attribute is used to control which part of the
AUTOSAR toolchain is supposed to trigger data type
definitions.
Table 5.19: ImplementationDataType
Class ImplementationDataTypeElement
Package M2::AUTOSARTemplates::CommonStructure::ImplementationDataTypes
Note Declares a data object which is locally aggregated. Such an element can only be used within the scope
where it is aggregated.
This element either consists of further subElements or it is further defined via its swDataDefProps.
There are several use cases within the system of ImplementationDataTypes fur such a local declaration:
• It can represent the elements of an array, defining the element type and array size
• It can represent an element of a struct, defining its type
• It can be the local declaration of a debug element.
Base ARObject, AbstractImplementationDataTypeElement, AtpClassifier , AtpFeature, AtpStructureElement,
Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
arrayImplPolicy ArrayImplPolicyEnum 0..1 attr This attribute controls the implementation of the payload
of an array. It shall only be used if the enclosing
ImplementationDataType constitutes an array.
arraySize PositiveInteger 0..1 attr The existence of this attributes (if bigger than 0) defines
the size of an array and declares that this Implementation
DataTypeElement represents the type of each single
array element.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
arraySize ArraySizeHandling 0..1 attr The way how the size of the array is handled in case of a
Handling Enum variable size array.
arraySize ArraySizeSemantics 0..1 attr This attribute controls the meaning of the value of the
Semantics Enum array size.
5
4
Class ImplementationDataTypeElement
isOptional Boolean 0..1 attr This attribute represents the ability to declare the
enclosing ImplementationDataTypeElement as optional.
This means that, at runtime, the ImplementationDataType
Element may or may not have a valid value and shall
therefore be ignored.
The underlying runtime software provides means to set
the CppImplementationDataTypeElement as not valid at
the sending end of a communication and determine its
validity at the receiving end.
subElement ImplementationData * aggr Element of an array, struct, or union in case of a nested
(ordered) TypeElement declaration (i.e. without using "typedefs").
The aggregation of ImplementionDataTypeElement is
subject to variability with the purpose to support the
conditional existence of elements inside a Implementation
DataType representing a structure.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
swDataDef SwDataDefProps 0..1 aggr The properties of this ImplementationDataTypeElement.
Props
If the attribute is not set or set to the value False then the respective Implementa-
tionDataTypeElement shall be considered mandatory.c(RS_SWCT_03217, RS_-
SWCT_03320)
[constr_1637] Existence of ImplementationDataTypeElement.isOptional
vs. ImplementationDataType.isStructWithOptionalElement dIf one Im-
plementationDataType.subElement sets attribute isOptional to the value
True then the enclosing ImplementationDataType shall also set attribute is-
StructWithOptionalElement to True.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
In order to be able to generate a proper RTE API for the access to optional elements of
data types in general it is necessary to impose structural requirements on the definition
of ImplementationDataType.
In particular, it is necessary at runtime to store the information about the availability
of a specific ImplementationDataTypeElement where attribute isOptional has
been set to the value True in the context of an ImplementationDataType of cat-
egory STRUCTURE.
An ImplementationDataType that represents an Optional Element Struc-
ture shall contain a special element which represents an availability bitfield.
This bitfield is implemented as an array of uint8 and shall hold one bit for each optional
element contained in the structured data type.
In particular, the applicable structural requirements for an Implementation-
DataType that represents an Optional Element Structure are described in the
following specification items.
[TPS_SWCT_01774] Modeling of ImplementationDataType with optional ele-
ments d
The following approach shall be taken to model an ImplementationDataType that
represents an Optional Element Structure:
• The first ImplementationDataTypeElement of Implementation-
DataType where attribute isStructWithOptionalElement is set to
True shall have the shortName availabilityBitfield. [constr_1638]
applies.
• This ImplementationDataTypeElement shall be of category ARRAY
• The ImplementationDataTypeElement shall set attribute arraySizeSe-
mantics to the value fixedSize.
• The ImplementationDataTypeElement shall aggregate a further Imple-
mentationDataTypeElement in the role subElement for which the following
requirements apply:
10
this relation could be expressed in a more formal way. But it would be a very expansive formal way
in an already complicated specification item. It is assumed that it is sufficient to convey the general idea.
[TPS_SWCT_01759] Use cases for unions dThere are different use cases for the
definition of a union data type:
1. The DataPrototypes derived from the union data type shall be transported
over a communication network. For this purpose, it is necessary to apply a
special modeling in the form of a wrapped union data type, as explained by
[TPS_SWCT_01700].
2. The DataPrototypes created from the union data type are used internally
within the same ECU, e.g. as a PerInstanceMemory, romBlock, or ram-
Block. In this case the modeling of the union data type does not depend on
specific constraints.
c(RS_SWCT_03217)
In summary, there are cases where unions can be used in PortInterfaces, but
these are restricted to the fulfillment of certain conditions that are explained in [con-
str_1607].
[constr_1607] Only Wrapped Union Data Types in PortInterface dWithin the
scope of a PortInterface the usage of a Union data type is only supported
• for Wrapped Union Data Types.
• for a PortInterface that is used to type a PortPrototype that does not
appear as a context in an instanceRef owned by a DataMapping. See also
[constr_1441].
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
5.2.5.5.1 Overview
4
Enumeration ArrayImplPolicyEnum
payloadAsArray This configuration demands the implementation of the payload as an array.
Tags:atp.EnumerationLiteralIndex=0
payloadAsPointerTo This configuration demands the implementation of the payload as a pointer to an array.
Array
Tags:atp.EnumerationLiteralIndex=1
This is the Size Indicator which holds the current number of valid elements of the
variable size array.c(RS_SWCT_03217, RS_SWCT_03181)
[TPS_SWCT_01647] Size Indicator for dynamicArraySizeProfile set to
VSA_LINEAR, VSA_SQUARE, or VSA_FULLY_FLEXIBLE if only Implementation-
DataType is present dFor each ImplementationDataType which has the attribute
dynamicArraySizeProfile set to the value VSA_LINEAR, VSA_SQUARE, or VSA_-
FULLY_FLEXIBLE, the first ImplementationDataType.subElement shall be an
integer large enough to hold the maximum number of valid elements of the variable
size array (according to arraySize).
This is the Size Indicator which holds the current number of valid elements of the
Variable-Size Array Data Type.c(RS_SWCT_03217, RS_SWCT_03181)
[TPS_SWCT_01619] Size Indicator for dynamicArraySizeProfile set to
VSA_RECTANGULAR dIf an ImplementationDataType is mapped to an Applica-
tionArrayDataType where the attribute ApplicationArrayDataType.dynami-
cArraySizeProfile exists and is set to the value VSA_RECTANGULAR, the first
ImplementationDataType.subElement shall be a ImplementationDataType-
Element with the category set to ARRAY and the attribute arraySize set to a value
equal to the number of the according dimension of the corresponding Application-
DataType.c(RS_SWCT_03217, RS_SWCT_03181)
[TPS_SWCT_01648] Size Indicator for dynamicArraySizeProfile set to
VSA_RECTANGULAR if only ImplementationDataType is present dFor each
ImplementationDataType where the attribute ImplementationDataType.dy-
namicArraySizeProfile exists and is set to the value VSA_RECTANGULAR,
the first ImplementationDataType.subElement shall be a Implementation-
DataTypeElement with the category set to ARRAY and the attribute arraySize
set to a value equal to the size of the according dimension of the rectangular array.c
(RS_SWCT_03217, RS_SWCT_03181)
[TPS_SWCT_01620] Size Indicator for dynamicArraySizeProfile set to
VSA_RECTANGULAR dThe elements of this Size Indicator array shall consist of
integers large enough to hold the maximum number of valid elements (according to
maxNumberOfElements).c(RS_SWCT_03217, RS_SWCT_03181)
This array holds the Size Indicators of all dimensions.
[TPS_SWCT_01621] Payload for dynamicArraySizeProfile dIf an Imple-
mentationDataType is mapped to an ApplicationArrayDataType where
the attribute dynamicArraySizeProfile exists, the second Implementation-
DataType.subElement shall be an array which can hold the data of the variable size
array with all dimensions defined for the ApplicationDataType.
The category shall be set to ARRAY and arraySize shall be set to maxNumberO-
fElements of the corresponding ApplicationArrayDataType.c(RS_SWCT_-
03217, RS_SWCT_03181)
MySimpleType: MyPointerType:
ImplementationDataType ImplementationDataType
:SwDataDefProps
:BaseTypeDirectDefinition
baseTypeEncoding = NONE
nativeDeclaration = unsigned short :SwPointerTargetProps
targetCategory = TYPE_REFERENCE
uint16: SwBaseType
:SwDataDefProps :SwDataDefProps
category = FIXED_LENGTH
MyStructType: ImplementationDataType
category = STRUCTURE
:SwDataDefProps :SwDataDefProps
:BaseTypeDirectDefinition
baseTypeEncoding = NONE
nativeDeclaration = unsigned short
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
For clarification, The AUTOSAR RTE does not support a definition of a pointer to a
pointer by way of option 2 anyway. For all intents and purposes, [constr_1254] merely
reflects this restriction on the level of AUTOSAR models.
Option 1 (which is also featured in Figure 5.18) is the only viable way that is positively
supported by the AUTOSAR RTE [2].
swImplPolicy = const
:BaseTypeDirectDefinition :BaseTypeDirectDefinition
Class SwPointerTargetProps
Package M2::MSR::DataDictionary::DataDefProperties
Note This element defines, that the data object (which is specified by the aggregating element) contains a
reference to another data object or to a function in the CPU code. This corresponds to a pointer in the
C-language.
The attributes of this element describe the category and the detailed properties of the target which is
either a data description or a function signature.
Base ARObject
Attribute Type Mult. Kind Note
functionPointer BswModuleEntry 0..1 ref The referenced BswModuleEntry serves as the signature
Signature of a function pointer definition. Primary use case: function
pointer passed as argument to other function.
Tags:xml.sequenceOffset=40
swDataDef SwDataDefProps 0..1 aggr The properties of the target data type.
Props
Tags:xml.sequenceOffset=30
targetCategory Identifier 0..1 attr This specifies the category of the target:
• In case of a data pointer, it shall specify the
category of the referenced data.
• In case of a function pointer, it could be used to
denote the category of the referenced Bsw
ModuleEntry. Since currently no categories for
BswModuleEntry are defined it will be empty.
Tags:xml.sequenceOffset=5
11
Note that the symbol does not necessarily have to consist of a single token, i.e. for all intents and
purposes (for example) unsigned char is also considered the symbol of an integral C data type.
12
The definition of Harmonized Data Objects can be retrieved from ASAM at www.asam.net. Access
is limited to ASAM members.
4
Class BaseType (abstract)
baseType BaseTypeDefinition 1 aggr This is the actual definition of the base type.
Definition
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=20
xml.typeElement=false
xml.typeWrapperElement=false
Class BaseTypeDirectDefinition
Package M2::MSR::AsamHdo::BaseTypes
Note This BaseType is defined directly (as opposite to a derived BaseType)
Base ARObject, BaseTypeDefinition
Attribute Type Mult. Kind Note
5
4
Class BaseTypeDirectDefinition
baseType BaseTypeEncoding 0..1 attr This specifies, how an object of the current BaseType is
Encoding String encoded, e.g. in an ECU within a message sequence.
Tags:xml.sequenceOffset=90
baseTypeSize PositiveInteger 0..1 attr Describes the length of the data type specified in the
container in bits.
Tags:xml.sequenceOffset=70
byteOrder ByteOrderEnum 0..1 attr This attribute specifies the byte order of the base type.
Tags:xml.sequenceOffset=110
memAlignment PositiveInteger 0..1 attr This attribute describes the alignment of the memory
object in bits. E.g. "8" specifies, that the object in
question is aligned to a byte while "32" specifies that it is
aligned four byte. If the value is set to "0" the meaning
shall be interpreted as "unspecified".
Tags:xml.sequenceOffset=100
native NativeDeclarationString 0..1 attr This attribute describes the declaration of such a base
Declaration type in the native programming language, primarily in the
Programming language C. This can then be used by a
code generator to include the necessary declarations into
a header file. For example
BaseType with shortName: "MyUnsignedInt" native
Declaration: "unsigned short"
Results in
typedef unsigned short MyUnsignedInt;
If the attribute is not defined the referring Implementation
DataTypes will not be generated as a typedef by RTE.
If a nativeDeclaration type is given it shall fulfill the
characteristic given by basetypeEncoding and baseType
Size.
This is required to ensure the consistent handling and
interpretation by software components, RTE, COM and
MCM systems.
Tags:xml.sequenceOffset=120
ARElement
+baseTypeDefinition BaseTypeDefinition
BaseType
1
AtpBlueprint
BaseTypeDirectDefinition
AtpBlueprintable
SwBaseType + baseTypeEncoding: BaseTypeEncodingString [0..1]
+ baseTypeSize: PositiveInteger [0..1]
+ byteOrder: ByteOrderEnum [0..1]
+ memAlignment: PositiveInteger [0..1]
+ nativeDeclaration: NativeDeclarationString [0..1]
• [constr_1422] Value of category is VOID dIf the value of the attribute SwBase-
Type.category is set to VOID then the attribute baseTypeSize and base-
TypeEncoding shall not exist at the time when the contract phase
generation is executed.c()
• [constr_1012] Value of category is FIXED_LENGTH dIf the value of the at-
tribute SwBaseType.category is set to FIXED_LENGTH then the attribute
baseTypeSize shall be filled with content at the time when the con-
tract phase generation is executed.c()
• [TPS_SWCT_01444] Size of SwBaseType is specified in bits dIn both cases
(mentioned in [constr_1012]) the size of SwBaseType is specified in bits.c()
• The attribute baseTypeEncoding specifies how the values of the base type are
encoded.
[constr_1014] Supported value encodings for SwBaseType dThe supported
values for attribute BaseTypeDirectDefinition.baseTypeEncoding are:
– 1C: One’s complement
– 2C: Two’s complement
– BCD-P: Packed Binary Coded Decimals
– BCD-UP: Unpacked Binary Coded Decimals
– DSP-FRACTIONAL: Digital Signal Processor
– SM: Sign Magnitude
– IEEE754: floating-point numbers
– ISO-8859-1: single-byte coded character
– ISO-8859-2: single-byte coded character
– WINDOWS-1252: single-byte coded character
– UTF-8: UCS Transformation Format 8
– UTF-16: Character encoding for Unicode code points based on 16 bit code
units [15]
– UCS-2: Universal Character Set 2
– NONE: Unsigned Integer
– VOID: corresponds to a void in C. The encoding is not formally specified
here.
– BOOLEAN: This represents an unsigned integer to be interpreted as boolean.
The value shall be interpreted as true if the value of the unsigned integer
is 1 and it shall be interpreted as false if the value of the unsigned integer
is 0.
4
Enumeration ByteOrderEnum
mostSignificantByte Most significant byte shall come highest address (also known as LittleEndian or as Intel-Format)
Last
Tags:atp.EnumerationLiteralIndex=1
opaque For opaque data endianness conversion has to be configured to Opaque. See AUTOSAR COM
Specification for more details.
Tags:atp.EnumerationLiteralIndex=2
There are uses of data types that on the one hand need a handy term (because this
kind of data type is used a lot) but on the other hand cannot easily be expressed in
simple terms of meta-model elements (like ApplicationDataType).
Therefore, it is not an option to fully describe the characteristics of these kinds of data
types precisely every time one of these is used. A definition of terminology is supposed
to associate the mentioned kinds of data types with the term under which their use shall
be paraphrased.
The definition of and further explanation regarding the term Variable-Size Array
Data Type can be found in chapter 2.7.
There are use cases for sending a DataPrototype that is effectively typed by a union
data type over a communication network. In this case, however, it is necessary to
not only send the DataPrototype itself but add an information about the applicable
member of the union as a form of “meta-data” to the transmission.
By this means the sender can identify the applicable member of the union and the
receiver can accordingly access the proper union element.
It is the nature of union data types that executable code shall symmetrically access
the union, i.e. the member that was written needs to be read, the usage of a union as a
“type converter” is heavily frowned upon (because it causes unspecified behavior from
ISO-C:99 [24] point of view) and shall be discouraged by AUTOSAR.
Thus, AUTOSAR needs to take this condition into account and define a specific mod-
eling for the handling of union data types.
One obvious consequence of this restriction is that for any given ValueSpecifi-
cation taken to initialize a Wrapped Union Data Type the value of the Member
Selector is strictly locked to 1.
As already mentioned in section 2.8, there are use cases for structured data types that
contain optional elements that may or may not exist at a given time.
These data types require a specific modeling on both the level of Application-
DataType and the level of ImplementationDataType.
5.3.1 Overview
«isOfType» «isOfType»
AutosarDataPrototype ApplicationCompositeElementDataPrototype
Chapter 5.4 describes more details about this aspect of the meta-model.
[TPS_SWCT_01445] Applicability of SwDataDefProps for DataPrototypes dThe
applicability of SwDataDefProps for DataPrototypes shall follow the same rules as
for the categorys of the corresponding AutosarDataTypes.c()
The applicability of SwDataDefProps for DataPrototypes is documented in Table
5.7.
Further information can be found in table 5.34 and table 5.35.
Please note that table 5.34 does not include the ApplicationRecordElement and
ApplicationArrayElement because these specializations of ApplicationCom-
positeElementDataPrototype are already part of table 5.7. The same applies for
table 5.35 which does not include the ImplementationDataTypeElement.
Attributes of SwDataDefProps Root El. Attribute Existence per Category
InstantiationDataDefProps
ParameterAccess
DataPrototype
STRUCTURE
COM_AXIS
RES_AXIS
VAL_BLK
BOOLEAN
STRING
CUBOID
CUBE_4
CUBE_5
VALUE
ARRAY
CURVE
MAP
additionalNativeTypeQualifier
annotation x x x * * * * * * * * * * * * *
baseType
compuMethod
dataConstr.dataConstrRule.physCon-
x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
strs
dataConstr.dataConstrRule.internal-
x x d/c13 d/c d/c d/c d/c d/c d/c d/c d/c
Constrs
displayFormat x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
displayPresentation x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
implementationDataType
invalidValue
stepSize x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAddrMethod x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAlignment x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swBitRepresentation
swCalibrationAccess x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swCalprmAxisSet
swCalprmAxisSet.swCalprmAxis/SwAxis-
x x 0..1 0..1 0..1 0..1 0..1 0..1
Grouped.swCalprmRef
swCalprmAxisSet.swCalprmAxis/SwAx-
x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
isIndividual.swVariableRef
5
13
don’t care
4
Attributes of SwDataDefProps Root El. Attribute Existence per Category
InstantiationDataDefProps
ParameterAccess
DataPrototype
STRUCTURE
COM_AXIS
RES_AXIS
VAL_BLK
BOOLEAN
STRING
CUBOID
CUBE_4
CUBE_5
VALUE
ARRAY
CURVE
MAP
swCalprmAxisSet.swCalprmAxis/SwAxis-
Grouped.sharedAxisType
swCalprmAxisSet.swCalprmAxis/SwAx-
isIndividual.inputVariableType
swCalprmAxisSet.swCalprmAxis/SwAx-
isIndividual.unit
swComparisonVariable x 0..1 0..1 0..1 0..1 0..1
swDataDependency x x 0..1 0..1 0..1 0..1 0..1 0..1
swHostVariable
swImplPolicy x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIntendedResolution
swInterpolationMethod x x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIsVirtual x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swPointerTargetProps
swRecordLayout
swRefreshTiming x x 0..1 0..1 0..1 0..1
swTextProps
swValueBlockSize
swValueBlockSizeMult
unit
valueAxisDataType
Table 5.34: Allowed Attributes vs. category for DataPrototypes typed by Application
Data Types
InstantiationDataDefProps
FUNCTION_REFERENCE
ParameterAccess
DATA_REFERENCE
TYPE_REFERENCE
DataPrototype
STRUCTURE
VALUE
UNION
ARRAY
additionalNativeTypeQualifier
annotation x x * * * * * * * *
baseType
compuMethod
dataConstr.dataConstrRule.physConstrs x x d/c14 d/c d/c
dataConstr.dataConstrRule.internalConstrs x x 0..1 0..1 0..1
displayFormat x x 0..1 0..1 0..1 0..1 0..1
displayPresentation x x 0..1 0..1 0..1
implementationDataType
invalidValue
stepSize x x 0..1 0..1
swAddrMethod x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swAlignment x x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swBitRepresentation
swCalibrationAccess x x 0..1 0..1 0..1 0..1 0..1
swCalprmAxisSet
swComparisonVariable
swDataDependency
swHostVariable
swImplPolicy x 0..1 0..1 0..1 0..1 0..1 0..1 0..1
swIntendedResolution
swInterpolationMethod
swIsVirtual
swPointerTargetProps
swPointerTargetProps.swDataDefProps
swPointerTargetProps.functionPointerSignature
swRecordLayout
swRefreshTiming x x 0..1 0..1 0..1 0..1 0..1
swTextProps
swValueBlockSize
swValueBlockSizeMult
unit
valueAxisDataType
Table 5.35: Allowed Attributes vs. category for DataPrototypes typed by Imple-
mentationDataTypes
14
don’t care
Class ParameterDataPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::DataPrototypes
Note A parameter element used for parameter interface and internal behavior, supporting signal like parameter
and characteristic value communication patterns and parameter and characteristic value definition.
Base ARObject, AtpFeature, AtpPrototype, AutosarDataPrototype, DataPrototype, Identifiable, Multilanguage
Referrable, Referrable
Attribute Type Mult. Kind Note
initValue ValueSpecification 0..1 aggr Specifies initial value(s) of the ParameterDataPrototype
4
Class AutosarVariableRef
autosarVariable DataPrototype 0..1 iref This references a variable which is provided by a port
and/or which is part of a CompositeDataType.
InstanceRef implemented by:VariableInAtomicSWC
TypeInstanceRef
autosarVariable ArVariableIn 0..1 aggr This is used if the target variable is inside of variableData
InImplDatatype ImplementationData Prototype typed by an ImplementationDataType.
InstanceRef
localVariable VariableDataPrototype 0..1 ref This reference is used if the variable is local to the current
component. It would also be possible to use the instance
refence here. Such an instance ref would not have a
contextElement, since the current instance is the context.
But the local instance is a special case which may provide
further optimization. Therefore an explicit reference is
provided for this case.
AutosarVariableRef
+autosarVariable 0..1
AtpInstanceRef
VariableInAtomicSWCTypeInstanceRef
AutosarDataPrototype +rootVariableDataPrototype
ArVariableInImplementationDataInstanceRef
VariableDataPrototype
0..1
Rules for the modeling and semantics of an AtpInstanceRef are defined in [11].
[constr_2536] Target of an autosarVariable in AutosarVariableRef shall re-
fer to a variable dThe target of autosarVariable (which in fact is an instance ref) in
AutosarVariableRef shall either be or be nested in VariableDataPrototype.
This means that the target shall either be a VariableDataPrototype or an Appli-
cationCompositeElementDataPrototype that in turn is owned by a Variable-
DataPrototype.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
c()
Please note that there is a very limited amount of use-cases available where the
AutosarParameterRef can (with the active consent of the AUTOSAR standard) ref-
erence a VariableDataPrototype.
[constr_1173] Applicability of AutosarParameterRef referencing a Variable-
DataPrototype dA reference from AutosarParameterRef to VariableDat-
aPrototype is only applicable if the AutosarParameterRef is used in the
context of SwAxisGrouped at the time when the contract phase gener-
ation is executed.c()
For example, the use case referenced in [constr_1173] applies if it is required to store
a grouped axis in a variable in order to adapt the axis during run-time of the ECU
by a dedicated algorithm. Note that in all cases where [constr_1173] does not apply
[constr_2535] shall be fulfilled.
Class AutosarParameterRef
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::DataElements
Note This class represents a reference to a parameter within AUTOSAR which can be one of the following use
cases:
localParameter:
• localParameter which is used as whole (e.g. sharedAxis for curve)
autosarVariable:
• a parameter provided via PortPrototype which is used as whole (e.g. parameterAccess)
• an element inside of a composite local parameter typed by ApplicationDatatype (e.g. sharedAxis
for a curve)
• an element inside of a composite parameter provided via Port and typed by ApplicationDatatype
(e.g. sharedAxis for a curve)
autosarParameterInImplDatatype:
• an element inside of a composite local parameter typed by ImplementationDatatype
• an element inside of a composite parameter provided via PortPrototype and typed by
ImplementationDatatype
Base ARObject
Attribute Type Mult. Kind Note
autosar DataPrototype 0..1 iref This instance reference is used if the calibration
Parameter parameter is either imported via a port or is part of a
composite data structure.
InstanceRef implemented by:ParameterInAtomicSWC
TypeInstanceRef
localParameter DataPrototype 0..1 ref In the majority of cases this reference goes to Parameter
DataPrototypes rather than VariableDataPrototypes.
Pointing the reference to a VariableDataPrototype is
limited to special use cases, e.g. if the AutosarParameter
Ref is used in the context of an SwAxisGrouped.
This reference is used if the arParameter is local to the
current component.
Of course, it would technically also be feasible to use an
InstanceRef for this case. However, the InstanceRef
5
4
Class AutosarParameterRef
4
would not have a contextElement (because the current
instance is the context).
Hence, the local instance is a special case which may
provide further optimization. Therefore an explicit
reference is provided for this case.
The attribute Ref.index shall be used whenever a model element that represents an
array is referenced in a scalar context, i.e. when the reference is supposed to identify
a specific array element.
Primitive Ref
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This primitive denotes a name based reference. For detailed syntax see the xsd.pattern.
• first slash (relative or absolute reference) [optional]
• Identifier [required]
• a sequence of slashes and Identifiers [optional]
This primitive is used by the meta-model tools to create the references.
Tags:
xml.xsd.customType=REF
xml.xsd.pattern=/?[a-zA-Z][a-zA-Z0-9_]{0,127}(/[a-zA-Z][a-zA-Z0-9_]{0,127})*
xml.xsd.type=string
Attribute Type Mult. Kind Note
base Identifier 0..1 attr This attribute reflects the base to be used for this
reference.
Tags:xml.attribute=true
blueprintValue String 0..1 attr This represents a description that documents how the
value shall be defined when deriving objects from the
blueprint.
Tags:
atp.Status=draft
xml.attribute=true
5
4
Primitive Ref
index PositiveInteger 0..1 attr This attribute supports the use case to point on specific
elements in an array. This is in particular required if
arrays are used to implement particular data objects.
Tags:xml.attribute=true
A very typical example for such a situation is the access to an element of an Appli-
cationArrayDataType by means of a reference to ApplicationArrayElement
in which the index attribute is used.
The usage of the index attribute does not make sense if the context of the access is
already scalar, e.g. accessing an ApplicationRecordElement in the context of an
ApplicationRecordDataType, the usage of the attribute index in a context that is
already scalar by nature would also be misleading and is therefore prohibited.
[constr_1161] Applicability of the attribute Ref.index dThe usage of attribute Ref.
index is limited to references to the following meta-classes:
• ApplicationArrayElement
• Sub-classes of AbstractImplementationDataTypeElement.
This rule shall be imposed at any time in the workflow.c()
SwComponentType AtpBlueprintable
AutosarParameterRef
AtomicSwComponentType AtpPrototype
PortPrototype
AtpInstanceRef
ParameterInAtomicSWCTypeInstanceRef
0..1
0..1 {subsets
«instanceRef» {redefines atpContextElement}
+localParameter 0..1 +autosarParameter 0..1 +targetDataPrototype atpTarget} +rootParameterDataPrototype
AtpPrototype
DataPrototype
ApplicationCompositeElementDataPrototype +contextDataPrototype
0..*
{ordered,
subsets
atpContextElement}
AtpInstanceRef
VariableInAtomicSWCTypeInstanceRef
«instanceRef»
0..1
{redefines
+autosarVariable 0..1 +targetDataPrototype atpTarget}
AtpPrototype
DataPrototype
0..*
{ordered,
subsets
+contextDataPrototype atpContextElement}
AutosarDataPrototype ApplicationCompositeElementDataPrototype
+localVariable 0..1
VariableDataPrototype +rootVariableDataPrototype
0..1
{subsets
atpContextElement}
0..*
+portPrototype 0..1 +targetDataPrototype 0..1 +contextDataPrototype {ordered}
DataPrototype AbstractImplementationDataType
VariableDataPrototype ImplementationDataTypeElement
AutosarDataPrototype +subElement ImplementationDataType
0..* {ordered}
«atpVariation»
+type
:ImplementationDataType
!"#$% &'#
category = ARRAY
+subElement
+contextDataPrototype
:ImplementationDataTypeElement
{index = 1} category = ARRAY
+subElement
+contextDataPrototype :ImplementationDataTypeElement
{index = 2} category = TYPE_REFERENCE
(
+implementationDataType
:ImplementationDataType
category = STRUCTURE
+subElement +subElement
: :
ImplementationDataTypeElement ImplementationDataTypeElement
+subElement +subElement
+implementationDataType
:ImplementationDataType
category = VALUE
+baseType
:SwBaseType
category = FIXED_LENGTH
4
Class ArVariableInImplementationDataInstanceRef
rootVariable VariableDataPrototype 0..1 ref This refers to the VariableDataPrototype typed by the
DataPrototype ImplementationDatatype in which the target can be found.
Tags:xml.sequenceOffset=20
targetData AbstractImplementation 0..1 ref This reference points to the target ImplementationData
Prototype DataTypeElement TypeElement.
Tags:xml.sequenceOffset=40
Please note that it is also possible to access the inside of a nested ParameterDat-
aPrototype typed by an ImplementationDataType in pretty much the same way
as this is possible for a VariableDataPrototype typed by an Implementation-
DataType.
[TPS_SWCT_01738] Context path in ArParameterInImplementationDataIn-
stanceRef dThe references in the roles
• portPrototype
• rootParameterDataPrototype
• ordered collection of contextDataPrototype
• targetDataPrototype
constitute the path leading from the root to the specified inner instance of a parameter
inside a ParameterDataPrototype typed by an ImplementationDataType.c()
ArParameterInImplementationDataInstanceRef
0..*
+portPrototype 0..1 +targetDataPrototype 0..1 +contextDataPrototype {ordered}
DataPrototype AbstractImplementationDataType
ParameterDataPrototype ImplementationDataTypeElement +subElement
AutosarDataPrototype ImplementationDataType
0..* {ordered}
«atpVariation»
4
Class ArParameterInImplementationDataInstanceRef
targetData AbstractImplementation 0..1 ref This reference points to the target ImplementationData
Prototype DataTypeElement TypeElement.
5.4.1 Overview
As it has already been shown in the previous chapters, various properties and asso-
ciations can be attached to the definition of data types as well as prototypes. These
are described by the meta-class SwDataDefProps which covers all properties of a
particular data object under various aspects.
In general, the properties specified within SwDataDefProps may apply to all kind of
data declared within the software-component template and within the basic software
module description template as well, e.g. component local data, data used for commu-
nication, data used for measurement as well as for calibration.
However, there are constraints for the attributes depending on the role of the data:
Attributes of SwDataDefProps Usage For Place of Setting
InstantiationDataDefProps
ImplementationDataType
FlatInstanceDescriptor
ApplicationDataType
PerInstanceMemory
ParameterAccess
McDataInstance
DataPrototype
SwSystemconst
SwServiceArg
Other Usage
ComSpec
RTE
A2L
additionalNativeTypeQualifier x x NA D I NA NA NA D NA S NA NA
annotation x D A A A A A D NA A D NA
baseType x x x NA D I I I R D NA S M NA
compuMethod x x x D AI I I NA R I AI S D NA
dataConstr x x x D C R R I NA R NA S D NA
displayFormat x D A R R I NA R NA S D NA
displayPresentation x x x D A R R NA NA NA NA S NA NA
5
4
Attributes of SwDataDefProps Usage For Place of Setting
InstantiationDataDefProps
ImplementationDataType
FlatInstanceDescriptor
ApplicationDataType
PerInstanceMemory
ParameterAccess
McDataInstance
DataPrototype
SwSystemconst
SwServiceArg
Other Usage
ComSpec
RTE
A2L
implementationDataType x x NA D I I I NA D NA NA NA NA
invalidValue x x D A I I NA D NA NA S NA NA
stepSize x D A A A A NA NA A S NA NA
swAddrMethod x x x D R R R NA NA NA R NA NA D
swAlignment x x NA D R R NA NA NA NA NA NA NA
swBitRepresentation x x NA NA NA NA NA NA NA NA D NA NA
swCalibrationAccess x x D R R R NA NA R R S D NA
swCalprmAxisSet x x D NA I I I NA NA NA S NA NA
swCalprmAxisSet.swCalprmAxis
x NA NA NA D R NA NA NA S NA NA
/SwAxisGrouped.swCalprmRef
swCalprmAxisSet.swCalprmAxis
x NA NA NA D R NA NA NA S NA NA
/SwAxisIndividual.swVariableRef
swCalprmAxisSet.swCalprmAxis
x D NA NA NA NA NA NA NA S NA NA
/SwAxisGrouped.sharedAxisType
swCalprmAxisSet.swCalprmAxis
x D NA NA NA NA NA NA NA S NA NA
/SwAxisIndividual.inputVariableType
swCalprmAxisSet/SwAxisIndividual.unit opt. D NA I I I NA I NA S NA NA
swComparisonVariable x NA NA NA NA D NA NA NA S NA NA
swDataDependency x x NA NA D R NA NA NA NA S NA NA
swHostVariable x x NA NA NA NA NA NA NA NA D NA NA
swImplPolicy x x D A A NA NA NA D NA NA NA NA
swIntendedResolution x D15 NA NA NA NA NA NA NA NA NA NA
swInterpolationMethod x D I R R R NA NA NA S NA NA
swIsVirtual x NA NA D R NA NA NA NA S NA NA
swPointerTargetProps x NA D I NA NA NA D NA NA NA NA
swRecordLayout x x x D NA I I I NA NA NA S NA NA
swRefreshTiming x D R R R NA NA R R R NA NA
swTextProps x x D I I I I NA NA NA S NA NA
swValueBlockSize x x D I I I I NA NA NA S NA NA
swValueBlockSizeMult x x D I I I I NA NA NA S NA NA
unit x x D I I I NA NA I NA S D NA
valueAxisDataType x x D I I I I NA NA NA S NA NA
15
swIntendedResolution is used only in an early phase of the definition of data types, namely
in the context of the definition of so-called blueprints. To that extent, swIntendedResolution rep-
resents a non-binding requirement that shall later be considered for the definition of an appropriate
CompuMethod.
Some property names contain the term “variable” or “calprm”, this comes from histor-
ical16 reasons and can be taken as some hint where the property most likely applies
to.
The usage of the "/" in the table rows mentioning the content of swCalprmAxisSet.
swCalprmAxis, in particular SwAxisGrouped.swCalprmRef and SwAxisGrouped.
sharedAxisType resp. SwAxisIndividual.swVariableRef, SwAxisIndivid-
ual.unit, and SwAxisIndividual.inputVariableType represents a "shortcut"
that glosses over a specific aspect of the modeling of SwCalprmAxis that is visible in
the model but does not appear in the AUTOSAR XML schema, see Figure 5.29 (which
contains all the meta-classes and roles mentioned in the table entries).
In particular, the "shortcut" affects the existence of meta-class SwCalprmAxisType-
Props and its aggregation in the role SwCalprmAxis.swCalprmAxisTypeProps.
As depicted in Figure 5.29, SwCalprmAxisTypeProps acts as an abstract base class
to both SwAxisGrouped and SwAxisIndividual.
In ARXML files that conform to the AUTOSAR XML schema, however, both SwAx-
isGrouped and SwAxisIndividual appear as direct child elements of SwCal-
prmAxis.
SwCalprmAxisTypeProps +swCalprmAxisTypeProps SwCalprmAxis +swCalprmAxis SwCalprmAxisSet
+sharedAxisType ApplicationDataType
0..1 ApplicationPrimitiveDataType
+inputVariableType
ARElement
SwAxisIndividual 0..1 +unit
Unit
«atpVariation» 0..1
+swVariableRef SwVariableRefProxy + factorSiToUnit: Float [0..1]
+ swMaxAxisPoints: Integer [0..1]
+ offsetSiToUnit: Float [0..1]
+ swMinAxisPoints: Integer [0..1] 0..* {ordered}
This difference between meta-model and AUTOSAR XML schema is explained by the
existence of a set of tags at the aggregation SwCalprmAxis.swCalprmAxisType-
Props. The details of how these tags impact the schema generation are explained in
the TPS XML Schema Production Rules [25].
To summarize, the "shortcut" in the table rows simply approximates the situation in
ARXML instead of reflecting the actual modeling in the AUTOSAR meta-model.
16
In the beginning of ASAM and MSR, measurements and calibration parameters (characteristics)
were separated and the properties were merged over time.
4
Class <<atpVariation>> SwDataDefProps
implementation AbstractImplementation 0..1 ref This association denotes the ImplementationDataType of
DataType DataType a data declaration via its aggregated SwDataDefProps. It
is used whenever a data declaration is not directly
referring to a base type. Especially
• redefinition of an ImplementationDataType via a
"typedef" to another ImplementationDatatype
• the target type of a pointer (see SwPointerTarget
Props), if it does not refer to a base type directly
• the data type of an array or record element within
an ImplementationDataType, if it does not refer to
a base type directly
• the data type of an SwServiceArg, if it does not
refer to a base type directly
Tags:xml.sequenceOffset=215
invalidValue ValueSpecification 0..1 aggr Optional value to express invalidity of the actual data
element.
Tags:xml.sequenceOffset=255
stepSize Float 0..1 attr This attribute can be used to define a value which is
added to or subtracted from the value of a DataPrototype
when using up/down keys while calibrating.
swAddrMethod SwAddrMethod 0..1 ref Addressing method related to this data object. Via an
association to the same SwAddrMethod it can be
specified that several DataPrototypes shall be located in
the same memory without already specifying the memory
section itself.
Tags:xml.sequenceOffset=30
swAlignment AlignmentType 0..1 attr The attribute describes the intended typical alignment of
the DataPrototype. If the attribute is not defined the
alignment is determined by the swBaseType size and the
memoryAllocationKeywordPolicy of the referenced Sw
AddrMethod.
Tags:xml.sequenceOffset=33
swBit SwBitRepresentation 0..1 aggr Description of the binary representation in case of a bit
Representation variable.
Tags:xml.sequenceOffset=60
swCalibration SwCalibrationAccess 0..1 attr Specifies the read or write access by MCD tools for this
Access Enum data object.
Tags:xml.sequenceOffset=70
swCalprmAxis SwCalprmAxisSet 0..1 aggr This specifies the properties of the axes in case of a
Set curve or map etc. This is mainly applicable to calibration
parameters.
Tags:xml.sequenceOffset=90
swComparison SwVariableRefProxy * aggr Variables used for comparison in an MCD process.
Variable
Tags:
xml.sequenceOffset=170
xml.typeElement=false
swData SwDataDependency 0..1 aggr Describes how the value of the data object has to be
Dependency calculated from the value of another data object (by the
MCD system).
Tags:xml.sequenceOffset=200
5
4
Class <<atpVariation>> SwDataDefProps
swHostVariable SwVariableRefProxy 0..1 aggr Contains a reference to a variable which serves as a
host-variable for a bit variable. Only applicable to bit
objects.
Tags:
xml.sequenceOffset=220
xml.typeElement=false
swImplPolicy SwImplPolicyEnum 0..1 attr Implementation policy for this data object.
Tags:xml.sequenceOffset=230
swIntended Numerical 0..1 attr The purpose of this element is to describe the requested
Resolution quantization of data objects early on in the design
process.
The resolution ultimately occurs via the conversion
formula present (compuMethod), which specifies the
transition from the physical world to the standardized
world (and vice-versa) (here, "the slope per bit" is present
implicitly in the conversion formula).
In the case of a development phase without a fixed
conversion formula, a pre-specification can occur through
swIntendedResolution.
The resolution is specified in the physical domain
according to the property "unit".
Tags:xml.sequenceOffset=240
swInterpolation Identifier 0..1 attr This is a keyword identifying the mathematical method to
Method be applied for interpolation. The keyword needs to be
related to the interpolation routine which needs to be
invoked.
Tags:xml.sequenceOffset=250
swIsVirtual Boolean 0..1 attr This element distinguishes virtual objects. Virtual objects
do not appear in the memory, their derivation is much
more dependent on other objects and hence they shall
have a swDataDependency .
Tags:xml.sequenceOffset=260
swPointerTarget SwPointerTargetProps 0..1 aggr Specifies that the containing data object is a pointer to
Props another data object.
Tags:xml.sequenceOffset=280
swRecord SwRecordLayout 0..1 ref Record layout for this data object.
Layout
Tags:xml.sequenceOffset=290
swRefresh MultidimensionalTime 0..1 aggr This element specifies the frequency in which the object
Timing involved shall be or is called or calculated. This timing
can be collected from the task in which write access
processes to the variable run. But this cannot be done by
the MCD system.
So this attribute can be used in an early phase to express
the desired refresh timing and later on to specify the real
refresh timing.
Tags:xml.sequenceOffset=300
swTextProps SwTextProps 0..1 aggr the specific properties if the data object is a text object.
Tags:xml.sequenceOffset=120
swValueBlock Numerical 0..1 attr This represents the size of a Value Block
Size
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=80
5
4
Class <<atpVariation>> SwDataDefProps
swValueBlock Numerical * attr This attribute is used to specify the dimensions of a value
SizeMult block (VAL_BLK) for the case that that value block has
(ordered) more than one dimension.
The dimensions given in this attribute are ordered such
that the first entry represents the first dimension, the
second entry represents the second dimension, and so
on.
For one-dimensional value blocks the attribute swValue
BlockSize shall be used and this attribute shall not exist.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
unit Unit 0..1 ref Physical unit associated with the semantics of this data
object. This attribute applies if no compuMethod is
specified. If both units (this as well as via compuMethod)
are specified the units shall be compatible.
Tags:xml.sequenceOffset=350
valueAxisData ApplicationPrimitive 0..1 ref The referenced ApplicationPrimitiveDataType represents
Type DataType the primitive data type of the value axis within a
compound primitive (e.g. curve, map). It supersedes
CompuMethod, Unit, and BaseType.
Tags:xml.sequenceOffset=355
Primitive NativeDeclarationString
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This string contains a native data declaration of a data type in a programming language. It is basically a
string, but white-space shall be preserved.
Tags:
xml.xsd.customType=NATIVE-DECLARATION-STRING
xml.xsd.type=string
xml.xsd.whiteSpace=preserve
Class SwBitRepresentation
Package M2::MSR::DataDictionary::DataDefProperties
Note Description of the structure of a bit variable: Comprises of the bitPosition in a memory object (e.g. sw
HostVariable, which stands parallel to swBitRepresentation) and the numberOfBits . In this way,
interrelated memory areas can be described. Non-related memory areas are not supported.
Base ARObject
Attribute Type Mult. Kind Note
bitPosition Integer 0..1 attr If the "bit data object" is hosted within another data object
(e.g. if the memory can be accessed via byte as well as
bit address), this attribute specifies the position of the
data object. The count starts at zero (0).
Tags:xml.sequenceOffset=20
numberOfBits Integer 0..1 attr Number of bits allocated by a "bit data object" within its
host data object.
Tags:xml.sequenceOffset=30
Primitive DisplayFormatString
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This is a display format specifier for the display of values e.g. in documents or in measurement and
calibration systems.
The display format specifier is a subset of the ANSI C printf specifiers with the following form:
% [flags] [width] [.prec] type character
For more details refer to "ASAM-HarmonizedDataObjects-V1.1.pdf" chapter 13.3.2 DISPLAY OF DATA.
Due to the numerical nature of value settings, only the following type characters are allowed:
• d: Signed decimal integer
• i: Signed decimal integer
• o: Unsigned octal integer
• u: Unsigned decimal integer
• x: Unsigned hexadecimal integer, using "abcdef"
• X: Unsigned hexadecimal integer, using "ABCDEF"
• e: Signed value having the form [-]d.dddd e [sign]ddd where d is a single decimal digit, dddd is
one or more decimal digits, ddd is exactly three decimal digits, and sign is + or -
• E: Identical to the e format except that E rather than e introduces the exponent
• f: Signed value having the form [-]dddd.dddd, where dddd is one or more decimal digits; the
number of digits before the decimal point depends on the magnitude of the number, and the
number of digits after the decimal point depends on the requested precision
• g: Signed value printed in f or e format, whichever is more compact for the given value and
precision; trailing zeros are truncated, and the decimal point appears only if one or more digits
follow it
• G: Identical to the g format, except that E, rather than e, introduces the exponent (where
appropriate)
Tags:
xml.xsd.customType=DISPLAY-FORMAT-STRING
xml.xsd.pattern=%[ \-+#]?[0-9]*(\.[0-9]+)?[diouxXfeEgGcs]
xml.xsd.type=string
Class Annotation
Package M2::MSR::Documentation::Annotation
Note This is a plain annotation which does not have further formal data.
Base ARObject, GeneralAnnotation
Attribute Type Mult. Kind Note
– – – – –
Table 5.48: Annotation
By showing the input value and the comparison value the calibration engineer can see if
the current working point is above or below a curve provident thresholds. For example,
in a curve specifying a temperature-depending gear shift threshold engine speed the
engine speed can be shown as “comparisonVariable”.
These variables can be used to display the value of a variable on the value axis of a
calibration parameter (characteristic), that is currently displayed in the MCD-System.
The purpose is to compare the appropriate result from the calibration parameter in
question, with a value being calculated or taken from a sensor (the comparison vari-
able).
The sole purpose of this comparison-variable is therefore to serve the calibration pro-
cess.c()
Vs
tx tmot
Figure 5.30: Explanation of swComparisonVariable
Access policy for the MCD system is the most likely subject to be redefined on the
DataPrototype of even on an instantiation level.
Section 5.4.3 describes how SwDataDefProps are used for measuring purposes
while Section 5.4.4 describes the construction of characteristics based on the com-
bination of SwDataDefProps with DataPrototypes.
Section 2.2.2 describes in which context calibration parameters can be defined. Fi-
nally, sections 2.2.3, 7.5.4, and 5.5.4 show how calibration parameters are used in
RunnableEntitys and show the link to an actual ECU implementation.
Enumeration SwImplPolicyEnum
Package M2::MSR::DataDictionary::DataDefProperties
Note Specifies the implementation strategy with respect to consistency mechanisms of variables.
Literal Description
const forced implementation such that the running software within the ECU shall not modify it. For example
implemented with the "const" modifier in C. This can be applied for parameters (not for those in
NVRAM) as well as argument data prototypes.
Tags:atp.EnumerationLiteralIndex=0
fixed This data element is fixed. In particular this indicates, that it might also be implemented e.g. as in
place data, (#DEFINE).
Tags:atp.EnumerationLiteralIndex=1
measurementPoint The data element is created for measurement purposes only. The data element is never read directly
within the ECU software. In contrast to a "standard" data element in an unconnected provide port is,
this unconnection is guaranteed for measurementPoint data elements.
Tags:atp.EnumerationLiteralIndex=2
queued The content of the data element is queued and the data element has ’event’ semantics, i.e. data
elements are stored in a queue and all data elements are processed in ’first in first out’ order. The
queuing is intended to be implemented by RTE Generator. This value is not applicable for parameters.
Tags:atp.EnumerationLiteralIndex=3
standard This is applicable for all kinds of data elements. For variable data prototypes the ’last is best’
semantics applies. For parameter there is no specific implementation directive.
Tags:atp.EnumerationLiteralIndex=4
in role implicitInterRunnableVariable
in role explicitInterRunnableVariable
in role arTypedPerInstanceMemory
in role perInstanceParameter
in SenderReceiverInterface
ParameterDataPrototype
ParameterDataPrototype
ParameterDataPrototype
ParameterDataPrototype
ParameterDataPrototype
VariableDataPrototype
VariableDataPrototype
VariableDataPrototype
VariableDataPrototype
VariableDataPrototype
VariableDataPrototype
ArgumentDataPrototype
VariableDataPrototype
in role sharedParameter
in ParameterInterface
in role constantMemory
in role staticMemory
in NvDataInterface
in role ramBlock
in role romBlock
SwServiceArg
const NA NA NA NA NA NA NA x NA x x x NA x
fixed NA NA NA NA NA NA NA x NA NA NA x NA NA
measurementPoint x NA NA NA NA x x NA NA NA NA NA NA NA
queued x NA NA NA NA NA NA NA NA NA NA NA NA NA
standard x x x x x x x x x x x x x x
Table 5.51: Allowed attributes values for swImplPolicy vs. DataPrototypes and their
roles
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_2045] swImplPolicy for ParameterDataPrototype in the role perIn-
stanceParameter dThe overriding value of attribute swImplPolicy of a Param-
eterDataPrototype in the role SwcInternalBehavior.perInstanceParame-
ter shall be standard or const.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_2046] swImplPolicy for ParameterDataPrototype in the role con-
stantMemory dThe overriding value of attribute swImplPolicy of a Parame-
terDataPrototype aggregated in the role InternalBehavior.constantMemory
shall be standard, const, or fixed.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_2047] swImplPolicy for ArgumentDataPrototype dThe overriding value
of attribute swImplPolicy of an ArgumentDataPrototype shall be standard.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_2048] swImplPolicy for SwServiceArg dThe overriding value of attribute
swImplPolicy of a SwServiceArg shall be standard or const.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[TPS_SWCT_02000] Default value for attribute swImplPolicy dIf the attribute
swImplPolicy is not explicitly set at any of the locations listed in “Place of Setting”
for SwDataDefProps, the default value standard applies.c()
Please note that the locations listed in “Place of Setting” for SwDataDefProps are
described in Table 5.43.
The diagram 5.5 shows that in addition to the semantics defined through the com-
puMethod (explained below in chapter 5.5.1), also an invalidValue can be speci-
fied. This is a requirement of the VFB [3], allowing expressing which specific value is
used to indicate invalidation.
ARElement «atpVariation» ValueSpecification
AtpType +swDataDefProps SwDataDefProps +invalidValue
AutosarDataType 0..1 0..1
The invalidValue can be used in different flavors (also illustrated in Figure 5.6):
• [TPS_SWCT_01432] Keep the invalidValue transparent to the sending
and receiving software components dOn the one hand it is possible to keep
the invalidValue transparent to the sending and receiving software compo-
nents. In this case the invalidation API of the RTE on the sender side has to be
used.
The receiving software component can either use the data receive status or the
DataReceiveErrorEvent respectively DataReceivedEvent to decide about
the validity of the received data or the receiving software component can rely on
the reception of an initValue as a default value in case of data invalidation.
In this case the invalid value should (and usually will) be outside the range limits
defined by the compuMethod.c()
• [TPS_SWCT_01434] Sender and receiver have knowledge of invalid value
dOn the other hand it is possible that the communicating software components
do have knowledge about the invalidValue and the invalidValue is visible
for them.
This is in particular the case if the sender and receiver are calculating a checksum
over a larger data structure to implement an end to end communication protec-
tion. To ensure the integrity of the checksums it is required to set invalid values
by the sending component directly and to receive invalid values unchanged.
In this case the invalid value should (and usually will) be inside the range limits
defined by the compuMethod.c()
• [TPS_SWCT_01436] Different receivers require different handling of data
invalidation dIt is possible that in case of 1:n communication different receivers
requiring a different handling of data invalidation depending on the criticality of
its functionality. For instance, one receiver applies the checksum based end to
end communication protection and another receiver relies on the substitution of
invalid values by invalidValues.c()
A typical use case for putting the invalidValue inside the boundaries of the appli-
cable CompuMethod is a composite data type that contains the values of all individual
wheel speeds. If one of the sensors fails and starts to send invalidValue it would
probably not make sense to consider the whole composite data element invalid.
It may very likely still be possible to make sense of the remaining intact wheel speed
values and carry on with whatever business the receiving software-component has with
that data.
From this perspective, it would obviously be OK for the sending software-component to
actively send the invalidValue that is then processed as a “regular” value without
applying additional semantics by the RTE/Com.
[TPS_SWCT_01646] Sending invalidValue without invalidation applied by
RTE/Com dFor intentionally sending invalidValue without invalidation applied by
ARElement PortPrototype
+requiredInterface RPortPrototype
AtpBlueprint AbstractRequiredPortPrototype
AtpBlueprintable «isOfType» + mayBeUnconnected: Boolean [0..1]
AtpType 0..1
{redefines atpType}
PortInterface
+requiredComSpec
+ isService: Boolean [0..1]
RPortComSpec 0..*
+ serviceKind: ServiceProviderEnum [0..1]
ReceiverComSpec
SenderReceiverInterface
NonqueuedReceiverComSpec
+dataElement 0..* + aliveTimeout: TimeValue [0..1]
AutosarDataPrototype + enableUpdate: Boolean [0..1]
+ handleDataStatus: Boolean [0..1]
VariableDataPrototype + handleNeverReceived: Boolean [0..1]
+ handleTimeoutType: HandleTimeoutEnum [0..1]
+dataElement 0..1
«enumeration»
HandleInvalidEnum
+invalidationPolicy 0..* +networkRepresentation 0..1+timeoutSubstitutionValue 0..1 +initValue 0..1
keep
InvalidationPolicy replace «atpVariation» +invalidValue ValueSpecification
dontInvalidate SwDataDefProps
+ handleInvalid: HandleInvalidEnum [0..1] externalReplacement 0..1 + shortLabel: Identifier [0..1]
In this case the invalidValue owned by the SwDataDefProps that in turn is owned
by the respective dataElement is relevant for the fulfillment of [constr_1140]. The
“big picture” of this relationship is sketched in Figure 5.32.
[constr_1219] Invalidation depends on the value of swImplPolicy dInvalidation of
dataElements is only supported for dataElements where the value of swImplPol-
icy is not set to queued at the time when the contract phase genera-
tion is executed.c()
[constr_1282] Restriction concerning the usage of RuleBasedValueSpeci-
fication or a ReferenceValueSpecification for the specification of an
invalidValue dThe aggregation of a RuleBasedValueSpecification or a
ReferenceValueSpecification for the definition of a ApplicationPrimi-
tiveDataType.swDataDefProps.invalidValue is not supported at the time
when the contract phase generation is executed.c()
ARElement
SwAxisGeneric +swAxisGeneric SwAxisIndividual
AtpBlueprint
+dataConstr
0..1 AtpBlueprintable
0..1 DataConstr
SwVariableRefProxy +swVariableRef
0..* ARElement
{ordered} +compuMethod AtpBlueprint
AtpBlueprintable
0..1 CompuMethod
+unit ARElement
Unit
0..1 +swCalprmAxisTypeProps 0..1
Figure 5.35 shows how an individual axis is represented by the meta-model. The corre-
sponding M1 Model is illustrated in Figure 5.36. The SwAxisIndividual references
value-models to account the minimum and the maximum number of axis values as well
as the number of axis points.
ARElement AtpBlueprint ARElement
AtpBlueprintable AtpBlueprint
SwRecordLayout
BaseType AtpBlueprintable
SwBaseType SwAddrMethod
+swVariableRef
SwAxisGrouped +swCalprmRef SwCalprmRefProxy SwVariableRefProxy SwAxisIndividual
0..* {ordered}
1
Hence, the size of the structure to hold the functional values is determined by the
number of axis values for all axes. The type of the axis values is determined when the
type of the referenced input value (swVariableRef) has been set. For further details
see section 5.4.5.
[TPS_SWCT_01107] swMinAxisPoints and swMaxAxisPoints represent varia-
tion points dThe value of attributes swMinAxisPoints and swMaxAxisPoints is
subject to variant handling.c(RS_SWCT_03148)
Element: ApplicationDataType
category = CURVE
shortName = MyCurve
Element: CompuMethod
Element: SwAddrMethod
Element: SwRecordLayout
swCalprmAxisTypeProps:
SwAxisIndividual
Element:
ApplicationPrimitiveDataType
Element: Unit
Class SwCalprmAxisSet
Package M2::MSR::DataDictionary::CalibrationParameter
Note This element specifies the input parameter axes (abscissas) of parameters (and variables, if these are
used adaptively).
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class SwCalprmAxisSet
swCalprmAxis SwCalprmAxis * aggr One axis belonging to this SwCalprmAxisSet
Tags:
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=20
xml.typeElement=false
xml.typeWrapperElement=false
Class SwCalprmAxis
Package M2::MSR::DataDictionary::CalibrationParameter
Note This element specifies an individual input parameter axis (abscissa).
Base ARObject
Attribute Type Mult. Kind Note
category CalprmAxisCategory 0..1 attr This property specifies the category of a particular axis.
Enum
Tags:xml.sequenceOffset=30
displayFormat DisplayFormatString 0..1 attr This property specifies how the axis values shall be
displayed e.g. in documents or in measurement and
calibration tools.
Tags:xml.sequenceOffset=100
swAxisIndex AxisIndexType 0..1 attr This attribute specifies which axis is specified by the
containing SwCalprmAxis.
For example in a curve this is usually "1". In a map this is
"1" or "2".
Tags:xml.sequenceOffset=20
swCalibration SwCalibrationAccess 0..1 attr Describes the applicability of parameters and variables.
Access Enum
Tags:xml.sequenceOffset=90
swCalprmAxis SwCalprmAxisType 0..1 aggr specific properties depending on the type of the axis.
TypeProps Props
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=40
xml.typeElement=true
xml.typeWrapperElement=false
Enumeration CalprmAxisCategoryEnum
Package M2::MSR::DataDictionary::CalibrationParameter
Note This enum specifies the possible values of the category property within SwCalprmAxis.
Literal Description
comAxis COM_AXIS is equal to an STD_AXIS, the difference is, that a COM_AXIS is an shared axis, that
means this axis can be used multiple times by different CURVEs, MAPs, CUBOIDs, CUBE_4s, and
CUBE_5s.
Tags:
atp.EnumerationLiteralIndex=0
xml.name=COM_AXIS
5
4
Enumeration CalprmAxisCategoryEnum
fixAXIS FIX_AXIS means that the input axis is not stored. The axis is calculated using parameters and so on
it is also not possible to modify the axis points.
Tags:
atp.EnumerationLiteralIndex=4
xml.name=FIX_AXIS
resAxis RES_AXIS is also an shared axis like COM_AXIS, the difference is that this kind of axis can be used
for rescaling.
Tags:
atp.EnumerationLiteralIndex=6
xml.name=RES_AXIS
stdAxis STD_AXIS means that input and output axis definition are stored within this CURVE, MAP, CUBOID,
CUBE_4, and CUBE_5.
There is no shared or calculated axis.
Tags:
atp.EnumerationLiteralIndex=8
xml.name=STD_AXIS
Class SwAxisIndividual
Package M2::MSR::DataDictionary::Axis
Note This meta-class describes an axis integrated into a parameter (field etc.). The integration makes this
individual to each parameter. The so-called grouped axis represents the counterpart to this. It is
conceived as an independent parameter (see class SwAxisGrouped).
Base ARObject, SwCalprmAxisTypeProps
Attribute Type Mult. Kind Note
compuMethod CompuMethod 0..1 ref This is the compuMethod which is expected for the axis. It
is used in early stages if the particular input-value is not
yet available.
Tags:xml.sequenceOffset=30
5
4
Class SwAxisIndividual
dataConstr DataConstr 0..1 ref Refers to constraints, e.g. for plausibility checks.
Tags:xml.sequenceOffset=80
inputVariable ApplicationPrimitive 0..1 ref This is the datatype of the input value for the axis. This
Type DataType allows to define e.g. a type of curve, where the input
value is finalized at the access point.
swAxisGeneric SwAxisGeneric 0..1 aggr this specifies the properties of a generic axis if applicable.
Tags:xml.sequenceOffset=90
swMaxAxis Integer 0..1 attr Maximum number of base points contained in the axis of
Points a map or curve.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=60
swMinAxis Integer 0..1 attr Minimum number of base points contained in the axis of a
Points map or curve.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=70
swVariableRef SwVariableRefProxy * aggr Refers to input variables of the axis. It is possible to
(ordered) specify more than one variable. Here the following is
valid:
• The variable with the highest priority shall be
given first. It is used in the generation of the code
and is also displayed first in the application
system.
• All variables referenced shall be of the same
physical nature. This is usually detected in that
the conversion formulae affected refer back to
the same SI-units.
In AUTOSAR this ensured by the constraint, that the
referenced input variables shall use a type compatible to
"inputVariableType".
• This multiple referencing allows a base point
distribution for more than one input variable to be
used. One example of this are the temperature
curves which can depend both on the induction
air temperature and the engine temperature.
These variables can be displayed simultaneously by MCD
systems (adjustment systems), enabling operating points
to be shown in the curves.
Tags:
xml.roleElement=false
xml.roleWrapperElement=true
xml.sequenceOffset=20
xml.typeElement=false
xml.typeWrapperElement=false
unit Unit 0..1 ref This represents the physical unit of the input value of the
axis. It is provided to support the case that the particular
input variable is not yet known.
Tags:xml.sequenceOffset=40
Class SwAxisGeneric
Package M2::MSR::DataDictionary::Axis
Note This meta-class defines a generic axis. In a generic axis the axispoints points are calculated in the ECU.
The ECU is equipped with a fixed calculation algorithm. Parameters for the algorithm can be stored in the
data component of the ECU. Therefore these parameters are specified in the data declaration, not in the
calibration data.
Base ARObject
Attribute Type Mult. Kind Note
swAxisType SwAxisType 0..1 ref Associated axis calculation strategy.
Tags:xml.sequenceOffset=20
swGenericAxis SwGenericAxisParam * aggr Specific parameter of a generic axis.
Param
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=40
xml.typeElement=false
xml.typeWrapperElement=false
Class SwAxisType
Package M2::MSR::DataDictionary::Axis
Note This meta-class represents a specific axis calculation strategy. No formal specification is given, due to
the fact that it is possible to use arbitrary algorithms for calculating axis-points.
Instead, the algorithm is described verbally but the parameters are specified formally with respect to their
names and constraints. As a result, SwAxisType mainly reserves appropriate keywords.
Tags:atp.recommendedPackage=SwAxisTypes
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
swGenericAxis DocumentationBlock 0..1 aggr Associated axis description in textual form.
Desc
Tags:xml.sequenceOffset=20
swGenericAxis SwGenericAxisParam * aggr Parameters for this calculation algorithm.
ParamType Type
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=30
xml.typeElement=false
xml.typeWrapperElement=false
Class SwGenericAxisParam
Package M2::MSR::DataDictionary::Axis
Note This meta-class describes a specific parameter of a generic axis. The name of the parameter is defined
through a reference to a parameter type defined on a corresponding axis type.
The value of the parameter is given here in case that it is not changeable during calibration. Example is
shift / offset in a fixed axis.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class SwGenericAxisParam
swGenericAxis SwGenericAxisParam 0..1 ref Parameter type defined on a corresponding axis type.
ParamType Type References can only be made to axis parameters types
which are defined within the referenced axis type.
Tags:xml.sequenceOffset=20
vf (ordered) Numerical * attr This attribute represents the value of the generic axis
parameter.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=30
xml.typeElement=false
Class SwGenericAxisParamType
Package M2::MSR::DataDictionary::Axis
Note This meta-class describes a generic axis parameter type, namely:
• Plausibility checks can be specified via dataConstr.
• Textual description (desc), as a formal description is not of any use, due to the large variety of
possibilities.
• If this parameter contains structures, these can be simulated through the recursive use of Sw
GenericAxisParamTypes.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
dataConstr DataConstr 0..1 ref This reference denoted data constraints applicable to the
generic axis parameter.
Tags:xml.sequenceOffset=20
Class SwAxisGrouped
Package M2::MSR::DataDictionary::Axis
Note An SwAxisGrouped is an axis which is shared between multiple calibration parameters.
Base ARObject, SwCalprmAxisTypeProps
Attribute Type Mult. Kind Note
sharedAxisType ApplicationPrimitive 0..1 ref This is the datatype of the calibration parameter providing
DataType the shared axis.
5
4
Class SwAxisGrouped
swAxisIndex AxisIndexType 0..1 attr Describes which axis of the referenced calibration
parameter provides the values for the group axis. The
index satisfies the following convention:
• 0 = value axis. in this case, the interpolation
result of the referenced parameter is used as a
base point index.
• The index should only be specified if the
parameter under swCalprm contains more than
one axis. It is standard practice for the axis index
of parameters with more than one axis, to be set
to 1, if data has not been assigned to swAxis
Index.
Tags:xml.sequenceOffset=20
swCalprmRef SwCalprmRefProxy 1 aggr This property specifes the calibration parameter which
serves as the input axis. In AUTOSAR, the type of the
referenced Calibration parameter shall be compatible to
the type specified by sharedAxisType.
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=30
xml.typeElement=false
xml.typeWrapperElement=false
ARElement «atpVariation»
AtpType +swDataDefProps
SwDataDefProps
AutosarDataType 0..1
+swCalprmAxisSet 0..1
AtpBlueprint SwCalprmAxisSet
AtpBlueprintable
ApplicationDataType
ApplicationPrimitiveDataType SwCalprmAxis
+swCalprmAxisTypeProps 0..1
SwAxisGrouped SwCalprmAxisTypeProps
Listing 5.10: Usage of SwAxisGrouped to define the data type of a shared axis
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>MyAppType</SHORT-NAME>
<CATEGORY>CURVE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-CALPRM-AXIS-SET>
<SW-CALPRM-AXIS>
<SW-AXIS-GROUPED>
<SHARED-AXIS-TYPE-REF
DEST="APPLICATION-PRIMITIVE-DATA-TYPE">/ApplicationDataTypes/
MyAxisDataType</SHARED-AXIS-TYPE-REF>
</SW-AXIS-GROUPED>
</SW-CALPRM-AXIS>
</SW-CALPRM-AXIS-SET>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>MyAxisDataType</SHORT-NAME>
</APPLICATION-PRIMITIVE-DATA-TYPE>
• In the upper part of the diagram, the definition of the access to the DataProto-
type that represents the specific curve inside the enclosing SwComponentPro-
totype is modeled by means of the ParameterAccess.accessedParame-
ter.
• In the lower part of the diagram, the identification of the DataPrototype that
represents the grouped axis inside the enclosing SwComponentPrototype is
modeled by means of the SwAxisGrouped.swCalprmRef.arParameter.
Definition of Parameter Access
AbstractAccessPoint «atpVariation»
AtpStructureElement +swDataDefProps
SwDataDefProps
Identifiable 0..1
ParameterAccess
+swCalprmAxisSet 0..1
SwCalprmAxisSet
Selection of DataPrototype
0..1 +accessedParameter +swCalprmAxis 0..*
+localParameter
AtpPrototype
AutosarParameterRef SwCalprmAxis
0..1 DataPrototype
+ category: CalprmAxisCategoryEnum [0..1]
+autosarParameter + displayFormat: DisplayFormatString [0..1]
+ swAxisIndex: AxisIndexType [0..1]
«instanceRef» 0..1
+arParameter 0..1 + swCalibrationAccess: SwCalibrationAccessEnum [0..1]
+swCalprmAxisTypeProps 0..1
<PARAMETER-ACCESS>
<SHORT-NAME>MyParamAccess</SHORT-NAME>
<ACCESSED-PARAMETER>
<LOCAL-PARAMETER-REF DEST="AUTOSAR-DATA-PROTOTYPE">/P/A/B/
Curve</LOCAL-PARAMETER-REF>
</ACCESSED-PARAMETER>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-CALPRM-AXIS-SET>
<SW-CALPRM-AXIS>
<SW-AXIS-GROUPED>
<AR-PARAMETER>
<LOCAL-PARAMETER-REF DEST="AUTOSAR-DATA-
PROTOTYPE">/P/A/B/Axis</LOCAL-PARAMETER-REF>
</AR-PARAMETER>
</SW-AXIS-GROUPED>
</SW-CALPRM-AXIS>
</SW-CALPRM-AXIS-SET>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</PARAMETER-ACCESS>
</PARAMETER-ACCESSS>
</RUNNABLE-ENTITY>
</RUNNABLES>
</SWC-INTERNAL-BEHAVIOR>
</INTERNAL-BEHAVIORS>
</APPLICATION-SW-COMPONENT-TYPE>
In most cases the axes of a curve or map are accessible to a calibration software and
it is possible to calibrate axes points and their corresponding values.
There are cases, however, where axes are intentionally declared as fix and where no
intention exists to change the properties of the axis ever17 .
These axes are also known as fix axes. The support for the creation of fix axes in the
meta-model is based upon the usage of SwAxisGeneric as depicted in Figure 5.34.
[TPS_SWCT_01747] Value of category for fix axis dA fix axis shall be modeled as
an SwCalprmAxis with attribute category set to the value FIX_AXIS.c()
[TPS_SWCT_01748] Sub-categories of fix axes dThere are different sub-categories
of fix axes:
• Fix axis where the distance between axis points can be computed according to a
standardized algorithm.
17
Typically, a calibration software does not have the ability to manipulate (or even inspect) the axis’
properties by inspecting the ECU’s memory.
In this case, fix axes of arbitrary length can be described by feeding three argu-
ments defined in the context of the axis description into the axis algorithm.
Consequently, the memory footprint of different fix axis of this category is liter-
ally identical, independently of the number of axis points.
The following variations exist:
– Subcategory PAR, i.e. category = FIX_AXIS_PAR: the axis is created
out of a starting value and a shift that creates further axis points as using a
power-of-two algorithm. The details can be found in [26].
– Subcategory PAR_DIST, i.e. category = FIX_AXIS_PAR_DIST: the axis
is created out of a starting value and an offset that adds further axis points
with the distance given by offset. The details can be found in [26].
• Fix axis where the axis points are defined as a list of values directly in the axis
definition. This variety boils down to
– Subcategory PAR_LIST, i.e. category = FIX_AXIS_PAR_LIST: the axis
is created out of a list of numerical values that represent the axis points. The
details can be found in [26].
These values of category shall be used for SwAxisType.c()
As mentioned before, the modeling of a fix axis is based upon the definition of the
SwAxisGeneric. But this statement by itself is not yet sufficient to unambiguously
clarify the details of the modeling.
For this purpose, it is necessary to provide further information about the specifics of the
roles SwAxisGeneric.swAxisType and SwAxisGeneric.swGenericAxisParam.
[TPS_SWCT_01749] Semantics of SwAxisGeneric.swAxisType in the definition
of a fix axis dThe role SwAxisGeneric.swAxisType specifies the category of the
fix axis according to [TPS_SWCT_01748].c()
category of swAxisType category of SwGenericAxis- Multiplicity of swGenericAxis- Multiplicity of vf
ParamType Param
FIX_AXIS_PAR OFFSET 1 1
SHIFT 1 1
FIX_AXIS_PAR_DIST OFFSET 1 1
DISTANCE 1 1
FIX_AXIS_PAR_LIST LIST 1 1..*
category = CURVE
vf = 0 vf = 2
category = CURVE
vf = 3 vf = 5
axisPoint2: :SwGenericAxisParam
SwGenericAxisParamType
vf = 1,5,42
category = LIST
Please note that the axis points and values of a fix axis are defined in the definition of
the fix axis itself and therefore any initial value assigned to a fix axis would be ignored
anyway.
This might lead to confusion such that the initial value does not make it into the soft-
ware. In order to avoid such confusion AUTOSAR does not support the definition of
an initial value for a fix axis.
This regulation is reflected in the existence of [constr_1545].
[constr_1545] No initialization for fix axis dAn ApplicationValueSpecifica-
tion taken to initialize an ApplicationPrimitiveDataType that contains a fix
axis shall not contain initial values for the axis index of the fix axis inside the Appli-
cationPrimitiveDataType at any time in the workflow.c()
Please note that the calibration software may still have access to axis points and values
of the fix axis if these properties are specified in an A2L file.
For this purpose McDataInstance needs to be set up properly. The details are ex-
plained in [6].
When an interpolation routine is called, an input value has to be provided to find the ap-
propriate axis entry in the implementation of a RunnableEntity. However, this input
value cannot be arbitrarily chosen but only be selected from available VariableDat-
aPrototype assigned to it.
In an axis definition attached to an ApplicationPrimitiveDataType, it is possible
to specify the data type of the input values by means of the reference SwAxisIndi-
vidual.inputVariableType.
However, the reference SwAxisIndividual.inputVariableType does not neces-
sarily have to exist.
+localParameter 0..1
+/swDataDefProps 0..1
«atpVariation» AutosarDataPrototype
SwDataDefProps
+swCalprmAxisSet 0..1
+localVariable 0..1
+swCalprmAxis 0..*
SwAxisIndividual SwAxisGrouped
Figure 5.43: The nth COM_AXIS in the array of COM_AXISs uses the nth VALUE in the array
of VALUEs as working point.
Please note that in this case the two associated arrays needs to have same number of
dimensions and sizes of the dimensions.
[constr_1426] Consistency of array sizes for axes and input variable array dThe
number of array dimension defined by ApplicationArrayDataTypes and the val-
ues of the maxNumberOfElements attributes for the array of elements of category
CURVE, MAP, CUBOID, CUBE_4, CUBE_5, COM_AXIS, or RES_AXIS shall be iden-
tical to the number of array dimension and according value of the maxNumberO-
fElements of the VariableDataPrototype referenced by SwAxisIndividual.
swVariableRef.autosarVariable.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
InstantiationDataDefProps
swDataDefProps.
parameterInstance swCalprmAxisSet.swCalprmAxis.
swCalprmAxisTypeProps
(as SwAxisIndividual).swVariableRef
COM_AXIS VALUE
COM_AXIS
COM_AXIS
COM_AXIS
COM_AXIS
Figure 5.44: Each COM_AXIS in the array of COM_AXISs uses the identical VALUE as
working point.
Grouped curves share the same axis definition. In MSRSW, this is shown by referenc-
ing the SwCalprm, representing an individual curve, from a SwAxisGrouped.
Note that this does not describe which axis shall be taken from a reference swCalprm-
Ref acting as a shared axis. This would be done in SwAxisGrouped.swAxisIndex.
AUTOSAR applies a similar proxy approach for parameters as for the variables. There-
fore, an SwCalprmRefProxy has been introduced in MSRSW, and is aggregated by
the SwAxisGrouped element.
The SwCalprmRefProxy aggregates an AutosarParameterRef providing an as-
sociation to a ParameterDataPrototype, representing a curve with an axis. When
defining the data-type of a parameter, the type of the shared axis is defined in
sharedAxisType.
[constr_1020] ParameterDataPrototype needs to be of compatible data type
as referenced in sharedAxisType dFinally, the ParameterDataPrototype as-
signed in swCalprmRef shall be typed by data type compatible to sharedAxisType
at the time when the contract phase generation is executed.c()
The AUTOSAR-style is shown in the upper left part of Figure 5.42, while in the upper
middle the MSRSW style is shown, referencing the SwCalprm.
+swComparisonVariable «atpVariation»
SwVariableRefProxy
0..* SwDataDefProps
+swHostVariable + additionalNativeTypeQualifier:
NativeDeclarationString [0..1]
0..1 + displayFormat: DisplayFormatString [0..1]
+ displayPresentation:
+swVariable «atpMixed»
DisplayPresentationEnum [0..1]
SwDataDependencyArgs
0..1 +swDataDependencyArgs + stepSize: Float [0..1]
SwDataDependency + swAlignment: AlignmentType [0..1]
0..1 + swCalibrationAccess:
+swDataDependency SwCalibrationAccessEnum [0..1]
+ swImplPolicy: SwImplPolicyEnum [0..1]
0..1
+ swIntendedResolution: Numerical [0..1]
+ swInterpolationMethod: Identifier [0..1]
SwCalprmAxisTypeProps SwCalprmAxisSet
+swCalprmAxisSet + swIsVirtual: Boolean [0..1]
+ maxGradient: Float [0..1] «atpVariation»
+ monotony: MonotonyEnum [0..1] 0..1 + swValueBlockSize: Numerical [0..1]
+ swValueBlockSizeMult: Numerical [0..*]
+swCalprmAxisTypeProps 0..1 {ordered}
+swCalprmAxis 0..*
+swVariableRef 0..*
{ordered}
SwCalprmAxis
SwCalprmAxisTypeProps
SwCalprmRefProxy
SwAxisGrouped
+swCalprmRef
+ swAxisIndex: AxisIndexType [0..1]
1
«atpMixed» +swCalprmRef
SwDataDependencyArgs
0..1
+arParameter 0..1
AutosarParameterRef ParameterDataPrototype
«instanceRef»
Class SwCalprmRefProxy
Package M2::MSR::DataDictionary::DatadictionaryProxies
Note Wrapper class for different kinds of references to a calibration parameter.
Base ARObject
Attribute Type Mult. Kind Note
arParameter AutosarParameterRef 0..1 aggr This represents a Parameter within AUTOSAR. Note that
the Datatype of the referenced ParameterDataPrototype
shall be an ApplicationDataType of category VALUE.
mcDataInstance McDataInstance 0..1 ref This reference is used in the McSupport file to express
the final instance of group axis etc. It is not allowed to use
this outside of an McDataInstance.
The referenced mcDataInstance shall be originated from
a ParameterDataPrototype.
Class SwVariableRefProxy
Package M2::MSR::DataDictionary::DatadictionaryProxies
Note Proxy class for several kinds of references to a variable.
Base ARObject
Attribute Type Mult. Kind Note
autosarVariable AutosarVariableRef 0..1 aggr This represents the reference to a Variable in an Autosar
system. Note that the target of the reference within
AutosarVariableRef shall be typed by a primitive data type
mcDataInstance McDataInstance 0..1 ref This reference is used in the McSupport file to express
Var the final instance of input values etc. It is not allowed to
use this outside of an McDataInstance.
The referenced mcDataInstance shall be originated from
a VariableDataPrototype.
The basic patterns for referencing DataPrototypes are explained in section 5.3.3. In
the context of this chapter it is worth to remark that the definition of access to calibration
parameters is implemented in the context of a RunnableEntity (see Figure 7.3).
As the definition of a calibration parameter may involve the definition of several axes
the necessity to provide this amount of information might become cumbersome and
(to some extent) redundant and difficult to maintain if the same calibration parameter
is accessed from within several RunnableEntitys. In other words: in this case it
would be necessary to repeat the more or less complex set of information for each
RunnableEntity.
To avoid this unnecessary level of complexity for the definition of access to calibration
parameters, it is possible to define the access to the calibration parameter on the level
of InstantiationDataDefProps which have been defined to facilitate this kind of
re-use (for more information please refer to section 7.5.4). This ability is also docu-
mented in Table 5.43.
With the means of ApplicationArrayDataTypes its possible to define DataPro-
totypes holding an n-dimensional array of Compound Primitive Data Types of
category CURVE, MAP, CUBOID, CUBE_4, and CUBE_5.
For those DataPrototypes, group axis/axes needs to be defined in case SwAxisIn-
dividuals are not used for all SwCalprmAxis definitions.
Thereby, typically the whole array of elements of category CURVE, MAP, CUBOID,
CUBE_4, and CUBE_5 is either associated with an array of group axes or alternatively
with a single group axis.
In the case of arrays typically the nth CURVE, MAP, CUBOID, CUBE_4, and CUBE_5 is
combined with the nth COM_AXIS or RES_AXIS.
Figure 5.48: The nth CURVE in the array of CURVEs relates to the nth COM_AXIS in the array
of COM_AXISs
Figure 5.49: Each MAP in the array of CURVEs uses the identical COM_AXIS
</SW-DATA-DEPENDENCY>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</PARAMETER-DATA-PROTOTYPE>
<PARAMETER-DATA-PROTOTYPE>
<SHORT-NAME>B_AREA</SHORT-NAME>
<DESC>
<L-2 L="DE">The dependent Parameter</L-2>
</DESC>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-DATA-DEPENDENCY>
<SW-DATA-DEPENDENCY-FORMULA>X1 * X1</SW-DATA-DEPENDENCY-FORMULA
>
<SW-DATA-DEPENDENCY-ARGS>
<AR-PARAMETER>
<LOCAL-PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/
DataDependency/foo/bar/B</LOCAL-PARAMETER-REF>
</AR-PARAMETER>
</SW-DATA-DEPENDENCY-ARGS>
</SW-DATA-DEPENDENCY>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</PARAMETER-DATA-PROTOTYPE>
<PARAMETER-DATA-PROTOTYPE>
<SHORT-NAME>TRIANGULAR_AREA</SHORT-NAME>
<DESC>
<L-2 L="DE">The dependent Parameter</L-2>
</DESC>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-DATA-DEPENDENCY>
<SW-DATA-DEPENDENCY-FORMULA>(X1 * X2) / 2</SW-DATA-DEPENDENCY-
FORMULA>
<SW-DATA-DEPENDENCY-ARGS>
<AR-PARAMETER>
<LOCAL-PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/
DataDependency/foo/bar/A</LOCAL-PARAMETER-REF>
</AR-PARAMETER>
<AR-PARAMETER>
<LOCAL-PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/
DataDependency/foo/bar/B</LOCAL-PARAMETER-REF>
</AR-PARAMETER>
</SW-DATA-DEPENDENCY-ARGS>
</SW-DATA-DEPENDENCY>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</PARAMETER-DATA-PROTOTYPE>
</PER-INSTANCE-PARAMETERS>
Class SwDataDependency
Package M2::MSR::DataDictionary::DataDefProperties
Note This element describes the interdependencies of data objects, e.g. variables and parameters.
Use cases:
• Calculate the value of a calibration parameter (by the MCD system) from the value(s) of other
calibration parameters.
• Virtual data - that means the data object is not directly in the ecu and this property describes
how the "virtual variable" can be computed from the real ones (by the MCD system).
Base ARObject
Attribute Type Mult. Kind Note
swData SwDataDependency 0..1 aggr Specifies the arguments used in the data dependency.
Dependency Args Note that this is 0..1 since the aggregated class is a
Args container (atpMixed).
Tags:xml.sequenceOffset=40
swData CompuGenericMath 0..1 aggr This element describes the formula with which the
Dependency dependencies between the participating objects are
Formula defined.
Tags:xml.sequenceOffset=30
5.4.8 Precedence of data properties with respect to data elements, axis ele-
ments, computation methods, units
TypeProperties
ARElement «atpVariation»
SwAxisIndividual
+dataConstr AtpBlueprint +dataConstr SwDataDefProps
AtpBlueprintable
«atpVariation» 0..1
0..1 DataConstr + additionalNativeTypeQualifier:
+ swMaxAxisPoints: Integer [0..1]
NativeDeclarationString [0..1]
+ swMinAxisPoints: Integer [0..1]
+ displayFormat: DisplayFormatString [0..1]
+ displayPresentation:
DisplayPresentationEnum [0..1]
ARElement + stepSize: Float [0..1]
AtpBlueprint + swAlignment: AlignmentType [0..1]
AtpBlueprintable +compuMethod + swCalibrationAccess:
+compuMethod SwCalibrationAccessEnum [0..1]
CompuMethod
+ swImplPolicy: SwImplPolicyEnum [0..1]
0..1 0..1 + swIntendedResolution: Numerical [0..1]
+ displayFormat:
DisplayFormatString [0..1] + swInterpolationMethod: Identifier [0..1]
+ swIsVirtual: Boolean [0..1]
«atpVariation»
+unit 0..1 + swValueBlockSize: Numerical [0..1]
+ swValueBlockSizeMult: Numerical [0..*]
ARElement {ordered}
+unit +unit
Unit
ARElement +swDataDefProps
AtpType
AutosarDataType 0..1
AtpBlueprint
AtpBlueprintable
ApplicationDataType
+inputVariableType
ApplicationPrimitiveDataType +valueAxisDataType
0..1
0..1
+swVariableRef
SwVariableRefProxy
0..*
{ordered}
Figure 5.50 illustrates the fact that some attributes in SwDataDefProps can also be
expressed in sub-elements respectively in referenced elements.
[TPS_SWCT_01496] General precedence rule for attributes of SwDataDefProps
dThe general precedence rule is that
• SwDataDefProps wins over valueAxisDataType (exception: compuMethod
and unit).
• SwDataDefProps wins over compuMethod.
• SwDataDefProps wins over swCalprmAxisSet.
• SwDataDefProps.swCalprmAxisSet wins over swCalprmAxisSet.swCal-
prmAxis.swCalprmAxisTypeProps.compuMethod
or SwAxisIndividual.inputVariableType.
– SwDataDefProps.valueAxisDataType.swDataDefProps.com-
puMethod
– SwDataDefProps.compuMethod
c()
• [TPS_SWCT_01500] Precedence of the display format of value axis dFor the
usage of display format of value axis the following precedence rule is defined:
– SwDataDefProps.displayFormat
– SwDataDefProps.valueAxisDataType.swDataDefProps.display-
Format
– SwDataDefProps.valueAxisDataType.swDataDefProps.com-
puMethod.displayFormat
– SwDataDefProps.compuMethod.displayFormat
c()
Note that this deviates from the general rule since displayFormat is not an
essential property. The last item in the list above is the consequence of the fact
that if there is a valueAxisDataType it supersedes the compuMethod
• [TPS_SWCT_01501] Precedence of the calibration access of value axis dFor
the usage of calibration access of value axis the following precedence rule is
defined:
– SwDataDefProps.swCalibrationAccess
– SwDataDefProps.valueAxisDataType.swDataDefProps.swCali-
brationAccess
c()
Note that this deviates from the general rule since swCalibrationAccess is
not such an essential property.
• [TPS_SWCT_01502] Precedence of the Unit of the input axis dFor the usage
of Unit of the input axis the following precedence rule is defined:
– SwAxisIndividual.unit
– SwAxisIndividual.compuMethod.unit
– SwAxisIndividual.inputVariableType.swDataDefProps.unit
– SwAxisIndividual.swVariableRef.autosarVariable.autosar-
Variable.type.swDataDefProps.compuMethod.unit
– SwAxisIndividual.swVariableRef.autosarVariable.autosar-
Variable.type.swDataDefProps.unit
c()
This meta-class CompuMethod was actually taken from the ASAM standard’s harmo-
nized data objects. This is also indicated by the green color of the meta-classes in the
diagram.
Some categorys of CompuMethod cannot be successfully converted to A2L [26] be-
cause A2L does not provide an equivalent semantics that comes close to the respective
AUTOSAR semantics.
A prominent example for such a case is a CompuMethod of category SCALE_LIN-
EAR_AND_TEXTTABLE that actually has more than one linear interval and a texttable
part.
[constr_1142] category of CompuMethod shall not be extended dIn contrast to the
general rule that category can be extended by user-specific values it is not allowed
+unit 0..1
ARElement ARElement «atpVariation»
+physicalDimension
Unit PhysicalDimension +compuScale 0..* {ordered}
+ factorSiToUnit: Float [0..1] 0..1 + currentExp: Numerical [0..1] !"! #$!!
CompuScale
+ offsetSiToUnit: Float [0..1] + lengthExp: Numerical [0..1] %&'($&
+ luminousIntensityExp: Numerical [0..1] + mask: PositiveInteger [0..1]
+ massExp: Numerical [0..1] + shortLabel: Identifier [0..1]
+ molarAmountExp: Numerical [0..1] + symbol: CIdentifier [0..1]
+ temperatureExp: Numerical [0..1]
«atpVariation»
+ timeExp: Numerical [0..1]
+ lowerLimit: Limit [0..1]
+ upperLimit: Limit [0..1]
«atpVariation»
+ v: Numerical [0..*] {ordered}
0..1 +compuRationalCoeffs
CompuRationalCoeffs
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_1175] does not imply that CompuMethods where the category is one of
TEXTTABLE, BITFIELD_TEXTTABLE, or IDENTICAL are not allowed to refer to a
unit. They may still refer to a unit, but according to [constr_1175] this relation is not
mandated.
A further implication is that the unit itself may not have a dimension, i.e. all exponents
of SI units are 0.
Figure 5.51 sketches a conceptual overview of CompuMethod. It consists of the fol-
lowing attributes:
• [TPS_SWCT_01281] Unit associated with a PhysicalDimension dA unit
(described in next section) can be associated with a PhysicalDimension.c()
Note that quantities like “%” are not derived from SI units. However, they have a
meaning in the physical world and need to be represented in form of data types.
Therefore, a CompuMethod also applies in those cases.
• [TPS_SWCT_01430] Conversion specification from internal to physical val-
ues as well as the reverse conversion dA conversion specification from internal
to physical values, as well as the reverse conversion. Both of them in turn con-
sist of an abstract CompuContent. Derived classes allow the specification of a
conversion formula in two different ways.c()
[constr_1024] Stepwise definition of CompuMethods dIn a bound model, the
intervals (i.e. determined by attributes CompuScale.lowerLimit and CompuS-
cale.upperLimit) defined by CompuScales used in the context of a given
CompuMethod of all values of category except BITFIELD_TEXTTABLE shall
not overlap.
For CompuMethods of category BITFIELD_TEXTTABLE, the combination
of the interval created by attributes CompuScale.upperLimit, CompuScale.
lowerLimit and CompuScale.mask shall be unique in the context of the en-
closing CompuMethod.
This rule shall be imposed at the time when the contract phase
generation is executed.c()
The possible values of CompuMethod.category are listed in Table 5.80.
[TPS_SWCT_01667] Avoidance of overlapping of directly adjacent intervals
within CompuMethods dIntervals of a given CompuMethod may be located di-
rectly adjacent to each other.
This means that the upperLimit of one CompuScale has the same numerical
value as the lowerLimit of another CompuScale defined within the context of
the CompuMethod.
Class CompuScale
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the ability to specify one segment of a segmented computation method.
Base ARObject
Attribute Type Mult. Kind Note
compuInverse CompuConst 0..1 aggr This is the inverse value of the constraint. This supports
Value the case that the scale is not reversible per se.
Tags:xml.sequenceOffset=60
compuScale CompuScaleContents 0..1 aggr This represents the computation details of the scale.
Contents
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=70
xml.typeElement=false
xml.typeWrapperElement=false
desc MultiLanguageOverview 0..1 aggr <desc> represents a general but brief description of the
Paragraph object in question.
Tags:xml.sequenceOffset=30
lowerLimit Limit 0..1 attr This specifies the lower limit of the scale.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=40
mask PositiveInteger 0..1 attr In difference to all the other computational methods every
COMPU-SCALE will be applied including the bit MASK.
Therefore it is allowed for this type of COMPU-METHOD,
that COMPU-SCALES overlap.
To calculate the string reverse to a value, the string has to
be split and the according value for each substring has to
be summed up. The sum is finally transmitted.
The processing has to be done in order of the
COMPU-SCALE elements.
Tags:xml.sequenceOffset=35
shortLabel Identifier 0..1 attr This element specifies a short name for the particular
scale. The name can for example be used to derive a
programming language identifier.
Tags:xml.sequenceOffset=20
symbol CIdentifier 0..1 attr The symbol, if provided, is used by code generators to get
a C identifier for the CompuScale. The name will be used
as is for the code generation, therefore it needs to be
unique within the generation context.
Tags:xml.sequenceOffset=25
upperLimit Limit 0..1 attr This specifies the upper limit of a of the scale.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=50
Class CompuScales
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the ability to stepwise express a computation method.
Base ARObject, CompuContent
Attribute Type Mult. Kind Note
compuScale CompuScale * aggr This represents one scale within the compu method. Note
(ordered) that it contains a Variationpoint in order to support
blueprints of enumerations.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=blueprintDerivationTime
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=40
xml.typeElement=false
xml.typeWrapperElement=false
Class CompuRationalCoeffs
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the ability to express a rational function by specifying the coefficients of
nominator and denominator.
Base ARObject
Attribute Type Mult. Kind Note
compu CompuNominator 0..1 aggr This is the denominator of the expression.
Denominator Denominator
Tags:xml.sequenceOffset=30
compu CompuNominator 0..1 aggr This is the numerator of the rational expression.
Numerator Denominator
Tags:xml.sequenceOffset=20
Class CompuConst
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the fact that the value of a computation method scale is constant.
Base ARObject
Attribute Type Mult. Kind Note
compuConst CompuConstContent 0..1 aggr This is the actual content of the constant compu method
ContentType scale.
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=10
xml.typeElement=false
xml.typeWrapperElement=false
Class CompuScaleRationalFormula
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the fact that the computation in this scale is represented as rational term.
Base ARObject, CompuScaleContents
Attribute Type Mult. Kind Note
compuRational CompuRationalCoeffs 0..1 aggr This specifies the coefficients of the rational formula.
Coeffs
Tags:xml.sequenceOffset=110
Class CompuScaleConstantContents
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the fact that a particular scale of the computation method is constant.
Base ARObject, CompuScaleContents
Attribute Type Mult. Kind Note
compuConst CompuConst 0..1 aggr This represents the fact that the scale is a constant. The
use case is mainly a non interpolated scale. It is a
simplification of the fact that a constant scale can also be
expressed as rational function of order 0.
Tags:xml.sequenceOffset=90
Class CompuNominatorDenominator
Package M2::MSR::AsamHdo::ComputationMethod
Note This class represents the ability to express a polynomial either as Nominator or as Denominator.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class CompuNominatorDenominator
v (ordered) Numerical * attr this is the list of polynomial factors. Note that the first vf
represents the power=0. The polynomial is v[0] * xˆ0 +
v[1] * xˆ1 ...
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=20
xml.typeElement=false
xml.typeWrapperElement=false
Please note that the values of coefficients within a rational formula are not restricted
to integer values. It is possible to use floating-point values as well.
The values of exponents cannot be set arbitrarily but are implicitly defined by the
appearance of coefficients in CompuNominatorDenominator.v, i.e. the first value in
the ordered list of CompuNominatorDenominator.v represents the exponent 0, the
second CompuNominatorDenominator.v represents the exponent 1, and so on.
For a detailed description of CompuMethods, please refer to the ASAM MCD 2 Har-
monized Data Objects [27].
Table 5.80 contains a definition of possible values for the attribute category.
ASAM Category Meaning Specific properties
This CompuMethod just hands Only the base elements are allowed and unit, physCon-
IDENTICAL over the internal value with an strs and internalConstrs are optional. This is the sim-
optional unit. plest type of a CompuMethod.
A linear conversion can be per- Exactly one CompuScale, with two v in compuNumerator
formed in two steps: The inter- and one v in compuDenominator.
LINEAR nal value is multiplied with a fac-
tor; after that, an offset is added
to the result of the multiplication.
Used for a piecewise linear con- More than one compuScale can be defined. Additionally
version. there have to be the upperLimit and lowerLimit ele-
SCALE_LINEAR
ments which define the region of validity for the linear func-
tion. The boundaries of the regions shall not overlap.
Used for piecewise definition of Properties depend on the used scale function. For de-
SCALE_LINEAR_AND_ one or more linear and several tails see definition of SCALE_LINEAR and TEXTTABLE. The
TEXTTABLE texttable scales. scales shall each provide lowerLimit and upperLimit
definitions.
5
4
ASAM Category Meaning Specific properties
The rational function type is sim- It can have as many v elements as needed for the rational
ilar to the linear type without function. The sequence of the values v carries the informa-
the restrictions for the com- tion for the exponents, that means the first v is the coefficient
puNumerators and compuDe- for x0, the second v is the coefficient for x1, etc.
RAT_FUNC nominators.
With this sequence the values of the exponents can be en-
tirely represented. A rational function is only applicable for
conversions in the direction that it is defined for, i.e. the auto-
matic calculation of the inverse function is not supported by
the MCD system.
Used for piecewise defined ra-
SCALE_RAT_FUNC
tional conversion.
Used for piecewise definition of Properties depend on the used scale function. For details
SCALE_RATIONAL_AND_ one rational and several text- see definition of SCALE_RAT_FUNC and TEXTTABLE. The
TEXTTABLE table scales. scales shall each provide lowerLimit and upperLimit
definitions.
The type TEXTTABLE is used The result is placed in the vt member of CompuConst. The
for transformations of the inter- compuDefaultValue is optional. If the reverse calculation
nal value into textual elements. is needed then for each scale the compuInverseValue can
be used to define the reverse calculation result.
TEXTTABLE If no inverse value is explicitly defined then the smallest pos-
sible value of the scale will be used as result of the reverse
calculation.
[constr_1134] applies!
Similar to TEXTTABLE, but for The values per scale are defined in CompuConst.
TAB_NOINTP
numerical values.
Similar to TEXTTABLE but for bit BITFIELD_TEXTTABLE is derived from TEXTTABLE. The
fields. main difference is that TEXTTABLE results to a single value
while BITFIELD_TEXTTABLE results to a concatenated
value set.
In difference to all the other computational methods every
CompuScale will be applied including the bit mask speci-
BITFIELD_TEXTTABLE fied in mask. Therefore it is allowed for this type of Com-
puMethod, that CompuScales overlap.
To calculate the string reverse to a value, the string has to
be split and the according value for each substring has to be
summed up. The sum is finally transmitted. The processing
has to be done in order of the CompuScale elements.
[constr_1135] applies!
used depending on the nature of the CompuMethod, expressed by means of the value
of attribute category.
[constr_1375] Existence of attributes of CompuMethod and related meta-classes
dThe existence of attributes of CompuMethod and related meta-classes depending on
the value of the category shall follow the restrictions documented in Table 5.81.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
Attribute Existence per Category
SCALE_RATIONAL_AND_TEXTTABLE
SCALE_LINEAR_AND_TEXTTABLE
BITFIELD_TEXTTABLE
SCALE_RAT_FUNC
SCALE_LINEAR
TAB_NOINTP
IDENTICAL
TEXTTABLE
RAT_FUNC
LINEAR
Attributes of CompuMethod
compuInternalToPhys N/A D(1) D(1) D(2) D(2) D D D(8) D(2) D
compuPhysToInternal N/A D(1) D(1) D(2) D(2) N/A N/A N/A D(2,3) N/A
Attributes of meta-classes related to CompuMethod
compuDefaultValue N/A O(6) O(6) O(6) O(6) O(6) O(6) O(6) O(6) O(6)
CompuScale N/A D/1..1 D/1..n D/1..1 D/1..n D/1..n D/1..n D/1..n D/1..n D/1..n
CompuScale.compuInverseValue N/A N/A N/A O(2) O(2) O(5) N/A O(2,5) O(2,5) O(5)
CompuScale.lowerLimit N/A O D D(4) D(4) D D D D(4) D
CompuScale.mask N/A N/A N/A N/A N/A N/A D N/A N/A N/A
CompuScale.shortLabel N/A N/A N/A N/A N/A O(7) O(7) O(7) O(7) N/A
CompuScale.symbol N/A N/A N/A N/A N/A O(7) O(7) O(7) O(7) N/A
CompuScale.upperLimit N/A O D D(4) D(4) D D D D(4) D
CompuConst N/A N/A N/A N/A N/A D/vt D/vt D/vt D/vt D/vt or vf
CompuRationalCoeffs N/A D D D D N/A N/A D D N/A
CompuRationalCoeffs.compuDenominator N/A D/1v D/1v D D N/A N/A D/1v D N/A
CompuRationalCoeffs.compuNumerator N/A D/2v D/2v D D N/A N/A D/2v D N/A
For clarification, the first two rows of Table 5.81 define the applicability of the imme-
diate attributes of meta-class CompuMethod, the remainder of the table then goes
into further detail regarding the usage of the attributes of related meta-classes (e.g.
CompuScale, CompuConst).
Please note that annotations apply to the individual cell values. These annotations are
formulated by means of a numerical value in parentheses, e.g. (1).
The legend for the individual annotations can be found below Table 5.81.
The following legend applies to the cells in table 5.81:
This chapter clarifies the applicability of CompuMethod for the relevant concrete sub-
classes of AutosarDataType.
For ApplicationDataType, there are (see Table 5.7) a number values of cate-
gory that allow for the definition of a ApplicationDataType.swDataDefProps.
compuMethod.
Table 5.82 visualizes the allowed combinations of ApplicationDataType.cate-
gory vs. CompuMethod.category.
SCALE_RATIONAL_AND_TEXTTABLE
SCALE_LINEAR_AND_TEXTTABLE
BITFIELD_TEXTTABLE
SCALE_LINEAR
TAB_NOINTP
IDENTICAL
TEXTTABLE
RAT_FUNC
LINEAR
VALUE x x x x x x x x x
VAL_BLK x x x x x x x x x
BOOLEAN n/a n/a n/a n/a n/a n/a x n/a n/a
CURVE x x x x x x x x x
MAP x x x x x x x x x
CUBOID x x x x x x x x x
CUBE_4 x x x x x x x x x
CUBE_5 x x x x x x x x x
For ImplementationDataType, there are (see Table 5.17) only two values of cat-
egory that allow for the definition of a ImplementationDataType.swDataDef-
Props.compuMethod: TEXTTABLE and BITFIELD_TEXTTABLE.
[constr_1158] Applicable categorys for attribute ImplementationDataType.
swDataDefProps.compuMethod dThe definition of the reference Implementa-
tionDataType.swDataDefProps.compuMethod is restricted to a CompuMethod of
either category BITFIELD_TEXTTABLE or category TEXTTABLE (these might be
seen as implementation specific in certain cases).
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
The statement made by [constr_1158] is further visualized by Table 5.83.
SCALE_RATIONAL_AND_TEXTTABLE
SCALE_LINEAR_AND_TEXTTABLE
BITFIELD_TEXTTABLE
SCALE_LINEAR
TAB_NOINTP
IDENTICAL
TEXTTABLE
RAT_FUNC
LINEAR
The following examples illustrate how a linear conversion is specified using Com-
puMethod.
The following example illustrates how a linear conversion with a texttable is specified
using CompuMethod.
Listing 5.15: example for linear and texttable CompuMethod
<COMPU-METHOD>
<SHORT-NAME>linearAndTexttable</SHORT-NAME>
<CATEGORY>SCALE_LINEAR_AND_TEXTTABLE</CATEGORY>
<UNIT-REF DEST="UNIT">kmph</UNIT-REF>
<COMPU-INTERNAL-TO-PHYS>
<COMPU-SCALES>
<COMPU-SCALE>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">300</UPPER-LIMIT>
<COMPU-RATIONAL-COEFFS>
<COMPU-NUMERATOR>
<V>30</V>
<V>2</V>
</COMPU-NUMERATOR>
<COMPU-DENOMINATOR>
<V>1</V>
</COMPU-DENOMINATOR>
</COMPU-RATIONAL-COEFFS>
</COMPU-SCALE>
<COMPU-SCALE>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">350</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">350</UPPER-LIMIT>
<COMPU-CONST>
<VT>SensorError</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">351</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">351</UPPER-LIMIT>
<COMPU-CONST>
<VT>SignalNotAvailable</VT>
</COMPU-CONST>
</COMPU-SCALE>
</COMPU-SCALES>
</COMPU-INTERNAL-TO-PHYS>
</COMPU-METHOD>
1000
I=
60 + 2[K −1 ] ∗ P[K]
<V>2</V>
</COMPU-DENOMINATOR>
</COMPU-RATIONAL-COEFFS>
</COMPU-SCALE>
</COMPU-SCALES>
</COMPU-PHYS-TO-INTERNAL>
</COMPU-METHOD>
Note that this example is somehow tricky. Bit 6+7 are not used for valid data, but are
part of the mask. By this the error can safely be masked out.
Internal: 28
28 = 0b0001_1100
Bit 7654 3210
Physical:
“problem = low pressure | rear right = yes | rear left = yes | front right = no | front left = no”
Listing 5.17: example for bit field text table CompuMethod
<COMPU-METHOD>
<SHORT-NAME>Texttable</SHORT-NAME>
<CATEGORY>BITFIELD_TEXTTABLE</CATEGORY>
<COMPU-INTERNAL-TO-PHYS>
<COMPU-SCALES>
<!-- problem -->
<COMPU-SCALE>
<SHORT-LABEL>problem</SHORT-LABEL>
<SYMBOL>problem_flat_tire</SYMBOL>
<MASK>0b11110000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</UPPER-LIMIT>
<COMPU-CONST>
<VT>flat tire</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>problem</SHORT-LABEL>
<SYMBOL>problem_low_pressure</SYMBOL>
<MASK>0b11110000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00010000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00010000</UPPER-LIMIT>
<COMPU-CONST>
<VT>low pressure</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>problem</SHORT-LABEL>
<SYMBOL>problem_unbalanced</SYMBOL>
<MASK>0b11110000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00100000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00100000</UPPER-LIMIT>
<COMPU-CONST>
<VT>unbalanced</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>problem</SHORT-LABEL>
<SYMBOL>problem_unknown</SYMBOL>
<MASK>0b11110000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00110000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00110000</UPPER-LIMIT>
<COMPU-CONST>
<VT>unknown</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>problem</SHORT-LABEL>
<SYMBOL>problem_invalid</SYMBOL>
<MASK>0b11110000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b11110000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b11110000</UPPER-LIMIT>
<COMPU-CONST>
<VT>invalid</VT>
</COMPU-CONST>
</COMPU-SCALE>
<!-- rear right -->
<COMPU-SCALE>
<SHORT-LABEL>rearRight</SHORT-LABEL>
<SYMBOL>rearRight_no</SYMBOL>
<MASK>0b11001000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</UPPER-LIMIT>
<COMPU-CONST>
<VT>no</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>rearRight</SHORT-LABEL>
<SYMBOL>rearRight_yes</SYMBOL>
<MASK>0b11001000</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00001000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00001000</UPPER-LIMIT>
<COMPU-CONST>
<VT>yes</VT>
</COMPU-CONST>
</COMPU-SCALE>
<!-- rear left -->
<COMPU-SCALE>
<SHORT-LABEL>rearLeft</SHORT-LABEL>
<SYMBOL>rearLeft_no</SYMBOL>
<MASK>0b11000100</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</UPPER-LIMIT>
<COMPU-CONST>
<VT>no</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>rearLeft</SHORT-LABEL>
<SYMBOL>rearLeft_yes</SYMBOL>
<MASK>0b11000100</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000100</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000100</UPPER-LIMIT>
<COMPU-CONST>
<VT>yes</VT>
</COMPU-CONST>
</COMPU-SCALE>
<!-- front right -->
<COMPU-SCALE>
<SHORT-LABEL>frontRight</SHORT-LABEL>
<SYMBOL>frontRight_no</SYMBOL>
<MASK>0b11000010</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</UPPER-LIMIT>
<COMPU-CONST>
<VT>no</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>frontRight</SHORT-LABEL>
<SYMBOL>frontRight_yes</SYMBOL>
<MASK>0b11000010</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000010</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000010</UPPER-LIMIT>
<COMPU-CONST>
<VT>yes</VT>
</COMPU-CONST>
</COMPU-SCALE>
<!-- front left -->
<COMPU-SCALE>
<SHORT-LABEL>frontLeft</SHORT-LABEL>
<SYMBOL>frontLeft_no</SYMBOL>
<MASK>0b11000001</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000000</UPPER-LIMIT>
<COMPU-CONST>
<VT>no</VT>
</COMPU-CONST>
</COMPU-SCALE>
<COMPU-SCALE>
<SHORT-LABEL>frontLeft</SHORT-LABEL>
<SYMBOL>frontLeft_yes</SYMBOL>
<MASK>0b11000001</MASK>
<LOWER-LIMIT INTERVAL-TYPE="CLOSED">0b00000001</LOWER-LIMIT>
<UPPER-LIMIT INTERVAL-TYPE="CLOSED">0b00000001</UPPER-LIMIT>
<COMPU-CONST>
<VT>yes</VT>
</COMPU-CONST>
</COMPU-SCALE>
</COMPU-SCALES>
</COMPU-INTERNAL-TO-PHYS>
</COMPU-METHOD>
Class CompuConstTextContent
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the textual content of a scale.
Base ARObject, CompuConstContent
Attribute Type Mult. Kind Note
vt VerbatimString 0..1 attr This represents a textual constant in the computation
method.
Table 5.85: CompuConstTextContent
Class CompuConstNumericContent
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the fact that the constant value of the computation method is a numerical
value. It is separated from CompuConstFormulaContent to support compatibility with ASAM HDO.
Base ARObject, CompuConstContent
Attribute Type Mult. Kind Note
v Numerical 0..1 attr This represents the numerical value.
Tags:xml.sequenceOffset=50
4
Class PhysicalDimension
molarAmount Numerical 0..1 attr The exponent of the physical dimension "quantity of
Exp substance".
Tags:xml.sequenceOffset=70
temperatureExp Numerical 0..1 attr The exponent of the physical dimension "temperature".
Tags:xml.sequenceOffset=60
timeExp Numerical 0..1 attr The exponent of the physical dimension "time".
Tags:xml.sequenceOffset=40
AUTOSAR provides the ability to map two PhysicalDimensions onto each other
with the implication that the two mapped PhysicalDimensions shall be considered
compatible (for more explanation please refer to [constr_1053]).
ARElement ARElement
PhysicalDimensionMappingSet PhysicalDimension
Class PhysicalDimensionMapping
Package M2::MSR::AsamHdo::Units
Note This class represents a specific mapping between two PhysicalDimensions.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class PhysicalDimensionMapping
firstPhysical PhysicalDimension 0..1 ref This represents the first PhysicalDimension of the
Dimension enclosing PhysicalDimensionMapping.
secondPhysical PhysicalDimension 0..1 ref This represents the first PhysicalDimension of the
Dimension enclosing PhysicalDimensionMapping.
<UNIT>
<SHORT-NAME>Mtr</SHORT-NAME>
<LONG-NAME>
<L-4 L="EN">Meter</L-4>
</LONG-NAME>
<DISPLAY-NAME>m</DISPLAY-NAME>
<FACTOR-SI-TO-UNIT>1</FACTOR-SI-TO-UNIT>
<OFFSET-SI-TO-UNIT>0</OFFSET-SI-TO-UNIT>
<PHYSICAL-DIMENSION>
<SHORT-NAME>Len1</SHORT-NAME>
<LONG-NAME>
<L-4 L="EN">Length 1</L-4>
</LONG-NAME>
<LENGTH-EXP>1</LENGTH-EXP>
</PHYSICAL-DIMENSION>
Class UnitGroup
Package M2::MSR::AsamHdo::Units
Note This meta-class represents the ability to specify a logical grouping of units.The category denotes the unit
system that the referenced units are associated to.
In this way, e.g. country-specific unit systems (CATEGORY="COUNTRY") can be defined as well as
specific unit systems for certain application domains.
In the same way a group of equivalent units, can be defined which are used in different countries, by
setting CATEGORY="EQUIV_UNITS". KmPerHour and MilesPerHour could such be combined to one
group named "vehicle_speed". The unit MeterPerSec would not belong to this group because it is
normally not used for vehicle speed. But all of the mentioned units could be combined to one group
named "speed".
Note that the UnitGroup does not ensure the physical compliance of the units. This is maintained by the
physical dimension.
Tags:atp.recommendedPackage=UnitGroups
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
unit Unit * ref This represents one particular unit in the UnitGroup.
Tags:xml.sequenceOffset=20
The association from SwComponentType to UnitGroup (beside the obvious use case
to allow for the specification of unitGroups relevant for the enclosing SwComponent-
Type in particular) is supposed to support the identification of UnitGroups relevant
for the enclosing System. This aspect facilitates the creation of ASAM MCD2 files for
a concrete ECU.
According to [27] the following three values for categorys are recommended in the
context of UnitGroup:
• COUNTRY collects units which are common in a particular country, denoted by the
shortName / longName of the UnitGroup
• CALCULATION refers to specific units intended for the creation of data types. In
this category of UnitGroup, several Units may refer to the same Physi-
calDimension as well as to different PhysicalDimension.
• EQUIV_UNITS define a group of equivalent units, which are used for example in
different countries.
Additional values for category may be mutually agreed between the stakeholders.
In the example shown in Figure 5.56, Units are classified by country and use.
[TPS_SWCT_01061] Conversion of units dIf a unit has to be converted according to
the chosen country code, the physicalDimension of both units shall be the same.
If another unit shares the same UnitGroup with a category of EQUIV_UNITS it is
preferred as target of the conversion.c(RS_SWCT_02100)
Assume "MilesPerHour" should be converted to a European unit: Based on the phys-
icalDimension a conversion to "MeterPerSec" as well as "KmPerHour" is possible.
Section 5.2.4.1 already shows an example on how to define constraints for the physical
range of a data type, see Figure 5.4.
[TPS_SWCT_01286] DataConstr dIn general, the meta-class DataConstr can be
aggregated (via SwDataDefProps.dataConstr) to define various constraints for the
possible values of a data type. This includes limits for the physical and internal range,
as well as special constraints (monotony) for the setup of axis definition.c()
Figure 5.57 and the following class tables show the meta-classes involved in the defi-
nition of constraints.
A more detailed documentation of these meta-classes can be found in [27]. As refine-
ment of these definitions, the following values apply for constrLevel:
[constr_2561] Application of DataConstrRule.constrLevel dDataConstr-
Rule.constrLevel is limited to
0: This represents so called “hard limits”. They shall always be specified.
1: This represents so called “soft limits”. Soft limits may be violated after confirmation
by the user of an MCD-System.
This rule applies at any time in the workflow. Other values may exist, but the
semantics is outside the AUTOSAR scope.
c()
[TPS_SWCT_01287] Standard limits and extended limits in the ASAM-MCD2
(ASAP2) specification dThe ASAM-MCD2 (ASAP2) specification [26] defines stan-
dard limits and extended limits. If extended limits exist, the standard limits may be
violated upon user confirmation. Note that in consequence, of this definition, the fol-
lowing approach applies for A2L generation:
• If only one DataConstrRule with constrLevel set to 0 is specified, it repre-
sents the standard limits in A2L. No extended limits are generated.
• If two DataConstrRule exist, then:
– the one with constrLevel set to 0 represents to the extended limits
– the one with constrLevel set to 1 represents to the standard limits
Note that even if this is somehow counter-intuitive (since the one with constrLevel
set to 0 changes its role), it matches the best to the definitions in ASAM-MCD2.c()
«atpVariation» ARElement
SwDataDefProps +dataConstr AtpBlueprint
AtpBlueprintable
0..1 DataConstr
ARElement
DataConstrRule
Unit
+ constrLevel: Integer [0..1]
+ factorSiToUnit: Float [0..1]
+ offsetSiToUnit: Float [0..1]
+unit 0..1
Class DataConstr
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This meta-class represents the ability to specify constraints on data.
Tags:atp.recommendedPackage=DataConstrs
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, CollectableElement, Identifiable, Multilanguage
Referrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
5
4
Class DataConstr
dataConstrRule DataConstrRule * aggr This is one particular rule within the data constraints.
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=30
xml.typeElement=false
xml.typeWrapperElement=false
Class DataConstrRule
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This meta-class represents the ability to express one specific data constraint rule.
Base ARObject
Attribute Type Mult. Kind Note
constrLevel Integer 0..1 attr This attribute describes the category of a constraint. One
of its functions is in the area of constraint violation, where
it can be used from a certain level, to produce error
messages.
The lower the level, the more stringent the check.
Used to distinguish hard or soft limits.
Tags:xml.sequenceOffset=20
internalConstrs InternalConstrs 0..1 aggr Describes the limitations applicable on the internal
domain (as opposed to the physical domain).
Tags:xml.sequenceOffset=40
physConstrs PhysConstrs 0..1 aggr Describes the limitations applicable on the physical
domain (as opposed to the internal domain).
Tags:xml.sequenceOffset=30
Class PhysConstrs
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This meta-class represents the ability to express physical constraints. Therefore it has (in opposite to
InternalConstrs) a reference to a Unit.
Base ARObject
Attribute Type Mult. Kind Note
lowerLimit Limit 0..1 attr This specifies the lower limit of the constraint.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=20
maxDiff Numerical 0..1 attr Maximum difference that is permitted between two
consecutive values if the constraint is applied to an axis.
Tags:xml.sequenceOffset=60
maxGradient Numerical 0..1 attr This element specifies the maximum slope that may be
used in curves and maps.
Tags:xml.sequenceOffset=50
5
4
Class PhysConstrs
monotony MonotonyEnum 0..1 attr This specifies the monotony constraints on the data
object. Note that this applies only to curves and maps.
Tags:xml.sequenceOffset=70
scaleConstr ScaleConstr * aggr This is one particular scale which contributes to the data
(ordered) constraints.
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=40
xml.typeElement=false
xml.typeWrapperElement=false
unit Unit 0..1 ref This is the unit to which the physical constraints relate to.
In particular, it is the physical unit of the specified limits.
Tags:xml.sequenceOffset=80
upperLimit Limit 0..1 attr This specifies the upper limit of the constraint.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=30
Class InternalConstrs
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This meta-class represents the ability to express internal constraints.
Base ARObject
Attribute Type Mult. Kind Note
lowerLimit Limit 0..1 attr This specifies the lower limit of the constraint.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=20
maxDiff Numerical 0..1 attr Maximum difference that is permitted between two
consecutive values if the constraint is applied to an axis.
Tags:xml.sequenceOffset=60
maxGradient Numerical 0..1 attr This element specifies the maximum slope that may be
used in maps and curves.
Tags:xml.sequenceOffset=50
monotony MonotonyEnum 0..1 attr This element specifies the monotony characteristics of
the current internal or physical limits. The following table
shows the monotony characteristics which are to be filled
through the corresponding values.
If the element has no contents or if it is omitted, "no
Monotony" is the default content.
Tags:xml.sequenceOffset=70
5
4
Class InternalConstrs
scaleConstr ScaleConstr * aggr This is one particular scale which contributes to the data
(ordered) constraints.
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=40
xml.typeElement=false
xml.typeWrapperElement=false
upperLimit Limit 0..1 attr This specifies the upper limit defined by the constraint.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=30
Class ScaleConstr
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This meta-class represents the ability to specify constraints as a list of intervals (called scales).
Base ARObject
Attribute Type Mult. Kind Note
desc MultiLanguageOverview 0..1 aggr <desc> represents a general but brief description of the
Paragraph object in question.
Tags:xml.sequenceOffset=30
lowerLimit Limit 0..1 attr This specifies the lower limit of the scale.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=40
shortLabel Identifier 0..1 attr This element specifies a short name for the scaleConstr.
This can for example be used to create more specific
messages of a constraint checker. The constraints cannot
be associated in the meta-model, therefore shortLabel is
somehow a substitute for shortName.
Tags:xml.sequenceOffset=20
upperLimit Limit 0..1 attr This specifies the upper limit of a the scale.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=50
validity ScaleConstrValidity 0..1 attr Specifies if the values defined by the scales are
Enum considered to be valid. If the attribute is missing then the
default value is "VALID".
Tags:xml.attribute=true
Enumeration ScaleConstrValidityEnum
Package M2::MSR::AsamHdo::Constraints::GlobalConstraints
Note This enumerator specifies the possible values of a scale.
Literal Description
5
4
Enumeration ScaleConstrValidityEnum
notAvailable Currently invalid area The value usually is presented by the ECU but can currently not be performed
due to e.g. initialization or temporary problems. Please note, that this behavior appears during
runtime and cannot be handled while data is edited.
Tags:atp.EnumerationLiteralIndex=0
notDefined Indicates an area which is marked in a specification (e.g. as reserved) Shall usually not be set by the
ECU but is used by a tester to verify correct ECU.
Tags:atp.EnumerationLiteralIndex=1
notValid The ECU cannot process the requested data.
Tags:atp.EnumerationLiteralIndex=2
valid Current value is within a valid range and can be presented to user as is.
Tags:atp.EnumerationLiteralIndex=3
Primitive Limit
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This class represents the ability to express a numerical limit. Note that this is in fact a NumericalVariation
Point but has the additional attribute intervalType.
Tags:
xml.xsd.customType=LIMIT-VALUE
xml.xsd.pattern=(0[xX][0-9a-fA-F]+)|(0[0-7]+)|(0[bB][0-1]+)|(([+\-]?[1-9]
[0-9]+(\.[0-9]+)?|[+\-]?[0-9](\.[0-9]+)?)([eE]([+\-]?)[0-9]+)?)|\.0|INF|-INF|NaN
xml.xsd.type=string
Attribute Type Mult. Kind Note
intervalType IntervalTypeEnum 0..1 attr This specifies the type of the interval. If the attribute is
missing the interval shall be considered as "CLOSED".
Tags:xml.attribute=true
Enumeration MonotonyEnum
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This enumerator denotes the values for specification of monotony for e.g. curves.
Literal Description
decreasing This indicates that the related curve needs to be monotony decreasing.
Tags:atp.EnumerationLiteralIndex=0
increasing This indicates that the related curve needs to be monotony increasing.
Tags:atp.EnumerationLiteralIndex=1
monotonous This indicates that the values shall be monotonously decreasing or increasing, depending on the
trend set by the first values of the series.
Tags:atp.EnumerationLiteralIndex=2
noMonotony This indicates that the related curve needs not to be monotony.
Tags:atp.EnumerationLiteralIndex=3
strictlyDecreasing This indicates that the related curve needs to be strictly monotony decreasing.
Tags:atp.EnumerationLiteralIndex=4
strictlyIncreasing This indicates that the related curve needs to be strictly monotony increasing.
Tags:atp.EnumerationLiteralIndex=5
5
4
Enumeration MonotonyEnum
strictMonotonous This indicates that the values shall be strict monotonously decreasing or increasing, depending on
the trend set by the first values of the series.
Tags:atp.EnumerationLiteralIndex=6
c()
Please note that Limit inherits from AbstractNumericalVariationPoint. This
means it is a number which may be subject to variability. For this reason, it is not
possible to constrain the content already in the xml schema.
[constr_1191] Value of Limit shall yield a numerical value dAfter all variability is
bound, the content obtained from a limit shall yield a numerical value at any time
in the workflow.c()
Nevertheless, it is not possible to distinguish on this level between float and integer
values. Consequently, [constr_1191] will not take the burden from an AUTOSAR tool
to decide whether the value provided as a limit actually makes sense in any of the given
contexts.
Enumeration IntervalTypeEnum
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This enumerator specifies the type of an interval.
Literal Description
closed The area is limited by the value given. The value itself is included.
Tags:atp.EnumerationLiteralIndex=0
open The area is limited by the value given. The value itself is not included.
Tags:atp.EnumerationLiteralIndex=2
Physical limits can be given at various palaces in the AUTOSAR Meta-Model, e.g. in
context of ApplicationDataTypes, DataPrototypes but also without the usage of
the type prototype pattern in Compound Primitive Data Types (e.g SwAxisIn-
dividual.dataConstr).
Nevertheless, the usage of PhysConstrs requires a CompuMethod for the calculation
of the numerical limits, which cannot be applied for textual conversions. For this reason
following definition applies:
[TPS_SWCT_01761] Physical limits of pure textual conversions dIt is not possible
to define the lower or upper limit of a set of textual labels. Therefore, it is not possible
to define limits for an object that can only take elements of a set of textual labels as the
value.c()
Please note, as a consequence of [TPS_SWCT_01761] for data defined by means of a
CompuMethod of category TEXTTABLE or BITFIELD_TEXTTABLE and additionally
a DataConstr with a dataConstrRule.physConstrs the given physConstrs has
no meaning.
[TPS_SWCT_01762] Physical limits of mixed textual conversions dThe defini-
tion of the physical limits of a piece of data described by a CompuMethod of cat-
egory SCALE_LINEAR_AND_TEXTTABLE and SCALE_RATIONAL_AND_TEXTTABLE
can only be specified for the linear or rational part.
In addition, the defined textual labels can be used for the conversion.c()
For clarification, [TPS_SWCT_01761] and [TPS_SWCT_01762] do not limit the usage
of DataConstr.dataConstrRule.internalConstrs which may define further and
even tighter constraints on implementation level.
Those internalConstrs might be even given in context of a Compound Primi-
tive Data Type (for example, in the context of an SwAxisIndividual.input-
VariableType or SwAxisIndividual.dataConstr).
In an ECU there might be various methods to access a particular object (e.g. mea-
surement or calibration parameter) according to a given address. This variety might
come from different kind of memory (near, far, . . .) but also from indirections which are
introduced by the compiler.
[TPS_SWCT_01290] SwAddrMethod dIn order to allow a measurement and calibra-
tion system to access such objects SwAddrMethods are specified. Another purpose
of this feature is to support the definition of abstract memory sections, i.e. to specify
which variables shall be put together in the same sections in case of generated code
(especially for data allocated by the RTE).
SwAddrMethod will be used to group data, for example, to cover the fact that some-
times it is required that one or more calibration parameters out of the overall collection
of calibration parameters of a SwComponentPrototype respectively an AUTOSAR
software component shall be placed in another memory location than the other param-
eters of the SwComponentPrototype respectively the AUTOSAR software compo-
nent.c()
[TPS_SWCT_01291] Association of MemorySection with SwAddrMethod dIn
Implementation the particular MemorySection is associated with the SwAd-
drMethod. This association indicates that all objects of the associated addressing
method shall be placed in the given memory section.c()
Class MemorySection
Package M2::AUTOSARTemplates::CommonStructure::ResourceConsumption::MemorySectionUsage
Note Provides a description of an abstract memory section used in the Implementation for code or data. It shall
be declared by the Implementation Description of the module or component, which actually allocates the
memory in its code. This means in case of data prototypes which are allocated by the RTE, that the
generated Implementation Description of the RTE shall contain the corresponding MemorySections.
The attribute "symbol" (if symbol is missing: "shortName") defines the module or component specific
section name used in the code. For details see the document "Specification of Memory Mapping".
Typically the section name is build according the pattern:
<SwAddrMethod shortName>[_<further specialization nominator>][_<alignment>]
where
• [<SwAddrMethod shortName>] is the shortName of the referenced SwAddrMethod
• [_<further specialization nominator>] is an optional infix to indicate the specialization in the
case that several MemorySections for different purpose of the same Implementation Description
referring to the same or equally named SwAddrMethods.
• [_<alignment>] is the alignment attributes value and is only applicable in the case that the
memoryAllocationKeywordPolicy value of the referenced SwAddrMethod is set to addrMethod
ShortNameAndAlignment
MemorySection used to Implement the code of RunnableEntitys and BswSchedulableEntitys shall have a
symbol (if missing: shortName) identical to the referred SwAddrMethod to conform to the generated RTE
header files.
In addition to the section name described above, a prefix is used in the corresponding macro code in
order to define a name space. This prefix is by default given by the shortName of the BswModule
Description resp. the SwComponentType. It can be superseded by the prefix attribute.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
5
4
Class MemorySection
Attribute Type Mult. Kind Note
alignment AlignmentType 0..1 attr The attribute describes the typical alignment of objects
within this memory section.
executableEntity ExecutableEntity * ref Reference to the ExecutableEntitites located in this
section. This allows to locate different Executable
Entitities in different sections even if the associated Sw
Addrmethod is the same.
This is applicable to code sections only.
memClass CIdentifier 0..1 attr Defines a specific symbol in order to generate the
Symbol compiler abstraction "memclass" code for this Memory
Section. The existence of this attribute supersedes the
usage of swAddrmethod.shortName for this purpose.
The complete name of the "memclass" preprocessor
symbol is constructed as <prefix>_<memClassSymbol>
where prefix is defined in the same way as for the
enclosing MemorySection. See also AUTOSAR_SWS_
CompilerAbstraction SWS_COMPILER_00040.
Tags:atp.Status=obsolete
option Identifier * attr This attribute introduces the ability to specify further
intended properties of this MemorySection. The following
two values are standardized (to be used for code sections
only and exclusively to each other):
• INLINE - The code section is declared with the
compiler abstraction macro INLINE.
• LOCAL_INLINE - The code section is declared
with the compiler abstraction macro LOCAL_
INLINE
In both cases (INLINE and LOCAL_INLINE) the inline
expansion depends on the compiler specific
implementation of these macros. Depending on this, the
code section either corresponds to an actual section in
memory or is put into the section of the caller. See
AUTOSAR_SWS_CompilerAbstraction for more details.
prefix SectionNamePrefix 0..1 ref The prefix used to set the memory section’s namespace
in the code. The existence of a prefix element
supersedes rules for a default prefix (such as the Bsw
ModuleDescription’s shortName). This allows the user to
define several name spaces for memory sections within
the scope of one module, cluster or SWC.
size PositiveInteger 0..1 attr The size in bytes of the section.
swAddrmethod SwAddrMethod 0..1 ref This association indicates that this module specific
(abstract) memory section is part of an overall SwAddr
Method, referred by the upstream declarations (e.g.
calibration parameters, data element prototypes, code
entities) which share a common addressing strategy. This
can be evaluated for the ECU configuration of the build
support.
This association shall always be declared by the
Implementation description of the module or component,
which allocates the memory in its code. This means in
case of data prototypes which are allocated by the RTE,
that the software components only declare the grouping
of its data prototypes to SwAddrMethods, and the
generated Implementation Description of the RTE actually
sets up this association.
5
4
Class MemorySection
symbol Identifier 0..1 attr Defines the section name as explained in the main
description. By using this attribute for code generation
(instead of the shortName) it is possible to define several
different MemorySections having the same name - e.g.
symbol = CODE - but using different sectionName
Prefixes.
Table 5.101: MemorySection
4
Class SwAddrMethod
section SectionInitialization 0..1 attr Specifies the expected initialization of the variables
Initialization PolicyType (inclusive those which are implementing VariableData
Policy Prototypes). Therefore this is an implementation
constraint for initialization code of BSW modules
(especially RTE) as well as the start-up code which
initializes the memory segment to which the AutosarData
Prototypes referring to the SwAddrMethod’s are later on
mapped.
If the attribute is not defined it has the identical semantic
as the attribute value "INIT"
sectionType MemorySectionType 0..1 attr Defines the type of memory sections which can be
associated with this addresssing method.
4
Enumeration MemorySectionType
calibrationVariables This memory section is reserved for "virtual variables" that are computed by an MCD system during a
measurement session but do not exist in the ECU memory.
Tags:atp.EnumerationLiteralIndex=2
calprm To be used for calibratable constants of ECU-functions.
Tags:atp.EnumerationLiteralIndex=3
code To be used for mapping code to application block, boot block, external flash etc.
Tags:atp.EnumerationLiteralIndex=4
configData Constants with attributes that show that they reside in one segment for module configuration.
Tags:atp.EnumerationLiteralIndex=5
const To be used for global or static constants.
Tags:atp.EnumerationLiteralIndex=6
excludeFromFlash This memory section is reserved for "virtual parameters" that are taken for computing the values of
so-called dependent parameter of an MCD system. Dependent Parameters that are not at the same
time "virtual parameters" are allocated in the ECU memory.
Virtual parameters, on the other hand, are not allocated in the ECU memory. Virtual parameters exist
in the ECU Hex file for the purpose of being considered (for computing the values of dependent
parameters) during an offline-calibration session.
Tags:atp.EnumerationLiteralIndex=7
var To be used for global or static variables. The expected initialization is specified with the attribute
sectionInitializationPolicy.
Tags:atp.EnumerationLiteralIndex=9
Enumeration MemoryAllocationKeywordPolicyType
Package M2::MSR::DataDictionary::AuxillaryObjects
Note Enumeration to specify the name pattern of the Memory Allocation Keyword.
Literal Description
addrMethodShort The MemorySection shortNames of referring MemorySections and therefore the belonging Memory
Name Allocation Keywords in the code are build with the shortName of the SwAddrMethod. This is the
default value if the attribute does not exist.
Tags:atp.EnumerationLiteralIndex=0
addrMethodShort The MemorySection shortNames of referring MemorySections and therefore the belonging Memory
NameAndAlignment Allocation Keywords in the code are build with the shortName of the SwAddrMethod and a variable
alignment postfix.
Thereby the alignment postfix needs to be consistent with the alignment attribute of the related
MemorySection.
Tags:atp.EnumerationLiteralIndex=1
Primitive AlignmentType
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
5
4
Primitive AlignmentType
Note This primitive represents the alignment of objects within a memory section. The value is in number of bits
or UNKNOWN (deprecated), 8 , 16, 32 UNSPECIFIED, BOOLEAN, or PTR. Typical values for numbers
are 8, 16, 32.
Tags:
xml.xsd.customType=ALIGNMENT-TYPE
xml.xsd.pattern=[1-9][0-9]*|0[xX][0-9a-fA-F]*|0[bB]
[0-1]+|0[0-7]*|UNSPECIFIED|UNKNOWN|BOOLEAN|PTR
xml.xsd.type=string
addrMethodShortName
addrMethodShortNameAndAlignment
«atpSplitable»
+/swDataDefProps 0..1 +resourceConsumption 0..1
«atpVariation» Identifiable
SwDataDefProps ResourceConsumption
«enumeration»
MemorySectionType
var «atpVariation,atpSplitable»
code
+swAddrMethod 0..1 +memorySection 0..*
const
calprm ARElement Identifiable
configData AtpBlueprint MemorySection
excludeFromFlash AtpBlueprintable
calibrationVariables +swAddrmethod + alignment: AlignmentType [0..1]
SwAddrMethod
+ memClassSymbol: CIdentifier [0..1]
0..1
+ memoryAllocationKeywordPolicy: + option: Identifier [0..*]
MemoryAllocationKeywordPolicyType [0..1] + size: PositiveInteger [0..1]
+ option: Identifier [0..*] + symbol: Identifier [0..1]
+ sectionInitializationPolicy:
SectionInitializationPolicyType [0..1]
+ sectionType: MemorySectionType [0..1]
these may refer to the same SwRecordLayout even if the size of the data is different.c
(RS_SWCT_03215)
As mentioned above, the purpose of record layout is to specify how an object (e.g. a
calibration parameter) is serialized in memory of an ECU. The canonical approach for
this is to define nested groups (SwRecordLayoutGroup).
These groups indicate the structure of the corresponding Implementation-
DataType. The serialization is then executed by iterating over the axes of a curve,
a map, or iterating along a string. The contents of such a record layout group (
SwRecordLayoutGroupContent) is a mixture of (thus nested) groups and values
(SwRecordLayoutV).
These values refer to particular properties of the object (e.g. value, count, . . .). By
application of this pattern, the serialization of any complex object can be specified.
«primitive» ARElement
SwRecordLayoutGroup
AxisIndexType SwRecordLayout
+ category: AsamRecordLayoutSemantics [0..1]
tags + shortLabel: Identifier [0..1]
xml.xsd.customType = AXIS-INDEX-TYPE + swRecordLayoutComponent: Identifier [0..1] +swRecordLayoutGroup
xml.xsd.pattern = [0-9]+|STRING|ARRAY + swRecordLayoutGroupAxis: AxisIndexType [0..1]
xml.xsd.type = string + swRecordLayoutGroupFrom: 0..1
RecordLayoutIteratorPoint [0..1]
+ swRecordLayoutGroupIndex: NameToken [0..1]
+ swRecordLayoutGroupStep: Integer [0..1]
+ swRecordLayoutGroupTo:
RecordLayoutIteratorPoint [0..1]
+swRecordLayoutGroup 0..1
0..1 +swRecordLayoutGroupContentType
«primitive»
AsamRecordLayoutSemantics «atpMixed»
SwRecordLayoutGroupContent
tags +swRecordLayout
xml.xsd.customType = ASAM-RECORD-LAYOUT-SEMANTICS
xml.xsd.type = NMTOKEN 0..1
+swRecordLayoutV 0..1
«primitive»
SwRecordLayoutV
RecordLayoutIteratorPoint
AtpBlueprint Identifiable
MultiLanguageOverviewParagraph
AtpBlueprintable SwGenericAxisParamType
BaseType
SwBaseType
Class SwRecordLayout
Package M2::MSR::DataDictionary::RecordLayout
Note Defines how the data objects (variables, calibration parameters etc.) are to be stored in the ECU
memory. As an example, this definition specifies the sequence of axis points in the ECU memory.
Iterations through axis values are stored within the sub-elements swRecordLayoutGroup.
Tags:atp.recommendedPackage=SwRecordLayouts
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
swRecord SwRecordLayoutGroup 0..1 aggr This is the top level record layout group.
LayoutGroup
Tags:
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=20
xml.typeElement=false
xml.typeWrapperElement=false
Class SwRecordLayoutV
Package M2::MSR::DataDictionary::RecordLayout
Note This element specifies which values are stored for the current SwRecordLayoutGroup. If no baseType is
present, the SwBaseType referenced initially in the parent SwRecordLayoutGroup is valid. The
specification of swRecordLayoutVAxis gives the axis of the values which shall be stored in accordance
with the current record layout SwRecordLayoutGroup. In swRecordLayoutVProp one can specify the
information which shall be stored.
Base ARObject
Attribute Type Mult. Kind Note
baseType SwBaseType 0..1 ref This association allows to refer to a base type in case a
specific encoding is intended. If no base type is referred,
the base type referenced initially in the corresponding
DataPrototype is to be used.
Tags:xml.sequenceOffset=30
category AsamRecordLayout 0..1 attr This attribute denotes the semantics in particular in terms
Semantics of the corresponding A2L-Keyword. This is to support the
mapping of the more general record layouts in AUTOSAR/
MSR to the specific A2l keywords. It is possible to
express the specific semantics of A2l RecordLayout
keywords in swRecordlayoutGroup but not always vice
versa. Therefore the mapping is provided in this optional
attribute.
Tags:xml.sequenceOffset=5
desc MultiLanguageOverview 0..1 aggr This aggregation allows for a brief description about the
Paragraph particular record layout value which can help to identify
the entry. In-depth documentation should be added to the
introduction of the surrounding record layout.
Tags:xml.sequenceOffset=20
shortLabel Identifier 0..1 attr This attribute specifies a name which can be used e.g.
when ECU code is generated from the record layout
value.
Tags:xml.sequenceOffset=3
5
4
Class SwRecordLayoutV
swGenericAxis SwGenericAxisParam 0..1 ref This association supports the case that a value from a
ParamType Type generic axis definition shall be stored. This value is
denoted by a particular generic axis parameter type.
Tags:xml.sequenceOffset=70
swRecord AxisIndexType 0..1 attr This attribute gives the index of the axis of which values
LayoutVAxis that are stored in the record. swRecordVIndex refers to
the symbolic names of the iterators for which the axis
value shall be stored in the record.
In case of nested iterators (mainly for multidimensional
objects) the iterator names are specified as
whitespace-separated names.
These symbolic names relate to swRecordLayoutGroup
Index. The iterators are processed from left to right in
such a manner that they symbolize the loop index from
the outside to the inside.
It is considered an error if more components are specified
than axes exist in the related ApplicationDataType.
Tags:xml.sequenceOffset=40
swRecord Integer 0..1 attr This attribute specifies the filler character for the current
LayoutVFix record layout, in the form of hex digits. It is also used to
Value specify the fix value for e.g. FIXRIGHTDIFF.
Tags:xml.sequenceOffset=80
swRecord NameTokens 0..1 attr The symbolic value for iteration, or the symbolic values
LayoutVIndex separated by whitespaces, refer to the symbolic values
given in swRecordLayoutGroupIndex .
The iterators are processed from left to right, in such a
manner that they symbolize the loop index from the
outside to the inside.
It is considered an error if the record layout is referenced
by an entity which has less number of axes than index
names referenced here.
Tags:xml.sequenceOffset=60
swRecord NameToken 0..1 attr This attribute describes the kind of values to be stored.
LayoutVProp More details see below. The standardized values
foreseen for this attribute are defined in
[TPS_SWCT_01489].
Tags:xml.sequenceOffset=50
Class SwRecordLayoutGroup
Package M2::MSR::DataDictionary::RecordLayout
Note Specifies how a record layout is set up. Using SwRecordLayoutGroup it recursively models iterations
through axis values. The subelement swRecordLayoutGroupContentType may reference other Sw
RecordLayouts, SwRecordLayoutVs and SwRecordLayoutGroups for the modeled record layout.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class SwRecordLayoutGroup
category AsamRecordLayout 0..1 attr This attribute denotes the semantics in particular in terms
Semantics of the corresponding A2L-Keyword. This is to support the
mapping of the more general record layouts in AUTOSAR/
MSR to the specific A2l keywords.
It is possible to express the specific semantics of A2l
recordlayout keywords in swRecordlayoutGroup but not
always vice versa. Therefore the mapping is provided in
this optional attribute.
Tags:xml.sequenceOffset=5
desc MultiLanguageOverview 0..1 aggr This aggregation allows a brief description about the
Paragraph particular record layout group which can help to identify
the entry. In-depth documentation should be added to the
introduction of the surrounding record layout.
Tags:xml.sequenceOffset=20
shortLabel Identifier 0..1 attr This attribute specifies a name which can be used e.g.
when ECU code is generated from the record layout
group.
Tags:xml.sequenceOffset=3
swGenericAxis SwGenericAxisParam 0..1 ref This association allows to specify record layout groups to
ParamType Type iterate over generic axis parameters. For example, if the
generic axis parameter is an array, the record layout
group will iterate over this array.
Obviously, the axis referred to by swRecordLayoutGroup
Axis shall be a generic axis in which the referenced Sw
GenericAxisType is aggregated.
Tags:xml.sequenceOffset=50
swRecord Identifier 0..1 attr This attribute is used to denote the component to which
Layout the group in question applies. Thus, the record layout
Component supports structured objects.
This secures independence from the sequence of
components, because they can be referred to via name.
Tags:xml.sequenceOffset=90
swRecord AxisIndexType 0..1 attr This attribute specifies the iteration axis number for a Sw
LayoutGroup RecordLayoutGroup. The current record layout group
Axis then refers exactly to the axis with this number. This
means that the values are taken by iterating along the
thus referenced axis.
Tags:xml.sequenceOffset=30
swRecord SwRecordLayoutGroup 0..1 aggr This is the contents of the recordLayout which is
LayoutGroup Content produced for every step of iteration.
ContentType
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=100
xml.typeElement=false
xml.typeWrapperElement=false
swRecord RecordLayoutIterator 0..1 attr This attribute specifies the iterator index for the point in
LayoutGroup Point the axis from which a record layout group is commenced.
From
Negative values are also possible, i.e. the value -4 counts
from the fourth value from the end. If this property is
missing, the iteration starts with ’1’.
Tags:xml.sequenceOffset=60
5
4
Class SwRecordLayoutGroup
swRecord NameToken 0..1 attr This attribute attributes a symbolic name to the iterator of
LayoutGroup the superimposed record layout group. This can be
Index referenced as a loop index in contained SwRecordLayout
V elements.
Tags:xml.sequenceOffset=40
swRecord Integer 0..1 attr This attribute specifies the step width for the iterator index
LayoutGroup that is used for the current record layout group.
Step
Note that negative values are also possible, in case of the
starting point is higher than the endpoint. If the property
is missing, the step width is "1".
Tags:xml.sequenceOffset=80
swRecord RecordLayoutIterator 0..1 attr This attribute specifies the end point for the iteration.
LayoutGroupTo Point Negative values are also possible, i.e. the value -4 counts
up to the fourth value from the end. If this property is not
there, the iteration ends at "-1" which is the last element.
Note that depending on the arraySizeSemantics of Sw
TextProps the iteration ends at the value specified in sw
MaxTextSize.
Tags:xml.sequenceOffset=70
[constr_1264] Iteration along output axis is only supported for VALUE and VAL_-
BLK dswRecordLayoutVIndex in SwRecordLayoutV cannot be 0 for any value of
SwRecordLayoutV.category other than VALUE and VAL_BLK.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
For CURVE, MAP, etc. the iteration shall be performed along the input axis.
Primitive AxisIndexType
Package M2::MSR::DataDictionary::RecordLayout
Note This meta-class specifies an axis in a curve/map data object. The index satisfies the following convention:
• 0 output "axis"
• 1 input axis 1 (X input axis e.g. of a CURVE)
• 2 input axis 2 (Y input axis e.g. of a MAP)
• 3 input axis 3 (Z input axis e.g. of a CUBOID)
• 4 input axis 3 (Z4 input axis e.g. of a CUBE_4)
• 5 input axis 3 (Z5 input axis e.g. of a CUBE_5)
• 6..9 etc.
The output "axis" provides access to the output value of the parameter. Note that this access is usually
performed via an index according to the input axis.
In addition to this, the Values STRING and ARRAY support specific iterations.
Tags:
xml.xsd.customType=AXIS-INDEX-TYPE
xml.xsd.pattern=[0-9]+|STRING|ARRAY
xml.xsd.type=string
Primitive RecordLayoutIteratorPoint
Package M2::MSR::DataDictionary::RecordLayout
Note This meta-class denotes a start / endpoint for the iteration of a SwRecordLayoutGroup. It can be an
integer or one of the keywords MAX-TEXT-SIZE|ARRAY-SIZE. Note that negative numbers are counted
backwards. Therefore e.g. -1 refers to the last value.
Tags:
xml.xsd.customType=RECORD-LAYOUT-ITERATOR-POINT
xml.xsd.pattern=-?([0-9]+|MAX-TEXT-SIZE|ARRAY-SIZE)
xml.xsd.type=string
4
SHIFT The shift value of this axis in case of a fixed axis with shift/offset.
OFFSET The offset value of this axis in case of a fixed axis with shift/offset.
SOURCE-ADR The address of the source of this axis (Note that this does not apply to the value axis).
RESULT-ADR The address of the result for this axis (note that this does not apply to input axis).
ADDRESS The address of the axis point.
FILL Fill with the hex value specified as contents of swRecordLayoutVFixValue.
FIXLEFTDIFF Difference between this and a fixed left-hand value specified in swRecordLayoutVFixValue.
FIXRIGHTDIFF Difference between this and a fixed right-hand value specified in swRecordLayoutVFixValue.
VALUE
LEFTDIFF RIGHTDIFF
FIXLEFTDIFF FIXRIGHTDIFF
1 2 3 4
COUNT = 4
Figure 5.61: Values for swRecordLayoutVProp for individual axis
2^SHIFT
Figure 5.62: Values for swRecordLayoutVProp for fixed axis
category = FIXED_LENGTH
+implementationDataType
+implementationDataType
element: SwRecordLayout element: ImplementationDataType
:SwRecordLayoutGroup
swRecordLayoutGroupAxis = 1
shortLabel = X subElement: ImplementationDataTypeElement
category = INDEX_INCR
swRecordLayoutGroupIndex = X category = ARRAY
swRecordLayoutGroupFrom = 1 shortName = inputValues
swRecordLayoutGroupTo = -1
:SwRecordLayoutGroup
+baseType +implementationDataType
:SwDataDefProps
+swRecordLayout
+implementationDataType
element: SwRecordLayout
element: ImplementationDataType
shortName = IntCurPair_u16_u8
category = STRUCTURE
shortName = Curve1Impl
subElement: ImplementationDataTypeElement
:SwRecordLayoutV
category = TYPE_REFERENCE
swRecordLayoutVProp = COUNT shortName = COUNT
subElement: ImplementationDataTypeElement
:SwRecordLayoutGroup
category = ARRAY
swRecordLayoutGroupAxis = 1 shortName = values
subElement: ImplementationDataTypeElement
:SwRecordLayoutGroup
category = STRUCTURE
arraySize = swMaxAxisPoints
shortName = values
subElement: ImplementationDataTypeElement
:SwRecordLayoutV
category = TYPE_REEFRENCE
swRecordLayoutVAxis = 1 shortName = Xvalue
+implementationDataType
+implementationDataType
+implementationDataType
+baseType
element: SwBaseType :
+baseType ImplementationDataType
+baseType
category = FIXED_LENGTH
shortName = uint8 shortName = uint8
+baseType category = VALUE
:SwAxisIndividual
swMaxAxisPoints = 16
category = MAP
shortName = Map1
+implementationDataType
category = STRUCTURE
shortName = Map1Impl
subElement: ImplementationDataTypeElement
category = TYPE_REEFRENCE
shortName = noOfAxisPointsX
subElement: ImplementationDataTypeElement
category = TYPE_REEFRENCE
shortName = noOfAxisPointsY
subElement: ImplementationDataTypeElement
category = ARRAY
shortName = pointsAxis_1
subElement: ImplementationDataTypeElement
subElement: ImplementationDataTypeElement
subElement: ImplementationDataTypeElement
+swRecordLayout
category = TYPE_REEFRENCE
element: SwRecordLayout arraySize = 10 (swMaxAxisPoints[axis_2])
shortName = Yvalue
shortName = IntMap_u8u8_u16
subElement: ImplementationDataTypeElement
category = ARRAY
shortName = values
+baseType
subElement: ImplementationDataTypeElement
:
ImplementationDataType +implementationDataType category = TYPE_REFERENCE
arraySize = 10 (swMaxAxisPoints[axis_2])
shortName = value
shortName = uint16
category = VALUE
+baseType +baseType :
ImplementationDataType
element: SwBaseType
+baseType shortName = uint8
category = FIXED_LENGTH category = VALUE
shortName = uint8
shortName = ComAxis1
category = COM_AXIS
+implementationDataType
+1..n element
+baseType +implementationDataType
:SwRecordLayoutV
swRecordLayoutVAxis = 1
swRecordLayoutVProp = VALUE
The algorithm to generate the desired data types is illustrated in the following two
diagrams.
We create an ImplementationDataType for each ApplicationDataType. Fig-
ure 5.68 illustrates how to map the details.
ApplicationDataType
ImplementationDataTypeElement
TypeContentFromRecordLayout
Figure 5.68: algorithm to map the details of an application data type to the corresponding
implementation data type according to the record layout
:ApplicationPrimitiveDataType :DataTypeMap
+applicationDataType
shortName = Map2
category = MAP
+implementationDataType
:SwRecordLayoutGroup :ImplementationDataTypeElement
+implementationDataType
Figure 5.69: Record layout for the definition of a map implemented by an array data type
Please note that the refinement of the sub element happens according to the approach
sketched in figure 5.70.
origin
ImplementationDataType Or [RecordLayoutValue]
ImplementationDataTypeElement
[RecordLayoutGroup]
[has exactly one value]
[has no iterator]
[has SwRecordLayoutFrom] set
set category to MaxNumberOfElements
STRUCTURE
set category to ARRAY
RecordElement
ImplementationDataTypeElement
«iterative» process subElements of RecordLayoutGroup
subElement
ActivityFinal
Class InterpolationRoutineMappingSet
Package M2::AUTOSARTemplates::SWComponentTemplate::MeasurementAndCalibration::InterpolationRoutine
MappingSet
Note This meta-class specifies a set of interpolation routine mappings.
Tags:atp.recommendedPackage=InterpolationRoutineMappingSets
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
interpolation InterpolationRoutine * aggr This specifies one particular mapping of recordlayout and
Routine Mapping its matching interpolationRoutines.
Mapping
Class InterpolationRoutineMapping
Package M2::AUTOSARTemplates::SWComponentTemplate::MeasurementAndCalibration::InterpolationRoutine
MappingSet
Note This meta-class provides a mapping between one record layout and its matching interpolation routines.
This allows to formally specify the semantics of the interpolation routines.
The use case is such that the curves/Maps define an interpolation method. This mapping table specifies
which interpolation routine implements methods for a particular record layout. Using this information, the
implementer of a software-component can select the appropriate interpolation routine.
5
4
Class InterpolationRoutineMapping
Base ARObject
Attribute Type Mult. Kind Note
interpolation InterpolationRoutine * aggr This is one particular interpolation routine which is
Routine mapped to the record layout.
swRecord SwRecordLayout 0..1 ref This refers to the record layout which is mapped to
Layout interpolation routines.
Class InterpolationRoutine
Package M2::AUTOSARTemplates::SWComponentTemplate::MeasurementAndCalibration::InterpolationRoutine
MappingSet
Note This represents an interpolation routine taken to evaluate the contents of a curve or map against a
specific input value.
Base ARObject
Attribute Type Mult. Kind Note
interpolation BswModuleEntry 0..1 ref This specifies a BswModuleEntry which implements the
Routine current interpolation method for the given record layout.
Tags:xml.sequenceOffset=30
isDefault Boolean 0..1 attr This attribute specifies whether the enclosing
InterpolationRoutine is considered the default in the
context (defined by the System Template) of a given
collection InterpolationRoutineMapping that owns the
enclosing InterpolationRoutine.
Tags:xml.sequenceOffset=20
shortLabel Identifier 0..1 attr This is the name of the interpolation method which is
implemented by the referenced bswModuleEntry. It
corresponds to swInterpolationMethod in SwDataDef
Props.
Tags:xml.sequenceOffset=10
Another use case is the indication of how an ECU utilizes a DataPrototype of cate-
gory CURVE, MAP, or CUBOID to determine a single value out of one or several working
points in axis.
This can be either done via interpolation between the sampling points on each axis or
without interpolation by taking the nearest sampling point.
The first option requires the continuous representation for the determined value in the
displaying tool whereas the second option expects a discrete handling of the deter-
mined value.
[constr_1592] Definition of SwDataDefProps.displayPresentation depend-
ing on the capabilities of the data type dThe definition of a SwDataDefProps.dis-
playPresentation according to [constr_1288] and [constr_1289] shall only be ap-
plied for a DataPrototype of category ARRAY if the corresponding Application-
ArrayDataType or ImplementationDataType of category ARRAY supports the
specification of a SwDataDefProps.displayPresentation.
This rule shall be imposed at any time in the workflow.c()
[constr_1602] Definition of SwDataDefProps.displayPresentation depend-
ing on the capabilities of the element dThe definition of a SwDataDefProps.
displayPresentation according to [constr_1007] and [constr_1009] is only sup-
ported for an ApplicationArrayDataType or an ImplementationDataType of
category ARRAY if the aggregated ApplicationArrayDataType.element or
ImplementationDataType.subElement also supports the specification of a Sw-
DataDefProps.displayPresentation.
This rule shall be imposed at any time in the workflow.c()
[TPS_SWCT_01757] Not-applicable scenario for presentationContinuous dIf
the semantics of the DataPrototype is described by means of a CompuMethod of
category TEXTTABLE, BITFIELD_TEXTTABLE or TAB_NOINTP the option to set
attribute displayPresentation is meaningless because the step-wise change of
data is an intrinsic property of the data object.c()
[TPS_SWCT_01758] Applicable value range of SwDataDefProps.displayPre-
sentation dIf the semantics of a DataPrototype is described by means of a Com-
puMethod of category IDENTICAL, LINEAR, RAT_FUNC the attribute SwDataDef-
Props.displayPresentation describes the presentation of data for the complete
value range.
If the semantics of a DataPrototype is described by means of a CompuMethod of cat-
egory SCALE_LINEAR_AND_TEXTTABLE or SCALE_RATIONAL_AND_TEXTTABLE
the attribute SwDataDefProps.displayPresentation describes the presentation
of data only for the value range outside the TEXTTABLE values.c()
Enumeration DisplayPresentationEnum
Package M2::MSR::DataDictionary::DataDefProperties
Note This meta-class represents the ability to provide values for controlling the presentation of data within
measurement and calibration tools.
Literal Description
presentation The presentation of data shall form a continuous graph between data points.
Continuous
Tags:atp.EnumerationLiteralIndex=0
presentation The presentation of data shall be step-shaped between data points.
Discrete
Tags:atp.EnumerationLiteralIndex=1
5.6.1 Overview
Class ArrayValueSpecification
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note Specifies the values for an array.
Base ARObject, CompositeValueSpecification, ValueSpecification
Attribute Type Mult. Kind Note
element ValueSpecification * aggr The value for a single array element. All Value
(ordered) Specifications aggregated by ArrayValueSpecification
shall have the same structure.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
intendedPartial PositiveInteger 0..1 attr This attribute shall only have a meaning for dynamic
Initialization arrays and shall be taken as a sanity check: the number
Count filled in the attribute shall be identical to the number of
ArrayValueSpecification.element.
If the attribute does not exist it means that no partial
initialization is intended.
Table 5.122: ArrayValueSpecification
Class RecordValueSpecification
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note Specifies the values for a record.
Base ARObject, CompositeValueSpecification, ValueSpecification
Attribute Type Mult. Kind Note
5
4
Class RecordValueSpecification
field (ordered) ValueSpecification * aggr The value for a single record field. This could also be
mapped explicitly to a record element of the data type
using the shortName of the ValueSpecification. But this
would introduce a relationship to the data type that is too
strong. As of now, it is only important that the structure of
the data type matches the structure of the Value
Specification independently of the shortNames.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
Class ReferenceValueSpecification
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note Specifies a reference to a data prototype to be used as an initial value for a pointer in the software.
Base ARObject, ValueSpecification
Attribute Type Mult. Kind Note
referenceValue DataPrototype 0..1 ref The referenced data prototype.
c(RS_SWCT_03175)
It’s important to understand that although the name of the meta-class TextValue-
Specification suggests that it is the preferred way for the definition of an in-
validValue or initValue of a VariableDataPrototype/ParameterDataPro-
totype typed by an ApplicationPrimitiveDataType of category STRING the
TextValueSpecification actually has a different purpose (as defined by [con-
str_1284]).
ARElement
+valueSpec ValueSpecification
ConstantSpecification
0..1 + shortLabel: Identifier [0..1]
CompositeRuleBasedValueArgument
ConstantReference CompositeValueSpecification NumericalValueSpecification
ApplicationValueSpecification
«atpVariation»
+ category: Identifier [0..1]
+ value: Numerical [0..1]
+argument
0..* {ordered} «atpVariation»
ReferenceValueSpecification TextValueSpecification RecordValueSpecification
+ value: VerbatimString [0..1]
ArrayValueSpecification AbstractRuleBasedValueSpecification
0..1 +referenceValue
AtpPrototype CompositeRuleBasedValueArgument
NumericalRuleBasedValueSpecification CompositeRuleBasedValueSpecification
DataPrototype ApplicationRuleBasedValueSpecification
+ maxSizeToFill: PositiveInteger [0..1]
+ rule: Identifier [0..1] + category: Identifier [0..1]
Note that ValueSpecification does not inherit from any data type. This would
cause a redundancy19 in the meta-model since the intended data type of a given
ValueSpecification is already determined by the context in which it is aggregated.
Nonetheless, the intended data type imposes a certain constraint on the content of a
ValueSpecification:
[TPS_SWCT_01838] ValueSpecification shall fit into data type dAn instance of
ValueSpecification which is used to assign a value to a software object typed by
an AutosarDataType shall fit into this AutosarDataType without losing informa-
tion.c()
For example, it is not allowed to assign the numerical value “1.5” as initial value to a
data prototype typed by an ImplementationDataType which has an integer base
type.
[constr_1271] RecordValueSpecification.fields shall be identical to the
number of ApplicationRecordDataType.elements dThe initialization of an Dat-
aPrototype typed by an ApplicationRecordDataType by means of a Record-
ValueSpecification shall exactly match the structure of the Application-
RecordDataType.
For this means, it is required that the number of RecordValueSpecification.
fields shall be identical to the number of ApplicationRecordDataType.ele-
ments.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_1272] RecordValueSpecification.fields shall be identical to the
number of subElements of ImplementationDataType of category STRUCTURE
dThe initialization of an DataPrototype typed by an ImplementationDataType of
category STRUCTURE by means of a RecordValueSpecification shall exactly
match the structure of the ImplementationDataType of category STRUCTURE.
For this means, it is required that the number of RecordValueSpecification.
fields shall be identical to the number of ImplementationDataType.subEle-
ments.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
If the corresponding ApplicationRecordElement is typed by an Application-
RecordDataType then the comparison of structural compliance between Applica-
tionRecordDataType and ValueSpecification shall continue beyond the en-
countered NotAvailableValueSpecification.
19
For example, “1” can be taken as a constant value for many data types. If the ValueSpecifica-
tion were instead referring to a specific AutosarDataType it would be necessary to define a “1” for
every single AutosarDataType this value is supposed to be used in combination with.
Class NotAvailableValueSpecification
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note This meta-class provides the ability to specify a ValueSpecification to state that the respective element is
not available. This ability is needed to support the existence of ApplicationRecordElements where
attribute isOptional ist set to the value True.
Tags:atp.Status=draft
Base ARObject, ValueSpecification
Attribute Type Mult. Kind Note
defaultPattern PositiveInteger 0..1 attr The content of this attribute shall be used to initialize gaps
in the memory occupied by a structured data type in the
case that an NotAvailableValueSpecification is used. Note
that this pattern is only applied during initialization!
Variable-size data types have the ability to change the number of valid elements at
run-time. However, in many situations it is necessary to define an ArrayValueSpec-
ification for such a data type.
An ArrayValueSpecification that can be used for a variable-size array data type
needs to be able to handle the following cases:
• Full initialization of the entire array-data type. This case is identical to the creation
of a ArrayValueSpecification for a fixed-size array data type.
• Provision of values for the first n elements of the variable-size array. This case
is also known as partial initialization.
• Creation of an empty ArrayValueSpecification, i.e. an ArrayValueSpec-
ification carries the semantics of intentionally initializing 0 elements of a
variable-size array. Note the semantical difference between not initializing at all
and intentionally initializing 0 elements of the variable-size array.
All the described cases shall be supported by AUTOSAR. As already described, the
existence of an ArrayValueSpecification with the full number of elements is iden-
tical to the fixed size case. The "empty" case could be seen as a subset of the partial
initialization.
The partial initialization of variable-size array s has two facets:
[TPS_SWCT_01793] Initialization of a variable-size array typed by an Implemen-
tationDataType dA variable-size array that is modeled by means of an Implemen-
tationDataType is actually existing as a structure consisting of a size indicator and
an array that carries the payload.
Therefore, the partial initialization shall be implemented by explicitly initializing the size
indicator to a value between 0 and the applicable ImplementationDataTypeEle-
ment.arraySize and provide the corresponding number of ValueSpecifications
for the payload.c(RS_SWCT_03175, RS_SWCT_03181)
[TPS_SWCT_01794] Initialization of a variable-size array typed by an Applica-
tionArrayDataType dA variable-size array that is modeled by means of an Ap-
plicationArrayDataType where attribute arraySizeSemantics is set to vari-
ableSize does not contain any size-indicator element and therefore requires a differ-
ent approach for partial initialization.
For this purpose, ArrayValueSpecification.intendedPartialInitializa-
tionCount shall be used for the specification of the number of elements that shall be
initialized.c(RS_SWCT_03175, RS_SWCT_03181)
The applicability of attribute ArrayValueSpecification.intendedPartialIni-
tializationCount is limited to the use case of initializing a variable-size array typed
by an ApplicationArrayDataType. AUTOSAR does not foresee any other use
case for this attribute.
ARElement
+swAxisCont 0..* {ordered} Unit +swValueCont 0..1
+unit +unit
SwAxisCont + factorSiToUnit: Float [0..1] SwValueCont
0..1 + offsetSiToUnit: Float [0..1]
+ category: CalprmAxisCategoryEnum [0..1] 0..1
+ swAxisIndex: AxisIndexType [0..1]
«atpMixed»
ValueList
0..1 «atpVariation»
0..1
+ vf: Numerical [0..*] {ordered}
«atpMixed»
SwValues
+ v: Numerical [0..1]
+ vt: VerbatimString [0..1]
«atpVariation»
+ vf: Numerical [0..1]
+vgContents 0..1
«enumeration»
CalprmAxisCategoryEnum
+vg 0..1 «atpVariation»
stdAxis +vtf 0..1
ValueGroup fixAXIS
comAxis NumericalOrText
resAxis
+ vt: String [0..1]
«atpVariation»
+label 0..1
+ vf: Numerical [0..1]
MultilanguageLongName
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
Please note that case of Compound Primitive Data Types typically the attribute
swValuesPhys defines more than one value. [constr_2051] and [constr_2052] shall
enable a consistent handling of the swValuesPhys values regardless how many di-
mensions the related Compound Primitive Data Type defines.
If the ApplicationValueSpecification defines values for a Compound Prim-
itive Data Type with more than one input axis the swArraysize gets mandatory
to ensure the correct processing of the swValuesPhys values independent of the ex-
istence of SwValues.vg.
[TPS_SWCT_02001] Values of SwAxisCont with the category COM_AXIS, RES_-
AXIS are for display only dIn case of ApplicationValueSpecifications of
category MAP, CUBOID, CUBE_4, CUBE_5, and CURVE it is possible that the SwAx-
isCont of axes can be omitted if the axis is of category COM_AXIS or RES_AXIS.
If SwAxisCont values exists in such cases for the axes these are for display purpose
only because the related DataPrototype of the MAP, CUBOID, CUBE_4, CUBE_-
5, or CURVE does not hold the values of such axes. These are properties of the
DataPrototype of the COM_AXIS or RES_AXIS.c()
Hence, values of the COM_AXIS itself are described by SwValueCont.
[constr_1243] NumericalOrText shall either define vf or vt dWithin the context
of one NumericalOrText, either the attribute vf or the attribute vt shall be defined.
The existence of both attributes at the same time is not permitted.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
Attribute Existence per Category
COM_AXIS
RES_AXIS
BOOLEAN
STRING
CUBOID
CUBE_4
CUBE_5
VALUE
CURVE
MAP
Attribute of ApplicationValueSpecification
swValueCont D D D D D D D D D D
swValueCont.unit O O O O O O O O O O
swValueCont.swValuesPhys D D D D D D D D D D
swValueCont.swArraysize N/A N/A N/A D D D D D D D
swAxisCont N/A N/A N/A N/A D D D D D D
swAxisCont.unit N/A N/A N/A N/A O O O O O O
swAxisCont.category N/A N/A N/A N/A D D D D D D
swAxisCont.swAxisIndex N/A N/A N/A N/A D D D D D D
swAxisCont.swArraysize N/A N/A N/A N/A D D D D D D
swAxisCont.swValuesPhys N/A N/A N/A N/A D O(1) O(1) O(1) O(1) O(1)
Class SwAxisCont
Package M2::MSR::CalibrationData::CalibrationValue
Note This represents the values for the axis of a compound primitive (curve, map).
For standard and fix axes, SwAxisCont contains the values of the axis directly.
The axis values of SwAxisCont with the category COM_AXIS, RES_AXIS are for display only. For editing
and processing, only the values in the related GroupAxis are binding.
Base ARObject
Attribute Type Mult. Kind Note
5
4
Class SwAxisCont
category CalprmAxisCategory 0..1 attr This category specifies the particular axis types:
Enum
• STD_AXIS
• COM_AXIS
• RES_AXIS (swArraysize necessary)
Tags:xml.sequenceOffset=20
swArraysize ValueList 0..1 aggr For multidimensional compound primitivies (curve, map
...) it is necessary to know the dimensions.They are
specified using swArraySize.
• RES_AXIS
Tags:xml.sequenceOffset=70
swAxisIndex AxisIndexType 0..1 attr This property allows to explicitly assign the axis contents
to a particular axis. It is specified by numbers where 1
corresponds to the x-axis. It is also possible to derive the
axis association from the sequence of the parent.
Tags:xml.sequenceOffset=50
swValuesPhys SwValues 0..1 aggr swValuesPhys represents the values in the physical
domain.
Tags:xml.sequenceOffset=80
unit Unit 0..1 ref This represents the physical unit of the provided values.
Tags:xml.sequenceOffset=30
unitDisplay SingleLanguageUnit 0..1 aggr This represents the display name which is used for the
Name Names physical unit of the axis.
Tags:xml.sequenceOffset=40
Class SwValueCont
Package M2::MSR::CalibrationData::CalibrationValue
Note This metaclass represents the content of one particular SwInstance.
Base ARObject
Attribute Type Mult. Kind Note
swArraysize ValueList 0..1 aggr This attribute defines the size of each dimension for
compound primitives CURVE, MAP, CUBOID, CUBE_4,
CUBE_5, COM_AXIS, RES_AXIS, VAL_BLK.
For each dimension one value has to be defined, e.g. one
in case of COM_AXIS and two or more in case of MAP.
Tags:xml.sequenceOffset=40
swValuesPhys SwValues 0..1 aggr swValuesPhys represents the values in the physical
domain.
Tags:xml.sequenceOffset=50
unit Unit 0..1 ref This represents the physical unit of the provided values.
Tags:xml.sequenceOffset=20
unitDisplay SingleLanguageUnit 0..1 aggr This specifies how the physical units of the current value
Name Names set shall be displayed in documents or in user interfaces
of tools.
Tags:xml.sequenceOffset=30
4
Class <<atpMixed>> SwValues
vt VerbatimString 0..1 attr This represents the values of textual data elements
(Strings). Note that vt uses the | to separate the values for
the different bitfield masks in case that the semantics of
the related DataPrototype is described by means of a
BITFIELD_TEXTTABLE in the associated CompuMethod.
Tags:xml.sequenceOffset=30
vtf NumericalOrText 0..1 aggr This aggregation represents the ability to provide a value
that is either numerical or text which existence is subject
to variability.
From the formal point of view, the aggregation needs to
have the multiplicity 1 because SwValues is modelled with
stereotype <<atpMixed>>. Nevertheless, the existence of
vtf is optional and subject to constraints.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
Class ValueGroup
Package M2::MSR::CalibrationData::CalibrationValue
Note This element enables values to be grouped. It can be used to perform row and column-orientated
groupings, so that these can be rendered properly e.g. as a table.
Base ARObject
Attribute Type Mult. Kind Note
label MultilanguageLong 0..1 aggr This label allows to give the valueGroup a particular
Name name. It can be used if the Values are rendered as a
table.
Tags:xml.sequenceOffset=20
vgContents SwValues 0..1 aggr This represents the contents of the value group.
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=30
xml.typeElement=false
xml.typeWrapperElement=false
4
Class <<atpMixed>> ValueList
vf (ordered) Numerical * attr This is one entry in the list of numerical values
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.roleElement=true
xml.roleWrapperElement=false
xml.typeElement=false
xml.typeWrapperElement=false
Class NumericalOrText
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note This meta-class represents the ability to yield either a numerical or a string. A typical use case is that two
or more instances of this meta-class are aggregated with a VariationPoint where some instances yield
strings while other instances yield numerical depending on the resolution of the binding expression.
Base ARObject
Attribute Type Mult. Kind Note
vf Numerical 0..1 attr This attribute represents the ability to provide a numerical
value. The latest binding time of the VariationPoint shall
be preCompileTime.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=10
vt String 0..1 attr This attribute represents the ability to provide a textual
value.
Tags:xml.sequenceOffset=20
Please note that areas of the initialized DataPrototype that are not covered by the
bit-masks may contain arbitrary values. If this needs to be avoided, it is necessary
to add “dummy” bit-masks to the semantically not relevant parts of the value of the
DataPrototype.
4
Class ApplicationRuleBasedValueSpecification
Note This meta-class represents rule based values for DataPrototypes typed by ApplicationDataTypes
(ApplicationArrayDataType or a compound ApplicationPrimitiveDataType which also boils down to an
array-nature).
Base ARObject, AbstractRuleBasedValueSpecification, CompositeRuleBasedValueArgument, Value
Specification
Attribute Type Mult. Kind Note
category Identifier 0..1 attr This represents the category of the RuleBasedValue
Specification
Tags:xml.sequenceOffset=-20
swAxisCont RuleBasedAxisCont * aggr This represents the axis values of a Compound Primitive
(ordered) Data Type (curve or map).
The first swAxisCont describes the x-axis, the second sw
AxisCont describes the y-axis, the third swAxisCont
describes the z-axis. In addition to this, the axis can be
denoted in swAxisIndex.
swValueCont RuleBasedValueCont 0..1 aggr This represents the values of an array or Compound
Primitive Data Type.
4
Class RuleBasedAxisCont
category CalprmAxisCategory 0..1 attr This category specifies the particular axis types:
Enum
• STD_AXIS
• COM_AXIS
• RES_AXIS (swArraysize necessary)
Tags:xml.sequenceOffset=20
ruleBased RuleBasedValue 0..1 aggr This represents the rule based value specification for the
Values Specification axis of a compound primitive (curve, map).
Tags:
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=80
xml.typeWrapperElement=false
swArraysize ValueList 0..1 aggr For multidimensional compound primitives (curve, map ...)
it is necessary to know the dimensions.They are specified
using swArraySize.
Tags:xml.sequenceOffset=40
swAxisIndex AxisIndexType 0..1 attr This property allows to explicitly assign the axis contents
to a particular axis. It is specified by numbers where 1
corresponds to the x-axis. It is also possible to derive the
axis association from the sequence of the parent.
Tags:xml.sequenceOffset=50
unit Unit 0..1 ref This represents the physical unit of the provided values.
Tags:xml.sequenceOffset=30
4
Class RuleBasedValueCont
unit Unit 0..1 ref This represents the physical unit of the provided values.
Tags:xml.sequenceOffset=30
AbstractRuleBasedValueSpecification
CompositeRuleBasedValueArgument
ApplicationRuleBasedValueSpecification
ARElement
+swAxisCont 0..* {ordered} Unit +swValueCont 0..1
+unit +unit
RuleBasedAxisCont + factorSiToUnit: Float [0..1] RuleBasedValueCont
0..1 + offsetSiToUnit: Float [0..1] 0..1
+ category: CalprmAxisCategoryEnum [0..1]
+ swAxisIndex: AxisIndexType [0..1]
«atpMixed»
ValueList
+swArraysize +swArraysize
+ v: Numerical [0..1]
0..1 0..1
«atpVariation»
+ vf: Numerical [0..*] {ordered}
RuleBasedValueSpecification
«atpVariation»
+arguments 0..1
«atpMixed»
RuleArguments
NumericalOrText
+ v: Numerical [0..1] +vtf
+ vt: VerbatimString [0..1] + vt: String [0..1]
«atpVariation» «atpVariation» 0..1 «atpVariation»
+ vf: Numerical [0..1] + vf: Numerical [0..1]
Class NumericalRuleBasedValueSpecification
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note This meta-class is used to support a rule-based initialization approach for data types with an array-nature
(ImplementationDataType of category ARRAY).
Base ARObject, AbstractRuleBasedValueSpecification, ValueSpecification
Attribute Type Mult. Kind Note
ruleBased RuleBasedValue 0..1 aggr This represents the rule based value specification for the
Values Specification array.
Tags:
xml.roleElement=true
xml.roleWrapperElement=false
xml.typeWrapperElement=false
«atpVariation»
+arguments 0..1
«atpMixed»
RuleArguments
NumericalOrText
+ v: Numerical [0..1] +vtf
+ vt: VerbatimString [0..1] «atpVariation» 0..1 + vt: String [0..1]
«atpVariation» «atpVariation»
+ vf: Numerical [0..1] + vf: Numerical [0..1]
4
Class RuleBasedValueSpecification
arguments RuleArguments 0..1 aggr This represents the arguments for the RuleBasedValue
Specification.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=30
maxSizeToFill Integer 0..1 attr If a rule is chosen which does not fill until the end, this
determines until which size the rule shall fill the values.
Tags:xml.sequenceOffset=40
rule Identifier 0..1 attr This denotes the name of the rule of the RuleBasedValue
Specification. The rule determines the calculation
specification according which the arguments are used to
calculated the values.
Tags:xml.sequenceOffset=20
1 0 0
array
Figure 5.77: Value specification for a simple array
The sketched array depicted in Figure 5.77 corresponds to the modeling exemplified in
Listing 5.23.
Listing 5.23: Value specification for a simple array
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>1</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
AbstractRuleBasedValueSpecification CompositeValueSpecification
«atpVariation»
+argument 0..* {ordered}
RecordValueSpecification ArrayValueSpecification
CompositeRuleBasedValueSpecification
In this example, the element “a” of the first structure shall be initialized with the value 1,
the corresponding “b” element shall be assigned a 10. All other values in all following
elements shall be set to 0. This is also indicated by the numbers in ellipses in Figure
5.79.
The implementation of the example in ARXML is illustrated in Listing 5.24. As already
explained before, the last (in the order of appearance) ValueSpecification in the
context of an AbstractRuleBasedValueSpecification is taken to execute the
rule (as described above).
A more complicated example is sketched in Figure 5.80. Here, a deeply nested com-
posite data structure is described: an array of structures that in turn contain an array.
To keep the ARXML listing as simple as possible, the example assumes that all (as
opposed to the initialization of the first, and then of all other elements) “struct” elements
shall be initialized with the same value.
</FIELDS>
</RECORD-VALUE-SPECIFICATION>
</ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
0 0 0
a14 a24 a34
0 0 0
a13 a23 a33
1 0 0
a12 a22 a32
2 1 1
a11 a21 a31
nd nd
yDim (2nd dim) yDim (2 dim) yDim (2 dim)
For the sake of clarity, the picture has been drawn to align the first dimension (the x-
axis) of the two-dimensional array with the horizontal direction an the second dimension
(the y-axis) with the vertical direction.
The direction index values of each array element are visible as subscript on the bottom
right of the element, i.e. a12 indicates that the element is part of the first element on the
x-axis and represents the second element of the y-axis. The initial value of element a12
shall be 1.
As indicated by the sketch in Figure 5.81, the second element (i.e. the “vertical” array,
i.e. everything from a21 to a24 ) and all following (i.e. everything from a31 to a34 ) shall
have the identical initial values. The first element deviates from the second in terms of
initial values.
The creation of the ArrayValueSpecification for this example is based on the
definition of a CompositeRuleBasedValueSpecification with two arguments:
• an ArrayValueSpecification that carries an ApplicationRuleBased-
ValueSpecification for the first element (that itself is an array) on the x-
dimension and
• an ArrayValueSpecification that carries an ApplicationRuleBased-
ValueSpecification for each of the remaining elements (that itself are ar-
rays) on the x-dimension.
Listing 5.26: Value specification for a 2-dimensional array
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTS>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>2</V>
<V>1</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNITL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>1</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
</ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
The next example adds one dimension to the array structure, i.e. it describes a three-
dimensional array, as sketched in Figure 5.82.
In this case the x-axis has again been aligned in the horizontal direction, why the y-axis
is drawn vertically. The z-axis, finally, goes horizontal again.
0 0 0 0 0 0 0 0 0
a141 a142 a143 a241 a242 a243 a341 a342 a343
zDim (3rd dim) zDim (3rd dim) zDim (3rd dim)
0 0 0 0 0 0 0 0 0
a131 a132 a133 a231 a232 a233 a331 a332 a333
zDim (3rd dim) zDim (3rd dim) zDim (3rd dim)
2 0 0 2 0 0 2 0 0
a121 a122 a123 a221 a222 a223 a321 a322 a323
zDim (3rd dim) zDim (3rd dim) zDim (3rd dim)
3 0 0 1 0 0 1 0 0
a111 a112 a113 a211 a212 a213 a311 a312 a313
zDim (3rd dim) zDim (3rd dim) zDim (3rd dim)
Please note that the initial values of the second and third element in x-direction are
identical.
Listing 5.27: Value specification for a 3-dimensional array
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTS>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTS>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>3</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>2</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
</ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTS>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>1</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>2</V>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
<ARRAY-VALUE-SPECIFICATION>
<ELEMENTS>
<APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
<CATEGORY>ARRAY</CATEGORY>
<SW-VALUE-CONT>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
</ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
</ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
20
Of course, this capability is restricted to ApplicationArrayDataType. On the level of Imple-
mentationDataType, ValueSpecifications that reflect the structure of the respective Imple-
mentationDataType are used.
AbstractRuleBasedValueSpecification ValueSpecification
RecordValueSpecification ArrayValueSpecification
ApplicationRuleBasedValueSpecification ApplicationValueSpecification
+ intendedPartialInitializationCount:
PositiveInteger [0..1] + category: Identifier [0..1] + category: Identifier [0..1]
Figure 5.83: Rule-based value specification for compound primitive data objects
5.6.7 Examples
<CONSTANT-SPECIFICATION>
<SHORT-NAME>PhysInitValuesOfCurve</SHORT-NAME>
<DESC>
<L-2 L="EN">This example shows a ConstantSpecification for a CURVE where
the axis is a STD_AXIS</L-2>
</DESC>
<VALUE-SPEC>
<APPLICATION-VALUE-SPECIFICATION>
<CATEGORY>CURVE</CATEGORY>
<SW-AXIS-CONTS>
<SW-AXIS-CONT>
<CATEGORY>STD_AXIS</CATEGORY>
<SW-AXIS-INDEX>1</SW-AXIS-INDEX>
<SW-ARRAYSIZE>
<VF>4</VF>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<VF>0</VF>
<VF>1</VF>
<VF>2</VF>
<VF>3</VF>
</SW-VALUES-PHYS>
</SW-AXIS-CONT>
</SW-AXIS-CONTS>
<SW-VALUE-CONT>
<UNIT-REF DEST="UNIT">/Units/NwtMtr</UNIT-REF>
<SW-ARRAYSIZE>
<VF>4</VF>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<VF>00.000</VF>
<VF>10.000</VF>
<VF>20.000</VF>
<VF>30.000</VF>
</SW-VALUES-PHYS>
</SW-VALUE-CONT>
</APPLICATION-VALUE-SPECIFICATION>
</VALUE-SPEC>
</CONSTANT-SPECIFICATION>
<SHORT-NAME>PhysInitValuesOfMap</SHORT-NAME>
<DESC>
<L-2 L="EN">This example shows a ConstantSpecification for a MAP where
the first axis is a STD_AXIS and the second axis is a COM_AXIS</L-2>
</DESC>
<VALUE-SPEC>
<APPLICATION-VALUE-SPECIFICATION>
<CATEGORY>MAP</CATEGORY>
<SW-AXIS-CONTS>
<SW-AXIS-CONT>
<CATEGORY>STD_AXIS</CATEGORY>
<SW-AXIS-INDEX>1</SW-AXIS-INDEX>
<SW-ARRAYSIZE>
<V>4</V>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<V>0</V>
<V>1</V>
<V>2</V>
<V>3</V>
</SW-VALUES-PHYS>
</SW-AXIS-CONT>
</SW-AXIS-CONTS>
<SW-VALUE-CONT>
<UNIT-REF DEST="UNIT">/Units/NwtMtr</UNIT-REF>
<SW-ARRAYSIZE>
<V>4</V>
<V>2</V>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<VG>
<LABEL>
<L-4 L="EN">Values for axis index 2 equals 0</L-4>
</LABEL>
<V>00</V>
<V>10</V>
<V>20</V>
<V>30</V>
</VG>
<VG>
<LABEL>
<L-4 L="EN">Values for axis index 2 equals 1</L-4>
</LABEL>
<V>01</V>
<V>11</V>
<V>21</V>
<V>31</V>
</VG>
</SW-VALUES-PHYS>
</SW-VALUE-CONT>
</APPLICATION-VALUE-SPECIFICATION>
</VALUE-SPEC>
</CONSTANT-SPECIFICATION>
5.6.7.3 Example for Constant Specification for MAP with two STD_AXIS
The example contained in this sub-chapter illustrates the creation of the Con-
stantSpecification for a MAP that (in contrast to the previous example sketched
in Listing 5.29) consists of two STD_AXIS.
Like in the previous example, the v attribute is used for the swArraysize as well as
for the swValuesPhys.
Listing 5.30: Example for Constant Specification for STD_AXIS
<CONSTANT-SPECIFICATION>
<SHORT-NAME>MapExample</SHORT-NAME>
<VALUE-SPEC>
<APPLICATION-VALUE-SPECIFICATION>
<CATEGORY>MAP</CATEGORY>
<SW-AXIS-CONTS>
<SW-AXIS-CONT>
<SW-AXIS-INDEX>1</SW-AXIS-INDEX>
<SW-ARRAYSIZE>
<V>4</V>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<V>1</V>
<V>2</V>
<V>3</V>
<V>4</V>
</SW-VALUES-PHYS>
</SW-AXIS-CONT>
<SW-AXIS-CONT>
<SW-AXIS-INDEX>2</SW-AXIS-INDEX>
<SW-ARRAYSIZE>
<V>2</V>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<V>10</V>
<V>11</V>
</SW-VALUES-PHYS>
</SW-AXIS-CONT>
</SW-AXIS-CONTS>
<SW-VALUE-CONT>
<SW-ARRAYSIZE>
<V>4</V>
<V>2</V>
</SW-ARRAYSIZE>
<SW-VALUES-PHYS>
<VG>
<LABEL>
<L-4 L="EN">Values for 10</L-4>
</LABEL>
<V>110</V>
<V>210</V>
<V>310</V>
<V>410</V>
</VG>
<VG>
<LABEL>
<L-4 L="EN">Values for 11</L-4>
</LABEL>
<V>111</V>
<V>211</V>
<V>311</V>
<V>411</V>
</VG>
</SW-VALUES-PHYS>
</SW-VALUE-CONT>
</APPLICATION-VALUE-SPECIFICATION>
</VALUE-SPEC>
</CONSTANT-SPECIFICATION>
The example starts with the definition of the data type for the input value for the curve
see Listing 5.32. This data type is used for the definition of the actual curve data type
in Listing 5.34.
Listing 5.32: Definition of curve input value data type
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>axisInputType</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
The next step is the definition of the data type for the result of the interpolation. This
part is sketched in Listing 5.33. This data type is used for the definition of the actual
curve data type in Listing 5.34.
Listing 5.33: Definition of data type for the result of the interpolation
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>curveType</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
Finally, the data type for the actual curve is defined, see Listing 5.34.
Listing 5.34: Definition of curve data type
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>MyTable</SHORT-NAME>
<CATEGORY>CURVE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
<SW-CALPRM-AXIS-SET>
<SW-CALPRM-AXIS>
<SW-AXIS-INDEX>1</SW-AXIS-INDEX>
<CATEGORY>STD_AXIS</CATEGORY>
<SW-AXIS-INDIVIDUAL>
<INPUT-VARIABLE-TYPE-REF DEST="APPLICATION-PRIMITIVE-DATA-
TYPE">/ApplicationDataTypes/axisInputType</INPUT-VARIABLE-
TYPE-REF>
<SW-MAX-AXIS-POINTS>10</SW-MAX-AXIS-POINTS>
<SW-MIN-AXIS-POINTS>0</SW-MIN-AXIS-POINTS>
</SW-AXIS-INDIVIDUAL>
<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
</SW-CALPRM-AXIS>
</SW-CALPRM-AXIS-SET>
<VALUE-AXIS-DATA-TYPE-REF DEST="APPLICATION-PRIMITIVE-DATA-TYPE">/
ApplicationDataTypes/curveType</VALUE-AXIS-DATA-TYPE-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</APPLICATION-PRIMITIVE-DATA-TYPE>
</RULE-BASED-VALUES>
</RULE-BASED-AXIS-CONT>
</SW-AXIS-CONTS>
<SW-VALUE-CONT>
<SW-ARRAYSIZE>
<V>10</V>
</SW-ARRAYSIZE>
<RULE-BASED-VALUES>
<RULE>FILL_UNTIL_END</RULE>
<ARGUMENTSS>
<RULE-ARGUMENTS>
<V>0</V>
</RULE-ARGUMENTS>
</ARGUMENTSS>
</RULE-BASED-VALUES>
</SW-VALUE-CONT>
</APPLICATION-RULE-BASED-VALUE-SPECIFICATION>
</COMPOUND-PRIMITIVE-ARGUMENTS>
</COMPOSITE-RULE-BASED-VALUE-SPECIFICATION>
</ELEMENTS>
</ARRAY-VALUE-SPECIFICATION>
</VALUE-SPEC>
</CONSTANT-SPECIFICATION>
5.7.1 Overview
0..1
Class ConstantSpecificationMapping
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note This meta-class is used to create an association of two ConstantSpecifications. One Constant
Specification is supposed to be defined in the application domain while the other should be defined in the
implementation domain.
Hence the ConstantSpecificationMapping needs to be used where a ConstantSpecification defined in
one domain needs to be associated to a ConstantSpecification in the other domain.
This information is crucial for the RTE generator.
Base ARObject
Attribute Type Mult. Kind Note
applConstant ConstantSpecification 0..1 ref A ConstantSpecification defined in the application
domain.
implConstant ConstantSpecification 0..1 ref A ConstantSpecification defined in the implementation
domain.
Table 5.147: ConstantSpecificationMapping
«atpSplitable» 0..*
«atpSplitable»
+constantValueMapping 0..*
«atpSplitable»
«atpSplitable»
+dataTypeMapping 0..* +dataTypeMapping 0..*
ARElement AtpStructureElement
AtpBlueprint Identifiable
+dataTypeMapping
AtpBlueprintable NvBlockDescriptor
DataTypeMappingSet 0..* «atpSplitable»
+ supportDirtyFlag: Boolean [0..1]
Figure 5.85: Relation between data type mapping and constant mapping
Class ConstantSpecificationMappingSet
Package M2::AUTOSARTemplates::CommonStructure::Constants
Note This meta-class represents the ability to map two ConstantSpecifications to each others. One Constant
Specification is supposed to be described in the application domain and the other should be described in
the implementation domain.
Tags:atp.recommendedPackage=ConstantSpecificationMappingSets
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
mapping ConstantSpecification * aggr ConstantSpecificationMappings owned by the Constant
Mapping SpecificationMappingSet.
Class CalibrationParameterValueSet
Package M2::AUTOSARTemplates::SWComponentTemplate::MeasurementAndCalibration::CalibrationParameter
Values
Note Specification of a constant that can be part of a package, i.e. it can be defined stand-alone.
Tags:atp.recommendedPackage=CalibrationParameterValueSets
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
calibration CalibrationParameter * aggr This represents single CalibrationParameterValues in the
ParameterValue Value CalibrationParameterValueSet.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
ARElement AtpPrototype
CalibrationParameterValueSet +calibrationParameterValueSet Identifiable
0..* «atpSplitable» RootSwCompositionPrototype
«atpVariation»
+calibrationParameterValue 0..*
+applInitValue Identifiable
ValueSpecification CalibrationParameterValue +initializedParameter
0..1 FlatInstanceDescriptor
+ shortLabel: Identifier [0..1]
+implInitValue 0..1 + role: Identifier [0..1]
0..1
Class CalibrationParameterValue
Package M2::AUTOSARTemplates::SWComponentTemplate::MeasurementAndCalibration::CalibrationParameter
Values
Note Specifies instance specific calibration parameter values used to initialize the memory objects
implementing calibration parameters in the generated RTE code.
RTE generator will use the implInitValue to override the initial values specified for the DataPrototypes of a
component type.
The applInitValue is used to exchange init values with the component vendor not publishing the
transformation algorithm between ApplicationDataTypes and ImplementationDataTypes or defining an
instance specific initialization of components which are only defined with ApplicationDataTypes.
Note: If both representations of init values are available these need to represent the same content.
Note further that in this case an explicit mapping of ValueSpecification is not implemented because
calibration parameters are delivered back after the calibration phase.
Base ARObject
Attribute Type Mult. Kind Note
applInitValue ValueSpecification 0..1 aggr This is the initial value specification structured according
to the ApplicationDataType
implInitValue ValueSpecification 0..1 aggr This is the initial value specification structured according
to the ImplementationDataType
initialized FlatInstanceDescriptor 0..1 ref This represents the parameter that is initialized by the
Parameter CalibrationParameterValue.
Therefore, if the optional element is not received during a specific reception, the mem-
ory area is untouched. It is the duty of the application to check whether that optional
element has actually been received.c(RS_SWCT_03320)
[constr_10005] Existence of attribute NotAvailableValueSpecification.de-
faultPattern dFor each NotAvailableValueSpecification, attribute de-
faultPattern shall exist at the time when the contract phase genera-
tion is executed.c()
[constr_10006] Valid interval of attribute NotAvailableValueSpecification.
defaultPattern dThe valid interval for attribute NotAvailableValueSpecifi-
cation.defaultPattern at the time when the contract phase gener-
ation is executed is 0..255.c()
6 Compatibility
6.1 Introduction
In order to connect PortPrototypes of SwComponentTypes, the compatibility of
PortPrototypes needs to be verified. This section defines the basic rules for formal
compatibility of PortPrototypes.
Compatibility will be defined bottom-up, i.e. first the rules for compatible Autosar-
DataTypes are set up, then the rules for the different types of PortInterfaces are
derived.
Another aspect of compatibility is whether two model-elements (e.g. Application-
DataType vs. ImplementationDataType) can be mapped to each other.
For the compatibility of PortInterfaces basically two options apply:
1. finding of matching pairs of elements of PortInterfaces is based on matching
shortName plus the application of compatibility rules for their attributes.
2. a PortInterfaceMapping can be taken to declare two elements of PortPro-
totypes as compatible without applying further formal checks.
6.2.1 ApplicationDataType
6.2.1.1 ApplicationPrimitiveDataType
6.2.1.2 ApplicationCompositeDataType
6.2.2 ImplementationDataType
(c) The attributes arraySize and arraySizeSemantics have (given the ex-
istence) identical values.
(d) For each ImplementationDataType.subElement, the attribute isOp-
tional shall either
• not exist on both sides or
• be set to the value False if it only exists on one side or
• have the identical value on both sides.
(e) The swDataDefProps attached to the M1 data types are compatible.
2. In the context of using the ImplementationDataType, a DataProto-
typeMapping exists that refers to a DataPrototype typed by one of the Im-
plementationDataTypes in the role firstDataPrototype and to another
DataPrototype typed by the other ImplementationDataType in the role
secondDataPrototype.
3. In the context of using the ImplementationDataType, a DataProto-
typeMapping exists that refers to a DataPrototype typed by the Implemen-
tationDataTypes in the role secondDataPrototype and to another Dat-
aPrototype typed by an ImplementationDataType with a subElement in
the role firstDataPrototype and additionally for the side of the Implemen-
tationDataType with a subElement a corresponding Implementation-
DataTypeSubElementRef exists in the role firstElement that in turn ref-
erences an ImplementationDataTypeElement.
c()
Please note that the meaning of “swDataDefProps attached to the M1 data types are
compatible” is explained in section 6.2.4.
Please note that it is not required that the shortNames of two data types shall be
identical in order to consider the two data types as compatible.
The following constraint applies for the case that mode manager and mode user are
using different ImplementationDataTypes. From the point of view of the RTE there
is only the necessity that all possible numbers used to represent ModeDeclarations
of the mode manager has to fit into the range of the data type used for the mode user.
[constr_1168] Compatibility of ImplementationDataTypes used in the Mod-
eRequestTypeMap dBoth ImplementationDataTypes shall fulfill [constr_1167].
In addition to that, the possible numbers used for representing ModeDeclarations
on the side of the mode manager shall match the supported range of the Imple-
mentationDataType used for representing ModeDeclarations on the side of the
mode user (see [constr_1075]).
This rule shall be imposed at the time when the RTE is generated.c()
1
if one is a NumericalValueSpecification and the other one is an ApplicationValueSpec-
ification and the application of the CompuMethod on the side of the ApplicationValueSpeci-
fication does not yield a valid number a comparison is not possible.
c()
For clarification, there are some physical dimensions around that share the identical
values for the exponents but still have a completely different meaning and shall there-
fore not be considered compatible. For precisely this reason [constr_1053] requires
the shortNames of two PhysicalDimensions to be identical as a prerequisite for
compatibility.
For example, there are at least two physical dimensions that share the values of
• lengthExp = 2
• massExp = 1
• timeExp = -2
• currentExp = 0
• temperatureExp = 0
• molarAmountExp = 0
• luminousIntensityExp = 0
The unit described by this set of exponents is usually referred to as “Nm” for newton-
meter and it can be used for torque just as well as for energy. Obviously, two Units
shall never be considered compatible if one refers to torque and the other one refers
to energy.
The compatibility of two DataConstrs depends on the context in which the owning
data elements are connected:
[constr_1126] Compatibility of DataConstrs dThe DataConstr (e.g. the limits)
defined by the type of the providing data element shall be within the constraints defined
by the type of the requiring data element.
For client-server communication, the following rules apply:
• For arguments with attribute direction set to the value in, the client shall
take the role of the provider and the server shall take the role of the requiring
side.
• For arguments with attribute direction set to the value inoutthe DataCon-
str shall be equal on both sides.
• For arguments with attribute direction set to the value out, the server shall
take the role of the provider and the client shall take the role of the requiring side.
This rule shall be applied at the time when the RTE is generated.c()
In addition, it is always allowed that the requiring element defines no constraints.
• return values and arguments shall have identical - not only compatible -
data types
Two SwBaseTypes are compatible (in the sense of allowing a connection of ports via
the RTE) if a simple conversion rule exists between the two types in the underlying
programming language.
Admittedly, this is a rather weak condition. But because the definition of SwBase-
Types can contain a nativeDeclaration it is not possible to state this rule more
specifically.
However, conversion between base types is considered as a less common use case
than the simple case that the connected types just contain two identical SwBaseTypes
(which is of course included in the rule).
Please note that, in addition, the existence of ApplicationDataTypes also con-
straints the possible SwBaseTypes via the compatibility rules for the mapping between
ApplicationDataTypes and ImplementationDataType as will be explained in
more detail in chapter 6.2.5.
• BITFIELD_TEXTTABLE
• LINEAR
• RAT_FUNC
• IDENTICAL
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1154] Compatibility of CompuScales for sender-receiver communication
and similar use cases dFor sender-receiver communication and similar use cases, it
is required that the set of CompuScales defined in the CompuMethod of the provider
of the communication (i.e. on the side of the PPortPrototype) shall be a subset of
the set of CompuScales defined in the CompuMethod on the required side (i.e. on the
side of the RPortPrototype) at the time when the RTE is generated.c()
[constr_1155] Compatibility of CompuScales for client-server communication
dFor client-server communication, the following rules apply at the time when the
RTE is generated:
For arguments of direction IN the CompuScales defined in the CompuMethod of
the client (i.e. on the side of the RPortPrototype) shall be a subset of the set of
CompuScales defined in the CompuMethod supported at the server (i.e. on the side
of the PPortPrototype).
For arguments of the direction OUT the set of CompuScales defined in the Com-
puMethod of the server (i.e. on the side of the PPortPrototype) shall be a subset
of the set of CompuScales defined in the CompuMethod supported at the client (i.e.
on the side of the RPortPrototype).
For arguments of direction INOUT the set of CompuScales defined in the Com-
puMethod of server and client shall be identical.c()
[constr_1156] Relevance of “names” of CompuScales dCompuScales which con-
tribute to tabular conversion by having a compuConst are compatible if and only if
the “names” of the compuScales, (namely shortLabel, vt and symbol, according
to the priority rules communicated in [TPS_SWCT_01431]) are equal.
If the scale has no compuConst, “names” of CompuScales are not relevant for com-
patibility.
This rule shall be imposed at the time when the RTE is generated.c()
[TPS_SWCT_01842] Applicability of constraints of CompuScales dThe constraints
[constr_1154], [constr_1155], and [constr_1156] shall only apply in the absence of
a TextTableMapping which shall take precedence regarding the compatibility if it
exists.c()
This condition is fulfilled if the numerical range which can be expressed by the
SwBaseType at least covers the range defined by the limits in Application-
DataType.swDataDefProps.dataConstr (which are either internal limits or
physical limits to be converted via the CompuMethod which also has to be pro-
vided by the ApplicationDataType).
Note that for sender-receiver communication of a data element via a network
there is the possibility to reduce the numerical range against what has been de-
fined via the corresponding data type. However, this is not achieved via mapping
to another ImplementationDataType at the data element itself but via the
networkRepresentation of the ComSpec (for further explanation of this as-
pect see section 4.5.1).
3. [constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
dAn ApplicationDataType of category ARRAY, VAL_BLK shall (after all in-
directions created by ImplementationDataTypes of category TYPE_REF-
ERENCE are resolved) only be mapped/connected to
• an ImplementationDataType of category ARRAY or
• an ImplementationDataType that represents a Variable-Size Ar-
ray Data Type (see [TPS_SWCT_01610]).
The specific rules are documented in Table 6.1. This constraint shall be im-
posed at the time when the contract phase generation is exe-
cuted.c()
In this case, the array size, the arraySizeSemantics (given that it exists) and
the type of the array elements of the ImplementationDataType shall be such
that they can be mapped/transferred 1:1 by order to the corresponding application
data and vice versa.
Note that in case of mapping between arrays it is not required that a
DataTypeMap exists between the data types of the array elements or that the
respective shortNames are identical.
4. [constr_1061] Compatibility of data types with category STRUCTURE dAn
ApplicationDataType of category STRUCTURE shall (after all indirections
created by ImplementationDataTypes of category TYPE_REFERENCE are
resolved) only be mapped/connected to an ImplementationDataType of
category STRUCTURE.
This rule shall be imposed at the time when the contract phase
generation is executed.c()
This means, that the corresponding pairs of elements shall also have compatible
types. Note that it is not required that the data types of the single elements
have identical shortNames or that a DataTypeMap exists for each pair of single
element.
Some examples are given in 5.4.4. In any case, the primitive elements of the
implementation type shall fit (by their order in memory) to the corresponding
SwRecordLayout.
It is not required, to define DataTypeMaps for the sub-elements or both repre-
sentations.
8. [constr_1066] Forbidden mappings to ImplementationDataType dAn Ap-
plicationDataType shall never be mapped to
• an ImplementationDataType of category
– UNION,
– DATA_REFERENCE, or
– FUNCTION_REFERENCE,
• or to an ImplementationDataType that contains subElements of cat-
egory
– UNION,
– DATA_REFERENCE, or
– FUNCTION_REFERENCE.
This rule shall be imposed at the time when the contract phase
generation is executed.c()
Array of uint8 Array of other
ApplicationArrayDataType, ImplementationDataType of ImplementationDataType of
arraySizeSemantics = category ARRAY, with Implemen- category ARRAY, with Implemen-
fixedSize tationDataTypeElement with tationDataTypeElement with
arraySizeSemantics = arraySizeSemantics =
fixedSize fixedSize
ApplicationArrayDataType, ImplementationDataType of Variable-Size Array Data
arraySizeSemantics = category ARRAY, with Implemen- Type
variableSize tationDataTypeElement with
arraySizeSemantics =
variableSize or Variable-Size
Array Data Type
Table 6.1: Rules for compatibility of old and new world variable-size arrays
2. In case that only the ImplementationDataType may “define” the property this
definition shall fit into the semantical requirements given by the Application-
DataType in order to make the two types compatible.
This is namely important for the attribute baseType and is explained above in
the rule for types of category VALUE.
3. In case the ImplementationDataType may “add” a property it may only add
but not change a property defined by the ApplicationDataType (namely
note, displayFormat, and swImplPolicy) in order to be compatible.
This means that the respective computation methods can be defined in only one
of the types in order to be compatible. In all other cases, only the Applica-
tionDataType may define the computation method.
4. For the compatibility with respect to connectors there are some additional rules
for the values of the attribute swImplPolicy which are considered general rules
on the level of DataPrototypes and PortInterfaces.
Therefore, these additional rules are explained in chapter 6.3 and chapter 6.4.4.
5. The case that an ImplementationDataType may “redefine” a property which
is already set by the ApplicationDataType is not considered as relevant for
the compatibility with respect to mapping of the types in general but of course
there may be project specific rules as to which redefinition is allowed (e.g. for
swAddrMethod or dataConstr). See also 5.5.3 about data constraints.
6. For the compatibility with respect to connectors the attribute dataConstr shall
be treated in the same way as for compatibility of data types in general, for more
details please refer to 6.2.4.
(c) The attribute swImplPolicy is either set to queued for both or none of the
VariableDataPrototypes.
2. In the context of a DataPrototypeMapping, one of the applicable Variable-
DataPrototypes or ParameterDataPrototypes is referenced by the Dat-
aPrototypeMapping in the role firstDataPrototype and the other Vari-
ableDataPrototypes or ParameterDataPrototypes is referenced by the
same DataPrototypeMapping in the role secondDataPrototype.
c()
[constr_1187] Compatibility of VariableDataPrototypes or ParameterDat-
aPrototypes typed by composite data types d
DataPrototypes of ApplicationCompositeDataTypes or Implementation-
DataTypes of category STRUCTURE or ARRAY are compatible at the time when
the RTE is generated if one of the following conditions evaluates to true:
1. The underlying ApplicationCompositeDataTypes or Implementation-
DataTypes of category STRUCTURE or ARRAY are identical
2. The underlying ApplicationCompositeDataTypes or Implementation-
DataTypes of category STRUCTURE or ARRAY fulfill the following condition:
• They consist of the same number of elements and
• They are composed of compatible AutosarDataTypes (either Applica-
tionCompositeDataTypes or ImplementationDataTypes of cate-
gory STRUCTURE or ARRAY OR ApplicationPrimitiveDataTypes or
ImplementationDataTypes of category VALUE, BOOLEAN, or STRING)
in the same order and
• All attributes match exactly, except for the shortName of the M1 Autosar-
DataType.
3. In the context of a DataPrototypeMapping, for each ApplicationCom-
positeElementDataPrototype of the required DataPrototype a SubEle-
mentMapping exists such that a ApplicationCompositeDataType-
SubElementRef in the role firstElement or secondElement exists that ref-
erences the required ApplicationCompositeElementDataPrototype and
a corresponding ApplicationCompositeDataTypeSubElementRef exists
in the other role (i.e. secondElement or firstElement) that in turn refer-
ences an ApplicationCompositeElementDataPrototype of the provided
ApplicationCompositeDataType.
4. If and only if the DataPrototype is not typed by an ApplicationDataType
but by an ImplementationDataType: in the context of a DataProto-
typeMapping, for each ImplementationDataTypeElement of the required
DataPrototype a SubElementMapping exists such that a Implementa-
tionDataTypeSubElementRef in the role firstElement or secondEle-
ment exists that references the required ImplementationDataTypeElement
The table 6.2 defines which PortInterface elements are compatible depending on
the PortInterface type and the swImplPolicy attributes of the PortInterface
elements.
2. They have the same value of the argument direction (in, out or inout), i.e.
[constr_1268] applies.
c()
c()
2. For each such pair, the values of the PortInterface.isService attributes are
identical.
c()
(a) For each Trigger defined in the context of the TriggerInterface of the
required inner PortPrototype a compatible Trigger exists in the Trig-
gerInterface of the required outer PortPrototype. The shortNames
of Trigger are used to identify the pair.
(b) For at least one Trigger defined in the context of the TriggerInterface
of the provided outer PortPrototype a compatible Trigger exists in
the TriggerInterface of the provided inner PortPrototype. The
shortNames of Trigger are used to identify the pair.
(c) A TriggerInterfaceMapping.triggerMapping exists for which all the
following conditions apply:
i. It is referenced by the corresponding SwConnector.
ii. It references one of the two Triggers in the role firstTrigger and
the other in the role secondTrigger.
2. For each such pair, the values of their isService attributes are identical.
c()
With the definition of compatibility rules in chapter 6.4, 6.11, and 6.12, it is possible
to split and distribute elements of a PortPrototype typed by a PortInterface
containing a superset of PortInterface elements to PortPrototypes of type of
PortInterfaces containing subsets of PortInterface elements.
Please find examples that explain the usage of splitting and merging in section 6.16.2.
case. In other words, the transformation does not create an invalid model out of a valid
model.
However, to support this statement it is necessary to define additional compatibility
rules that properly cover this case and allow for a successful validation of the flattened
ECU extract.
For the flat ECU extract the compatibility of SenderReceiverInterfaces, Nv-
DataInterfaces, and ParameterInterfaces is considered for connecting of
PortPrototypes with a DelegationSwConnector.
[constr_1085] Compatibility in the case of a flat ECU extract dPortPrototypes
of different SenderReceiverInterfaces, NvDataInterfaces, and Parameter-
Interfaces are compatible if and only if for at least one VariableDataPrototype
or ParameterDataPrototype defined in the context of the SenderReceiverIn-
terface, NvDataInterface, or ParameterInterface of the RPortPrototype
a compatible VariableDataPrototype or ParameterDataPrototype exists in
the SenderReceiverInterface, NvDataInterface, or ParameterInterface
of the provided PortPrototype.
The compatibility of PortInterface elements depends on the kind of PortInter-
face and the swImplPolicy attributes of the PortInterface elements.
Either the shortNames of VariableDataPrototypes and ParameterDataPro-
totypes are used to identify the pair or a PortInterfaceMapping defines which
differently named PortInterface elements correlate with each other.c()
For clarification, table 6.2 defines which PortInterface elements are compatible
depending on the kind of PortInterface and the swImplPolicy attributes of the
PortInterface elements.
Please note that in case of the flat ECU extract it might happen that AssemblySwCon-
nectors that connect to a specific RPortPrototype also connect to PPortProto-
types that do not fulfill the compatibility rule specified in 6.4.1.
In particular, the dataElements might correspond to dataElements defined in the
scope of different PPortPrototypes. In other words, in the flat ECU extract it is
possible to merge dataElements from different providers.
The rules for compatibility with respect to the connection of dataElements by means
of AssemblySwConnectors are perhaps easier to digest than the delegation case
but nonetheless it seems appropriate to provide a set of examples that illustrate the
compatibility issue.
One of the less trivial examples of this kind is the case of sender/receiver n:1 commu-
nication. Figure 6.1 sketches a case where both sender software-components provide
the full set of dataElements that are required by the RPortPrototype of the receiv-
ing software-component.
{A,B}
{A,B}
{A,B}
The next case (exemplified by Figure 6.2) implements a situation where one sender
provides two dataElements {A, B} while the other sender provides only as subset of
these, i.e. {B}.
As the RPortPrototype of the receiving software-component requires only the
dataElement {B} compatibility issues will not occur because for every required
dataElement a compatible dataElement is provided.
{A,B}
{B}
{B}
Figure 6.2: legal n:1 communication
{B}
{A,B}
{A}
The rules for compatibility with respect to the delegation of dataElements perhaps
require some explanation in terms of examples. The first example 6.4 describes a legal
situation where two DelegationSwConnectors split the dataElements contained
in the RPortPrototype owned by a CompositionSwComponentType.
{A,B}
{A,B,C,D}
[nfold]
{B,C}
{A}
{A,B}
[single]
{B}
In this case, the resulting communication pattern on the VFB would be n:1. In this case
the value of the attribute signalFan of DelegatedPortAnnotation should be set
to single.
The next example is about the merge of DelegationSwConnectors. The PPort-
Prototype owned by the CompositionSwComponentType contains a superset of
dataElements {A, B}. The two PPortPrototypes of the SwComponentProto-
types contain a disjoint subset each, i.e. {A} and {B}.
{A,B}
{A}
[single]
{A,B}
{B}
In this case, the resulting communication pattern on the VFB would be 1:x, with x taking
values between 0 and n. In this case the value of the attribute signalFan of Dele-
gatedPortAnnotation should be set to single. All VariableDataPrototypes
of the provided outer PortPrototypes are provided by exactly one provided inner
PortPrototype.
As a variation of this theme, the next example features a PPortPrototype owned by
a CompositionSwComponentType that contains the superset of dataElements {A,
B, C}.
The PPortPrototypes of the SwComponentPrototypes in turn contain subsets of
dataElements, i.e. {A, B} and {B, C}. In this case the resulting communication pattern
on the VFB for {B} would be n:1.
{A,B} {A,B,C}
[nfold]
{A,B,C}
{B,C}
{A,B} {A,B,C}
[single]
{A,B,C}
{C,D}
Although dataElement {D} does not appear in the delegation PPortPrototype, the
compatibility rules are fully satisfied with this scenario.
The next example shows a valid delegation of SwConnectors that goes end-to-end
via CompositionSwComponentTypes to included SwComponentPrototypes.
{A,B} {A}
{A,B}
{A,B}
{B}
{B,C}
The first example for an illegal use of splitting of dataElements suffers from the fact
that not all dataElements owned by the RPortPrototypes of the SwComponent-
Prototypes are available from the connected RPortPrototypes owned by the
CompositionSwComponentType.
Although dataElements the connections in total match ({A} and {B} are connected
to a PortPrototype requiring {A, B}) the compatibility rules are not fulfilled because
they apply separately for each SwConnector
{A} {A,B}
{B}
{C}
{B,C}
In the next example compatibility is also not fulfilled because the required dataEle-
ment {E} is not provided by the delegation RPortPrototype.
{A,B}
{A,B,C,D}
{B,C,E}
{A,B} {A,C,E}
{A,C,E}
{B,C}
The next example shows an invalid delegation of SwConnectors that goes end-to-end
via CompositionSwComponentTypes to included SwComponentPrototypes.
Similar to the example sketched in Figure 6.12, the dataElement {E} is not provided
by one of the PPortPrototypes owned by the SwComponentPrototypes inside
the CompositionSwComponentType.
{A,B} {A}
{A,C,E}
{A,C,E}
{B,C} {C,E}
7 Internal Behavior
7.1 Introduction
[TPS_SWCT_01075] SwcInternalBehavior dSwcInternalBehavior provides
means for formally defining the behavior of an AtomicSwComponentType.c(RS_-
SWCT_03040)
This chapter focuses on the description of the SwcInternalBehavior meta-class
and the various meta-classes it aggregates. An overview of the meta-class is sketched
in Figure 7.2. Please note that SwcInternalBehavior inherits from InternalBe-
havior.
The role of SwcInternalBehavior in the context of an AUTOSAR software-
component is depicted in Figure 7.1. As mentioned in section 3.2, the reason to
make the aggregation of SwcInternalBehavior to AtomicSwComponentType
atpSplitable is to allow for the development of SwcInternalBehavior in
a later process step (e.g. after the VFB view has been completed).
SwComponentType InternalBehavior Implementation
AtomicSwComponentType +internalBehavior SwcInternalBehavior +behavior SwcImplementation
«atpVariation,atpSplitable» 0..1 0..1
4
Class InternalBehavior (abstract)
4
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=constantMemory.shortName, constant
Memory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
constantValue ConstantSpecification * ref Reference to the ConstantSpecificationMapping to be
Mapping MappingSet applied for the particular InternalBehavior
Stereotypes: atpSplitable
Tags:atp.Splitkey=constantValueMapping
dataType DataTypeMappingSet * ref Reference to the DataTypeMapping to be applied for the
Mapping particular InternalBehavior
Stereotypes: atpSplitable
Tags:atp.Splitkey=dataTypeMapping
exclusiveArea ExclusiveArea * aggr This specifies an ExclusiveArea for this InternalBehavior.
The exclusiveArea is local to the component resp.
module. The aggregation of ExclusiveAreas is subject to
variability. Note: the number of ExclusiveAreas might vary
due to the conditional existence of RunnableEntities or
BswModuleEntities.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=exclusiveArea.shortName, exclusive
Area.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
exclusiveArea ExclusiveAreaNesting * aggr This represents the set of ExclusiveAreaNestingOrder
NestingOrder Order owned by the InternalBehavior.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=exclusiveAreaNestingOrder.shortName,
exclusiveAreaNestingOrder.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
staticMemory VariableDataPrototype * aggr Describes a read and writeable static memory object
representing measurerment variables implemented by
this software component. The term "static" is used in the
meaning of "non-temporary" and does not necessarily
specify a linker encapsulation. This kind of memory is
only supported if supportsMultipleInstantiation is FALSE.
The shortName of the VariableDataPrototype has to be
equal with the ”C’ identifier of the described variable.
The aggregation of staticMemory is subject to variability
with the purpose to support variability in the software
component’s implementations.
Typically different algorithms in the implementation are
requiring different number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=staticMemory.shortName, static
Memory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
Class SwcInternalBehavior
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior
Note The SwcInternalBehavior of an AtomicSwComponentType describes the relevant aspects of the
software-component with respect to the RTE, i.e. the RunnableEntities and the RTEEvents they respond
to.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, InternalBehavior , Multilanguage
Referrable, Referrable
Attribute Type Mult. Kind Note
arTypedPer VariableDataPrototype * aggr Defines an AUTOSAR typed memory-block that needs to
Instance be available for each instance of the SW-component.
Memory
This is typically only useful if supportsMultipleInstantiation
is set to "true" or if the component defines NVRAM
access via permanent blocks.
The aggregation of arTypedPerInstanceMemory is subject
to variability with the purpose to support variability in the
software component’s implementations. Typically different
algorithms in the implementation are requiring different
number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=arTypedPerInstanceMemory.shortName, ar
TypedPerInstanceMemory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
event RTEEvent * aggr This is a RTEEvent specified for the particular Swc
InternalBehavior.
The aggregation of RTEEvent is subject to variability with
the purpose to support the conditional existence of RTE
events. Note: the number of RTE events might vary due
to the conditional existence of PortPrototypes using Data
ReceivedEvents or due to different scheduling needs of
algorithms.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=event.shortName, event.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
exclusiveArea SwcExclusiveArea * aggr Options how to generate the ExclusiveArea related APIs.
Policy Policy When no SwcExclusiveAreaPolicy is specified for an
ExclusiveArea the default values apply.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=exclusiveAreaPolicy, exclusiveArea
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
explicitInter VariableDataPrototype * aggr Implement state message semantics for establishing
Runnable communication among runnables of the same
Variable component. The aggregation of explicitInterRunnable
Variable is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=explicitInterRunnableVariable.shortName,
explicitInterRunnableVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
handle HandleTerminationAnd 0..1 attr This attribute controls the behavior with respect to
TerminationAnd RestartEnum stopping and restarting. The corresponding AtomicSw
Restart ComponentType may either not support stop and restart,
or support only stop, or support both stop and restart.
implicitInter VariableDataPrototype * aggr Implement state message semantics for establishing
Runnable communication among runnables of the same
Variable component. The aggregation of implicitInterRunnable
Variable is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=implicitInterRunnableVariable.shortName,
implicitInterRunnableVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
includedData IncludedDataTypeSet * aggr The includedDataTypeSet is used by a software
TypeSet component for its implementation.
Stereotypes: atpSplitable
Tags:atp.Splitkey=includedDataTypeSet
includedMode IncludedMode * aggr This aggregation represents the included Mode
Declaration DeclarationGroupSet DeclarationGroups
GroupSet
Stereotypes: atpSplitable
Tags:atp.Splitkey=includedModeDeclarationGroupSet
instantiation InstantiationDataDef * aggr The purpose of this is that within the context of a given
DataDefProps Props SwComponentType some data def properties of individual
instantiations can be modified. The aggregation of
InstantiationDataDefProps is subject to variability with the
purpose to support the conditional existence of Port
Prototypes and component local memories like "per
InstanceParameter" or "arTypedPerInstanceMemory".
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=instantiationDataDefProps, instantiationData
DefProps.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
perInstance PerInstanceMemory * aggr Defines a per-instance memory object needed by this
Memory software component. The aggregation of PerInstance
Memory is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceMemory.shortName, perInstance
Memory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
perInstance ParameterData * aggr Defines parameter(s) or characteristic value(s) that needs
Parameter Prototype to be available for each instance of the
software-component. This is typically only useful if
supportsMultipleInstantiation is set to "true". The
aggregation of perInstanceParameter is subject to
variability with the purpose to support variability in the
software components implementations. Typically different
algorithms in the implementation are requiring different
number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceParameter.shortName, per
InstanceParameter.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
portAPIOption PortAPIOption * aggr Options for generating the signature of port-related calls
from a runnable to the RTE and vice versa. The
aggregation of PortPrototypes is subject to variability with
the purpose to support the conditional existence of ports.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=portAPIOption, portAPIOption.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
runnable RunnableEntity * aggr This is a RunnableEntity specified for the particular Swc
InternalBehavior.
The aggregation of RunnableEntity is subject to variability
with the purpose to support the conditional existence of
RunnableEntities. Note: the number of RunnableEntities
might vary due to the conditional existence of Port
Prototypes using DataReceivedEvents or due to different
scheduling needs of algorithms.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=runnable.shortName, runnable.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
service SwcService * aggr Defines the requirements on AUTOSAR Services for a
Dependency Dependency particular item.
The aggregation of SwcServiceDependency is subject to
variability with the purpose to support the conditional
existence of ports as well as the conditional existence of
ServiceNeeds.
The SwcServiceDependency owned by an SwcInternal
Behavior can be located in a different physical file in order
to support that SwcServiceDependency might be
provided in later development steps or even by different
expert domain (e.g OBD expert for Obd related Service
Needs) tools. Therefore the aggregation is <<atp
Splitable>>.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=serviceDependency.shortName, service
Dependency.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
shared ParameterData * aggr Defines parameter(s) or characteristic value(s) shared
Parameter Prototype between SwComponentPrototypes of the same Sw
ComponentType The aggregation of sharedParameter is
subject to variability with the purpose to support variability
in the software components implementations. Typically
different algorithms in the implementation are requiring
different number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=sharedParameter.shortName, shared
Parameter.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
supports Boolean 0..1 attr Indicate whether the corresponding software-component
Multiple can be multiply instantiated on one ECU. In this case the
Instantiation attribute will result in an appropriate component API on
programming language level (with or without instance
handle).
variationPoint VariationPointProxy * aggr Proxy of a variation points in the C/C++ implementation.
Proxy
Stereotypes: atpSplitable
Tags:atp.Splitkey=variationPointProxy.shortName
+staticMemory
AutosarDataPrototype
SwcInternalBehavior
VariableDataPrototype 0..* «atpVariation,atpSplitable»
+implicitInterRunnableVariable
0..* «atpVariation,atpSplitable»
+explicitInterRunnableVariable
0..* «atpVariation,atpSplitable»
+arTypedPerInstanceMemory
0..* «atpVariation,atpSplitable»
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+perInstanceMemory 0..* +portAPIOption 0..* +runnable 0..* +event 0..*
AtpStructureElement AtpStructureElement AbstractEvent
PortAPIOption
Identifiable ExecutableEntity AtpStructureElement
PerInstanceMemory RunnableEntity RTEEvent
InternalBehavior
AutosarParameterRef
SwcInternalBehavior
+accessedParameter 0..1
«atpVariation,atpSplitable»
+runnable 0..*
Identifiable
+waitPoint
WaitPoint
0..*
+ timeout: TimeValue [0..1]
+externalTriggeringPoint ExternalTriggeringPoint
«atpVariation,atpSplitable» 0..*
AbstractAccessPoint
AtpStructureElement
+internalTriggeringPoint Identifiable
«atpVariation,atpSplitable» 0..* InternalTriggeringPoint
+dataReceivePointByValue AbstractAccessPoint
AtpStructureElement
«atpVariation,atpSplitable» 0..* Identifiable
+dataReceivePointByArgument VariableAccess
+ scope: VariableAccessScopeEnum [0..1]
«atpVariation,atpSplitable» 0..*
+dataSendPoint
«atpVariation,atpSplitable» 0..*
+dataReadAccess
«atpVariation,atpSplitable» 0..*
+dataWriteAccess
«atpVariation,atpSplitable» 0..*
+readLocalVariable
«atpVariation,atpSplitable» 0..*
+writtenLocalVariable
«atpVariation,atpSplitable» 0..*
«enumeration»
VariableAccessScopeEnum
communicationInterEcu
communicationIntraPartition
interPartitionIntraEcu
Please note that RunnableEntitys exist in several categories that have different
properties. Please find more explanation about categories of RunnableEntitys in
section 7.2.4.4.
AtpPrototype ARElement
SwComponentPrototype AtpBlueprint
«isOfType» +type AtpBlueprintable
AtpType
0..1
SwComponentType
{redefines atpType}
+component 0..*
«atpVariation,atpSplitable»
CompositionSwComponentType AtomicSwComponentType
«atpVariation,atpSplitable»
+internalBehavior 0..1
AtpStructureElement InternalBehavior
ExecutableEntity +runnable SwcInternalBehavior
RunnableEntity
0..* «atpVariation,atpSplitable»
Class RunnableEntity
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior
Note A RunnableEntity represents the smallest code-fragment that is provided by an AtomicSwComponent
Type and are executed under control of the RTE. RunnableEntities are for instance set up to respond to
data reception or operation invocation on a server.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, ExecutableEntity , Identifiable, Multilanguage
Referrable, Referrable
Attribute Type Mult. Kind Note
argument RunnableEntity * aggr This represents the formal definition of a an argument to
(ordered) Argument a RunnableEntity.
asynchronous AsynchronousServer * aggr The server call result point admits a runnable to fetch the
ServerCall CallResultPoint result of an asynchronous server call.
ResultPoint
The aggregation of AsynchronousServerCallResultPoint
is subject to variability with the purpose to support the
conditional existence of client server PortPrototypes and
the variant existence of server call result points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=asynchronousServerCallResultPoint.short
Name, asynchronousServerCallResultPoint.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
canBeInvoked Boolean 0..1 attr If the value of this attribute is set to "true" the enclosing
Concurrently RunnableEntity can be invoked concurrently (even for one
instance of the corresponding AtomicSwComponent
Type). This implies that it is the responsibility of the
implementation of the RunnableEntity to take care of this
form of concurrency.
5
4
Class RunnableEntity
dataRead VariableAccess * aggr RunnableEntity has implicit read access to dataElement
Access of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataReadAccess is subject to
variability with the purpose to support the conditional
existence of sender receiver ports or the variant existence
of dataReadAccess in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReadAccess.shortName, dataRead
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataReceive VariableAccess * aggr RunnableEntity has explicit read access to dataElement
PointBy of a sender-receiver PortPrototype or nv data of a nv data
Argument PortPrototype. The result is passed back to the
application by means of an argument in the function
signature.
The aggregation of dataReceivePointByArgument is
subject to variability with the purpose to support the
conditional existence of sender receiver PortPrototype or
the variant existence of data receive points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReceivePointByArgument.shortName,
dataReceivePointByArgument.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataReceive VariableAccess * aggr RunnableEntity has explicit read access to dataElement
PointByValue of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The result is passed back to the application by means of
the return value. The aggregation of dataReceivePointBy
Value is subject to variability with the purpose to support
the conditional existence of sender receiver ports or the
variant existence of data receive points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReceivePointByValue.shortName, data
ReceivePointByValue.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataSendPoint VariableAccess * aggr RunnableEntity has explicit write access to dataElement
of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataSendPoint is subject to variability
with the purpose to support the conditional existence of
sender receiver PortPrototype or the variant existence of
data send points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataSendPoint.shortName, dataSend
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class RunnableEntity
dataWrite VariableAccess * aggr RunnableEntity has implicit write access to dataElement
Access of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataWriteAccess is subject to
variability with the purpose to support the conditional
existence of sender receiver ports or the variant existence
of dataWriteAccess in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataWriteAccess.shortName, dataWrite
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
external ExternalTriggeringPoint * aggr The aggregation of ExternalTriggeringPoint is subject to
TriggeringPoint variability with the purpose to support the conditional
existence of trigger ports or the variant existence of
external triggering points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=externalTriggeringPoint.ident.shortName,
externalTriggeringPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
internal InternalTriggeringPoint * aggr The aggregation of InternalTriggeringPoint is subject to
TriggeringPoint variability with the purpose to support the variant
existence of internal triggering points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=internalTriggeringPoint.shortName, internal
TriggeringPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
modeAccess ModeAccessPoint * aggr The runnable has a mode access point. The aggregation
Point of ModeAccessPoint is subject to variability with the
purpose to support the conditional existence of mode
ports or the variant existence of mode access points in
the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeAccessPoint.ident.shortName, mode
AccessPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
modeSwitch ModeSwitchPoint * aggr The runnable has a mode switch point. The aggregation
Point of ModeSwitchPoint is subject to variability with the
purpose to support the conditional existence of mode
ports or the variant existence of mode switch points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeSwitchPoint.shortName, modeSwitch
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class RunnableEntity
parameter ParameterAccess * aggr The presence of a ParameterAccess implies that a
Access RunnableEntity needs read only access to a Parameter
DataPrototype which may either be local or within a Port
Prototype.
The aggregation of ParameterAccess is subject to
variability with the purpose to support the conditional
existence of parameter ports and component local
parameters as well as the variant existence of Parameter
Access (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=parameterAccess.shortName, parameter
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
readLocal VariableAccess * aggr The presence of a readLocalVariable implies that a
Variable RunnableEntity needs read access to a VariableData
Prototype in the role of implicitInterRunnableVariable or
explicitInterRunnableVariable.
The aggregation of readLocalVariable is subject to
variability with the purpose to support the conditional
existence of implicitInterRunnableVariable and explicit
InterRunnableVariable or the variant existence of read
LocalVariable (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=readLocalVariable.shortName, readLocal
Variable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
serverCallPoint ServerCallPoint * aggr The RunnableEntity has a ServerCallPoint. The
aggregation of ServerCallPoint is subject to variability with
the purpose to support the conditional existence of client
server PortPrototypes or the variant existence of server
call points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=serverCallPoint.shortName, serverCall
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
symbol CIdentifier 0..1 attr The symbol describing this RunnableEntity’s entry point.
This is considered the API of the RunnableEntity and is
required during the RTE contract phase.
waitPoint WaitPoint * aggr The WaitPoint associated with the RunnableEntity.
writtenLocal VariableAccess * aggr The presence of a writtenLocalVariable implies that a
Variable RunnableEntity needs write access to a VariableData
Prototype in the role of implicitInterRunnableVariable or
explicitInterRunnableVariable.
The aggregation of writtenLocalVariable is subject to
variability with the purpose to support the conditional
existence of implicitInterRunnableVariable and explicit
InterRunnableVariable or the variant existence of written
LocalVariable (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=writtenLocalVariable.shortName, written
LocalVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
This section applies to the case that the value of the attribute canBeInvokedCon-
currently is false. During runtime, each RunnableEntity of each instance of
an AtomicSwComponentType is in a specific run-time state.
The details of the definition and semantics of run-time states can be found in [2]. Nev-
ertheless, this chapter contains a brief description of the fundamental concepts in order
to properly being able to discuss the formal modeling of RunnableEntitys.
[TPS_SWCT_01313] Conditions for a transition from suspended to to be
started dThe SwcInternalBehavior describes for each RunnableEntity the
conditions for a transition from suspended to to be started should occur. This is
done using the concept of an RTEEvent.c(RS_SWCT_03040)
When a RunnableEntity is in state to be started, the RTE can decide to
start running the RunnableEntity. The delay between entering the state to be
started (e.g. a message has been received in response to which the RunnableEn-
tity should run) and moving into the state running (the first instruction of the
RunnableEntity has been executed) depends on the scheduling strategy of the
RTE, i.e. the mapping of RunnableEntitys on AUTOSAR OS tasks.
The transition from the state running into the state suspended is in the hands of the
RunnableEntity: the transition occurs when the RunnableEntity returns (thereby
handing over control to the AUTOSAR OS [31]). Some RunnableEntitys (like cat. 2
RunnableEntitys) might never return to the suspended state once they entered the
running state.
They might enter the preempted state when being preempted. The same applies if a
RunnableEntity needs to wait for a WaitPoint to be unblocked.
[TPS_SWCT_01304] Cat. 1A and 1B RunnableEntitys will eventually terminate
dCat. 1A and 1B RunnableEntitys will eventually return after having executed a
specific finite algorithm (the execution time of which might be provided).c(RS_SWCT_-
03040)
[TPS_SWCT_01305] RunnableEntity as one that cannot be invoked concur-
rently dIn case the SwcInternalBehavior defines a RunnableEntity as one
that cannot be invoked concurrently it is the responsibility of the RTE to make sure
that the RunnableEntity is never started concurrently (for example, in two different
AUTOSAR OS tasks). This implies that the implementation of the AtomicSwCompo-
nentType does not need to worry about concurrency issues.c(RS_SWCT_03040)
This section applies to the case that the value of the attribute canBeInvokedCon-
currently is set to true.
In this case, it is allowed that the same RunnableEntity is running several times
concurrently in different AUTOSAR OS tasks. This implies that the state machine de-
fined in [2] is not the state of the RunnableEntity anymore, but can be cloned an
arbitrary number of times.
[TPS_SWCT_01306] Software-component description itself does not put any
bounds on the number of concurrent invocations of a RunnableEntity dThe
software-component description itself does not put any bounds on the number of con-
current invocations of the RunnableEntity that are allowed.
The software-component description only specifies whether the RunnableEntity
can be invoked concurrently or not.
Allowing concurrent invocation of a RunnableEntity implies that the implementa-
tion of the AtomicSwComponentType needs to take care of this additional form of
concurrency.c(RS_SWCT_03040)
For example: The SwcInternalBehavior of a component-type MyComponentType
describes a RunnableEntity R1 which should be enabled when a ClientServer-
Operation on a PPortPrototype typed by a ClientServerInterface of the
AtomicSwComponentType is invoked.
The AtomicSwComponentType specifies that the RunnableEntity R1 can be in-
voked concurrently. The AtomicSwComponentType MyComponentType is instanti-
ated on an ECU.
Note that it is possible to override the attribute period on the level of instantiation.
See [TPS_SWCT_02507] for more details.
Class TimingEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is used to start RunnableEntities that shall be executed periodically.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
offset TimeValue 0..1 attr The value makes an assumption about the time offset of
the first activation of the RunnableEntity triggered by the
mapped TimingEvent relative to the periodic activation of
the time base of this TimingEvent. Unit: second.
period TimeValue 0..1 attr Period of timing event in seconds. The value of this
attribute shall be greater than zero.
Note that all code that is called by different RunnableEntitys (like e.g. library rou-
tines, etc.) shall obviously be reentrant. A filter algorithm implemented in C, for exam-
ple, is not allowed to store values from previous runs by means of static variables or
variables with external binding.
In many cases an RTE generator will be able to figure out not only the number and
data type of arguments to a RunnableEntity but also the name of the arguments.
In some cases, however, formal support from the upstream templates is required to
facilitate this task.
[TPS_SWCT_01311] Name of an operation argument dThis support is available by
means of the meta-class RunnableEntityArgument that contributes the name of
the argument by means of the value of the attribute symbol.
Class RunnableEntityArgument
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RunnableEntity
Note This meta-class represents the ability to provide specific information regarding the arguments to a
RunnableEntity.
Base ARObject
Attribute Type Mult. Kind Note
5
2
as the arguments are ordered they do not need to be Referrable in order to be able to identify
individual arguments
4
Class RunnableEntityArgument
symbol CIdentifier 0..1 attr This represents the symbol to be generated into the
actual signature on the level of the C programming
language.
0..1 +activationReasonRepresentation
[TPS_SWCT_01469] RTE API for retrieving the current activation reason dThe
aggregation of a ExecutableEntityActivationReason allows for the RTE gen-
erator to create an RTE API for retrieving the current activation reason.c(RS_SWCT_-
03040, RS_SWCT_03045)
For details about the implementation of this feature, please refer to the specification of
the RTE [2]
[constr_1226] Applicable range for ExecutableEntityActivationReason.
bitPosition dThe value of attribute ExecutableEntityActivationReason.
bitPosition shall be in the range of 0 .. 31 at the time when the contract
phase generation is executed.c()
4
Class ExecutableEntity (abstract)
runsInside ExclusiveArea * ref The executable entity runs completely inside the
referenced exclusive area.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
runsInside ExclusiveArea * ref The executable entity runs completely inside the
ExclusiveArea referenced exclusive area.
Tags:atp.Status=obsolete
swAddrMethod SwAddrMethod 0..1 ref Addressing method related to this code entity. Via an
association to the same SwAddrMethod, it can be
specified that several code entities (even of different
modules or components) shall be located in the same
memory without already specifying the memory section
itself.
Table 7.8: ExecutableEntity
Class ExecutableEntityActivationReason
Package M2::AUTOSARTemplates::CommonStructure::InternalBehavior
Note This meta-class represents the ability to define the reason for the activation of the enclosing Executable
Entity.
Base ARObject, ImplementationProps, Referrable
Attribute Type Mult. Kind Note
bitPosition PositiveInteger 0..1 attr This attribute allows for defining the position of the
enclosing ExecutableEntityActivationReason in the
activation vector.
Table 7.9: ExecutableEntityActivationReason
One way to make sure that certain initializations are applied before a software-
component enters its state of normal operation is to use the AUTOSAR mode-
management, in particular by defining a ModeDeclarationGroup that contains a
specific ModeDeclaration with the semantics of representing a mode that is exclu-
sively used for setting up and initializing a software-component.
However, this approach comes with a certain amount of footprint that may be accept-
able in some cases but there may also be cases where a simpler approach comes in
handy. The simple approach to initialization consists of a RunnableEntity that is
triggered by a special kind of RTEEvent, i.e. the so-called InitEvent.
7.3 RTEEvent
During execution, several RTEEvents will occur, such as the reception of a remote
invocation of a ClientServerOperation on a PPortPrototype or a timeout on
an RPortPrototype that is not receiving the VariableDataPrototypes it expects
to receive.
[TPS_SWCT_01314] RTEEvent dAn RTEEvent defines:
• what the trigger for the occurrence of that RTEEvent is
• whether specific ModeDeclarations disable the processing of this RTEEvent
• which RunnableEntity shall be started when this RTEEvent occurs.
c(RS_SWCT_03040)
Class AbstractEvent (abstract)
Package M2::AUTOSARTemplates::CommonStructure::InternalBehavior
Note This meta-class represents the abstract ability to model an event that can be taken to implement
application software or basic software in AUTOSAR.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Subclasses BswEvent, RTEEvent
Attribute Type Mult. Kind Note
activation ExecutableEntity 0..1 ref If the activationReasonRepresentation is referenced from
Reason ActivationReason the enclosing AbstractEvent this shall be taken as an
Representation indication that the latter contributes to the activating
vector of this ExecutableEntity that owns the referenced
ExecutableEntityActivationReason.
Class AsynchronousServerCallReturnsEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when an asynchronous server call is finished.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
eventSource AsynchronousServer 0..1 ref The referenced AsynchronousServerCallResultPoint
CallResultPoint raises this AsynchronousServerCallReturnsEvent when
the asynchronous server call returns.
Class DataReceivedEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when the referenced data element is received.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
data VariableDataPrototype 0..1 iref The referenced VariableDataPrototype raises this Data
ReceivedEvent when the data has been received.
InstanceRef implemented by:RVariableInAtomicSwc
InstanceRef
Table 7.15: DataReceivedEvent
Class SwcModeSwitchEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when the specified mode change occurs.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
activation ModeActivationKind 0..1 attr Specifies if the event is raised on entering or exiting a
specific mode or is raised on the transition between two
modes.
mode (ordered) ModeDeclaration 0..2 iref The referenced mode or the transition between two
modes raises this SwcModeSwitchEvent.
InstanceRef implemented by:RModeInAtomicSwc
InstanceRef
Table 7.19: SwcModeSwitchEvent
Enumeration ModeActivationKind
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note Kind of mode switch condition used for activation of an event, as further described for each
enumeration field.
Literal Description
onEntry On entering the referred mode.
Tags:atp.EnumerationLiteralIndex=0
onExit On exiting the referred mode.
Tags:atp.EnumerationLiteralIndex=1
onTransition On transition of the 1st referred mode to the 2nd referred mode.
Tags:atp.EnumerationLiteralIndex=2
Class ModeSwitchedAckEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when the referenced ModeSwitchPoint has been processed or an error occurred.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
eventSource ModeSwitchPoint 0..1 ref The referenced ModeSwitchPoint raises this Mode
SwitchedAckEvent when the ModeSwitchPoint has been
processed.
Class InternalTriggerOccurredEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when the referenced InternalTriggeringPoint has occurred.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
eventSource InternalTriggeringPoint 0..1 ref The referenced InternalTriggeringPoint raises this Internal
TriggerOccurredEvent.
Class TransformerHardErrorEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when data are received which should trigger a Client/Server operation or an external
Trigger but during transformation of the data a hard transformer error occurred.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
operation ClientServerOperation 0..1 iref This represents the ClientServerOperation for which the
transformer can raise this TransformerHardErrorEvent.
InstanceRef implemented by:POperationInAtomicSwc
InstanceRef
requiredTrigger Trigger 0..1 iref This represents the Trigger for which the transformer can
raise this TransformerHardErrorEvent.
InstanceRef implemented by:RTriggerInAtomicSwc
InstanceRef
Table 7.25: TransformerHardErrorEvent
AbstractEvent
AtpStructureElement
RTEEvent
«instanceRef» «instanceRef»
AbstractAccessPoint AutosarDataPrototype
AtpStructureElement VariableDataPrototype
Identifiable
VariableAccess
AbstractEvent
AtpStructureElement
RTEEvent
AtpStructureElement
Identifiable
AbstractAccessPoint ClientServerOperation
AtpStructureElement
Identifiable + diagArgIntegrity:
AsynchronousServerCallResultPoint +eventSource AsynchronousServerCallReturnsEvent OperationInvokedEvent +operation Boolean [0..1]
AbstractEvent AtpStructureElement
AtpStructureElement ExecutableEntity
+startOnEvent
RTEEvent RunnableEntity
0..1
+ canBeInvokedConcurrently: Boolean [0..1]
+ symbol: CIdentifier [0..1]
«instanceRef»
«instanceRef» «atpVariation,atpSplitable»
+disabledMode
0..* +mode 0..2 {ordered} +eventSource 0..1 +modeSwitchPoint *
AtpStructureElement AbstractAccessPoint
Identifiable AtpStructureElement
ModeDeclaration Identifiable
ModeSwitchPoint
+ value: PositiveInteger [0..1] «instanceRef»
+defaultMode 0..1 +initialMode 0..1 0..* +modeDeclaration
«instanceRef»
«atpVariation»
+modeGroup 0..1 +modeGroup 0..1
ARElement AtpPrototype
AtpBlueprint ModeDeclarationGroupPrototype
AtpBlueprintable +type
AtpType «isOfType» + swCalibrationAccess: SwCalibrationAccessEnum [0..1]
ModeDeclarationGroup 0..1
{redefines
+ onTransitionValue: PositiveInteger [0..1]
atpType}
Please note that more explanation about the semantics of the meta-classes SwcMode-
ManagerErrorEvent and ModeErrorBehavior can be found in section 9.4.
AbstractEvent
AtpStructureElement
RTEEvent
TransformerHardErrorEvent
«instanceRef» «instanceRef»
+operation 0..1 +requiredTrigger 0..1
AtpStructureElement AtpStructureElement
Identifiable Identifiable
ClientServerOperation Trigger
AbstractEvent
AtpStructureElement
RTEEvent
«instanceRef»
+trigger 0..1 +eventSource 0..1
AtpStructureElement AbstractAccessPoint
OsTaskExecutionEvent
Identifiable AtpStructureElement
Trigger Identifiable
InternalTriggeringPoint
+ swImplPolicy: SwImplPolicyEnum [0..1]
+ swImplPolicy: SwImplPolicyEnum [0..1]
The details of the various kinds of concrete RTEEvents (such as the TimingEvent,
DataSendCompletedEvent, etc.), is described in chapters 7.5.1, 7.5.2 and 7.2.3.
InternalBehavior
SwcInternalBehavior
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+runnable 0..* +event 0..*
AtpStructureElement AbstractEvent
ExecutableEntity +startOnEvent AtpStructureElement
RunnableEntity RTEEvent
0..1
+ canBeInvokedConcurrently: Boolean [0..1]
+ symbol: CIdentifier [0..1]
+trigger 0..1
+waitPoint 0..*
Identifiable
WaitPoint
3
This constraint is valid at least in the ISO 17356-3 [32] standard where an extended task (that can
have wait points) can only exist a single time in the context of the scheduler.
4
Class WaitPoint
timeout TimeValue 0..1 attr Time in seconds before the WaitPoint times out and the
blocking wait call returns with an error indicating the
timeout.
trigger RTEEvent 0..1 ref This is the RTEEvent this WaitPoint is waiting for.
This section describes how the concept of ExclusiveAreas can be used in the de-
scription of the SwcInternalBehavior of an AtomicSwComponentType.
Please note that ExclusiveAreas are actually owned by the base class of SwcIn-
ternalBehavior, i.e. InternalBehavior. These ExclusiveAreas do not imply
a specific implementation (e.g. with mutual-exclusion semaphores).
Class ExclusiveArea
Package M2::AUTOSARTemplates::CommonStructure::InternalBehavior
Note Prevents an executable entity running in the area from being preempted.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 7.28: ExclusiveArea
AtpStructureElement
SwcInternalBehavior
InternalBehavior
+ handleTerminationAndRestart: HandleTerminationAndRestartEnum [0..1]
+ supportsMultipleInstantiation: Boolean [0..1]
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
«atpVariation,atpSplitable» +exclusiveAreaPolicy 0..* +exclusiveArea 0..*
Identifiable
SwcExclusiveAreaPolicy
+exclusiveArea ExclusiveArea
+ apiPrinciple: ApiPrincipleEnum [0..1]
0..1
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
Identifiable Referrable
ExclusiveArea +exclusiveArea ExclusiveAreaNestingOrder
0..*
{ordered}
+runsInside 0..* +canEnter 0..* 0..* +exclusiveAreaNestingOrder
«atpVariation» «atpVariation»
Identifiable
ExecutableEntity
AtpStructureElement
RunnableEntity AtpStructureElement
SwcInternalBehavior
+runnable InternalBehavior
+ canBeInvokedConcurrently: + handleTerminationAndRestart:
Boolean [0..1] 0..* HandleTerminationAndRestartEnum [0..1]
+ symbol: CIdentifier [0..1] «atpVariation,atpSplitable» + supportsMultipleInstantiation: Boolean [0..1]
Class ExclusiveAreaNestingOrder
Package M2::AUTOSARTemplates::CommonStructure::InternalBehavior
Note This meta-class represents the ability to define a nesting order of ExclusiveAreas. A nesting order (that
may occur in the executable code) is formally defined to be able to analyze the resource locking behavior.
Base ARObject, Referrable
Attribute Type Mult. Kind Note
exclusiveArea ExclusiveArea * ref This represents a specific scenario of how Exclusive
(ordered) Areas can be used in terms of the nesting order.
7.4.1.2 Runnable would Dynamically Enter and Leave the Exclusive Area
Additionally, it is possible to define the execution time the RunnableEntity will spend
in this ExclusiveArea segment. Please note that although this aspect is described
in [6] the concept can be applied to software-components as well.
4
Enumeration ApiPrincipleEnum
perExecutable The Rte or SchM API is provided for a specific ExecutableEntity of a software component / BSW
Module
Tags:atp.EnumerationLiteralIndex=1
For certain cases the ExclusiveArea concept does not provide enough information
to configure the RTE correctly. In these cases it may be advised to opt for a different
approach that is based on the guarded access to variables protected by the RTE.
For the purpose of identifying pieces of data that shall be accessed concurrently from
different RunnableEntitys formal support is required. In AUTOSAR, this aspect is
summarized under the term "inter-runnable variable".
[TPS_SWCT_01052] Inter-runnable variable dThese so-called "inter-runnable vari-
ables" are described with the element VariableDataPrototype aggregated in
the role explicitInterRunnableVariable or implicitInterRunnableVari-
able.c(RS_SWCT_00120, RS_SWCT_02090)
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+implicitInterRunnableVariable 0..* +explicitInterRunnableVariable 0..*
AutosarDataPrototype
ValueSpecification
«atpVariation,atpSplitable» +initValue VariableDataPrototype
+ shortLabel: Identifier [0..1]
0..1
+localVariable 0..1
+runnable 0..*
+writtenLocalVariable
AtpStructureElement AbstractAccessPoint
AutosarVariableRef
ExecutableEntity «atpVariation,atpSplitable» 0..* AtpStructureElement +accessedVariable
RunnableEntity Identifiable
VariableAccess 0..1
+ canBeInvokedConcurrently: +readLocalVariable
Boolean [0..1] + scope:
+ symbol: CIdentifier [0..1] «atpVariation,atpSplitable» 0..* VariableAccessScopeEnum
[0..1]
«atpVariation,atpSplitable»
+internalTriggeringPoint 0..*
AbstractAccessPoint
AtpStructureElement +eventSource InternalTriggerOccurredEvent
Identifiable 0..1
InternalTriggeringPoint
For example, a cyclically triggered RunnableEntity which shall not exceed a cer-
tain worst case execution time (WCET) activates a second RunnableEntity if an
Enumeration RteApiReturnValueProvisionEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::AccessCount
Note This meta-class provides values to control how return values from RTE APIs are provided.
Literal Description
noReturnValue The RTE API shall not provide a return value.
Provided
Tags:atp.EnumerationLiteralIndex=1
returnValue The RTE API shall provide a return value.
Provided
Tags:atp.EnumerationLiteralIndex=0
• RunnableEntity.writtenLocalVariable
• RunnableEntity.readLocalVariable
the existence of the following attributes is not allowed:
• VariableAccess.accessedVariable.autosarVariableInImpl-
Datatype
• VariableAccess.accessedVariable.autosarVariable
In other words, only the reference VariableAccess.accessedVariable.local-
Variable shall be used in this case.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_1431] Access to parameters from within RunnableEntitys dFor a Pa-
rameterAccess that is aggregated in the role RunnableEntity.parameterAc-
cess the existence of the following attributes is not allowed:
• ParameterAccess.accessedParameter.autosarParameter.context-
DataPrototype
• ParameterAccess.accessedParameter.autosarParameter.rootPa-
rameterDataPrototype
In other words: in this case, one of the following alternatives is allowed to exist:
• a combination of
– ParameterAccess.accessedParameter.autosarParameter.port-
Prototype and
– ParameterAccess.accessedParameter.autosarParameter.tar-
getDataPrototype that exclusively refers to a ParameterDataPro-
totype aggregated by a ParameterInterface in the role parameter.
• ParameterAccess.accessedParameter.localParameter that refers to a
ParameterDataPrototype that is either aggregated as
– InternalBehavior.constantMemory or
– SwcInternalBehavior.perInstanceParameter or
– SwcInternalBehavior.sharedParameter.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
7.5.1.1 Terminology
+swDataDefProps 0..1
«atpVariation,atpSplitable»
+runnable 0..*
+dataWriteAccess
AbstractAccessPoint
«atpVariation,atpSplitable» AtpStructureElement
0..*
+dataReadAccess Identifiable
VariableAccess
«atpVariation,atpSplitable» 0..*
+ scope: VariableAccessScopeEnum [0..1]
+dataSendPoint
«atpVariation,atpSplitable» 0..*
+dataReceivePointByValue
«atpVariation,atpSplitable» 0..*
+dataReceivePointByArgument
«atpVariation,atpSplitable» 0..*
+writtenLocalVariable
«atpVariation,atpSplitable» 0..*
+readLocalVariable
«atpVariation,atpSplitable» 0..*
+accessedVariable 0..1
AutosarVariableRef
4
Enumeration VariableAccessScopeEnum
communicationIntra This case is foreseen to express that the corresponding communication shall not cross the boundary
Partition of a partition.
Tags:atp.EnumerationLiteralIndex=1
interPartitionIntra In this case the communication shall cross the boundaries of partitions within one ECU but it shall not
Ecu cross the boundaries of the ECU itself.
Tags:atp.EnumerationLiteralIndex=2
ApplicationSwComponentType
RunnableEntity A
dataSendPoint dspA
dataElement
RunnableEntity B
dataSendPoint dspB
returnValueProvision = noReturnValueProvided
+accessedVariable 0..1
AbstractAccessPoint
AtpStructureElement
Identifiable
VariableAccess
+dataSendPoint 0..*
«atpVariation,atpSplitable»
+runnable 0..* +startOnEvent 0..1
AtpStructureElement
ExecutableEntity
RunnableEntity
4
That is, other than to use a function argument to return the status of the queue but that would
obviously beat the purpose of the API function.
ARElement AtpBlueprintable
+port AbstractRequiredPortPrototype
AtpBlueprint AtpPrototype
AtpBlueprintable «atpVariation,atpSplitable» 0..* PortPrototype
AtpType
SwComponentType
AtpPrototype
DataPrototype
AtomicSwComponentType
! ! !
" # $ +autosarVariable 0..1
$%
& ! «instanceRef»
& !
«atpVariation,atpSplitable»
AutosarVariableRef
+accessedVariable 0..1
+internalBehavior 0..1
AtpStructureElement
ExecutableEntity
RunnableEntity
[TPS_SWCT_01333] dataReceivePointByValue/dataReceivePointByArgu-
ment vs. dataReadAccess dBy using a dataReceivePointByValue or dataRe-
ceivePointByArgument instead of dataReadAccess the constraining access
to the referenced VariableDataPrototype (other RunnableEntitys shall not
change the VariableDataPrototype during the read execution) is limited to a short,
well-defined amount of time.c(RS_SWCT_00200)
[TPS_SWCT_01334] RunnableEntitys of category 1 may have dataRe-
ceivePointByValues/dataReceivePointByArguments dTherefore, category 1
RunnableEntitys may also have dataReceivePointByValues/dataReceive-
PointByArguments and consequently become RunnableEntitys of category 1Bc
(RS_SWCT_00200)
Please note that the categories of RunnableEntity are explained in section 7.2.4.4.
Similar to the dataReadAccess, constraints apply to the reference target of the Au-
tosarVariableRef of VariableAccess in role dataReceivePointByValue or
dataReceivePointByArgument.
[constr_1774] Value of attribute dataReceivePointByArgument.returnVal-
ueProvision dAll RunnableEntity.dataReceivePointByArgument that refer
to the same accessedVariable shall define the identical value for attribute
returnValueProvision at the time when the contract phase gener-
ation is executed.c()
Rationale for the existence of [constr_1774]: different RunnableEntitys could aggre-
gate VariableAccess in the role dataReceivePointByArgument with a different
configuration of attribute returnValueProvision.
However, in such a case it would not be possible to generate the corresponding RTE
API because the API exists once per software-component and it is therefore indis-
pensable to have all affected VariableAccess aggregated in the role dataRe-
ceivePointByArgument agree on the configuration of attribute returnValuePro-
vision.
This relation is exemplarily (for the case of dataSendPoint.returnValueProvi-
sion) sketched in Figure 7.21.
[constr_2005] Referenced VariableDataPrototype from AutosarVari-
ableRef of VariableAccess in role dataReceivePointByValue or dataRe-
ceivePointByArgument dA VariableAccess in the role dataReceivePoint-
ByValue or dataReceivePointByArgument shall refer to an RPortProto-
type or PRPortPrototype that is typed by either a SenderReceiverInterface
or an NvDataInterface at the time when the contract phase genera-
tion is executed.c()
[TPS_SWCT_01335] Combine dataReceivePointByValue or dataReceive-
PointByArgument with a WaitPoint dIn general, it is possible to combine a
dataReceivePointByValue or dataReceivePointByArgument with a Wait-
Point in the scope of a particular RunnableEntity.
This allows for a call to a blocking receive routine implemented by the RTE. The time-
out attribute of meta-class WaitPoint can be used to specify the time until the block-
ing call expires.
But in case of non-queued communication it is not supported that a DataRe-
ceivedEvent is used in combination with a WaitPoint (see [constr_2021]). This
contradicts the approach of the last-is-best semantics.c(RS_SWCT_00200)
[constr_2021] WaitPoint referencing a DataReceivedEvent can not be used
for non-queued communication dA WaitPoint referencing a DataReceivedE-
vent is permitted if and only if the swImplPolicy of the VariableDataProto-
type referenced by this DataReceivedEvent is set to queued.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
Please note however, that in this case (in response to the presence of a WaitPoint)
the RunnableEntity becomes category 2.
Implicit sending and receiving aims at the optimization of computation effort for sender-
receiver communication.
Instead of executing the full amount of functionality for each call to a send-API or
receive-API the implicit communication only receives implicitly received values latest
before the start of the execution of a RunnableEntity and sends implicitly sent values
earliest after termination of the RunnableEntity.
[TPS_SWCT_01329] Access to specific data is implemented by means of aggre-
gating the meta-class VariableAccess in specific roles dPlease note that from the
formal point of view access to specific data is implemented by means of aggregating
the meta-class VariableAccess in specific roles.
This means that dataReadAccess for a read-access while the write-access is defined
by means of aggregating VariableAccess in the role dataWriteAccess.c(RS_-
SWCT_00200)
This aspect is depicted in Figure 7.19.
The following constraints apply to the reference target of the AutosarVariableRef
of VariableAccess in role dataReadAccess or dataWriteAccess.
[constr_2002] Referenced VariableDataPrototype from AutosarVari-
ableRef of VariableAccess in role dataReadAccess dA VariableAccess in
the role dataReadAccess shall refer to an RPortPrototype or PRPortPrototype
that is typed by either a SenderReceiverInterface or a NvDataInterface.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
[constr_2003] Referenced VariableDataPrototype from AutosarVari-
ableRef of VariableAccess in role dataWriteAccess dA VariableAccess in
the role dataWriteAccess shall refer to a PPortPrototype or PRPortPrototype
that is typed by either a SenderReceiverInterface or a NvDataInterface.
This rule shall be imposed at the time when the contract phase genera-
tion is executed.c()
By access with VariableAccess in the dataReadAccess role always the last value
of the VariableDataPrototype buffered before the RunnableEntity starts will
be read during the execution of the RunnableEntity.
It would therefore not make any sense to provide a queue of values for the purpose of
accessing a dataElement in the role dataReadAccess.
[constr_2020] dataReadAccess can not be used for queued communication
dThe swImplPolicy of the VariableDataPrototype referenced by a Vari-
ableAccess in role dataReadAccess shall not be set to queued at the time
when the contract phase generation is executed.c()
[constr_1256] Acknowledgement feedback in n:1 writer case dWithin the scope
of one SwcInternalBehavior, it is not allowed that two or more aggregated
RunnableEntitys own either dataSendPoints or dataWriteAccesss that in turn
point to the identical accessedVariable.autosarVariable.targetDataProto-
type if the attribute transmissionAcknowledge exists in the context of the
7.5.1.5 DataSendCompletedEvent
7.5.1.6 DataWriteCompletedEvent
AtpPrototype
DataPrototype
AtomicSwComponentType !
!"
# +autosarVariable 0..1
#
«instanceRef»
AutosarVariableRef
«atpVariation,atpSplitable»
+accessedVariable 0..1
+internalBehavior 0..1
+dataWriteAccess 0..*
«atpVariation,atpSplitable»
«atpVariation,atpSplitable»
AtpStructureElement
ExecutableEntity
RunnableEntity
7.5.1.7 DataReceivedEvent
ARElement AtpBlueprintable
+port AbstractRequiredPortPrototype
AtpBlueprint AtpPrototype
AtpBlueprintable «atpVariation,atpSplitable» 0..* PortPrototype
AtpType
SwComponentType
AutosarDataPrototype
VariableDataPrototype
DataReceivedEvent
«atpVariation,atpSplitable»
+internalBehavior 0..1
InternalBehavior +event
SwcInternalBehavior AbstractEvent
«atpVariation,atpSplitable» 0..* AtpStructureElement
RTEEvent
«atpVariation,atpSplitable»
+runnable 0..*
AtpStructureElement
ExecutableEntity
RunnableEntity +startOnEvent
0..1
Figure 7.25: Receiver is notified by an event when new data has arrived
7.5.1.8 DataReceiveErrorEvent
5
In case of internal communication the RTE is not enforced to use the COM layer. It is also possible
to implement the required behavior directly in the RTE.
«atpVariation,atpSplitable»
+runnable 0..*
AtpStructureElement
+startOnEvent
ExecutableEntity
RunnableEntity 0..1
DataInterface AutosarDataPrototype
+data DataReceiveErrorEvent
SenderReceiverInterface +dataElement VariableDataPrototype
0..1 «instanceRef»
0..*
+startOnEvent 0..1
+event 0..*
AbstractEvent SynchronousServerCallPoint AsynchronousServerCallPoint
AtpStructureElement
RTEEvent
«atpVariation,atpSplitable»
+asynchronousServerCallPoint 0..1
+asynchronousServerCallResultPoint 0..*
AsynchronousServerCallReturnsEvent AbstractAccessPoint
+eventSource
AtpStructureElement
0..1 Identifiable
AsynchronousServerCallResultPoint
4
Class AsynchronousServerCallPoint
Note An AsynchronousServerCallPoint is used for asynchronous invocation of a ClientServerOperation.
IMPORTANT: a ServerCallPoint cannot be used concurrently. Once the client RunnableEntity has made
the invocation, the ServerCallPoint cannot be used until the call returns (or an error occurs!) at which
point the ServerCallPoint becomes available again.
Base ARObject, AbstractAccessPoint, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable,
MultilanguageReferrable, Referrable, ServerCallPoint
Attribute Type Mult. Kind Note
– – – – –
Table 7.39: AsynchronousServerCallPoint
Class AsynchronousServerCallResultPoint
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::ServerCall
Note If a RunnableEntity owns a AsynchronousServerCallResultPoint it is entitled to get the result of the
referenced AsynchronousServerCallPoint. If it is associated with AsynchronousServerCallReturnsEvent,
this RTEEvent notifies the completion of the required ClientServerOperation or a timeout. The
occurrence of this event can either unblock a WaitPoint or can lead to the invocation of a RunnableEntity.
Base ARObject, AbstractAccessPoint, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable,
MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
asynchronous AsynchronousServer 0..1 ref The referenced Asynchronous Server Call Point defines
ServerCallPoint CallPoint the asynchronous server call from which the results are
returned.
Table 7.40: AsynchronousServerCallResultPoint
ARElement +providedInterface
PPortPrototype
AtpBlueprint «isOfType»
AtpBlueprintable 0..1
AtomicSwComponentType AtpType {redefines atpType}
PortInterface
«atpVariation,atpSplitable»
+internalBehavior 0..1
InternalBehavior «atpVariation,atpSplitable»
+operation AtpStructureElement
SwcInternalBehavior ClientServerInterface
«atpVariation» 0..* Identifiable
ClientServerOperation
Figure 7.28: The OperationInvokedEvent references the operation that was called by
a client.
However, in such a case it would not be possible to generate the corresponding RTE
API because the API exists once per software-component and it is therefore indispens-
able to have all affected ExternalTriggeringPoints agree on the configuration of
attribute returnValueProvision.
This relation is exemplarily (for the case of dataSendPoint.returnValueProvi-
sion) sketched in Figure 7.21.
ARElement AtpBlueprintable
AtpBlueprint +port AtpPrototype AbstractProvidedPortPrototype
AtpBlueprintable PortPrototype
AtpType «atpVariation,atpSplitable» 0..*
SwComponentType
ARElement
AtpBlueprint
AtpBlueprintable
+providedInterface PPortPrototype
AtpType
PortInterface «isOfType»
0..1
{redefines atpType}
+trigger 0..1
«atpVariation,atpSplitable» «instanceRef»
0..1 +internalBehavior
InternalBehavior AtpStructureElement +externalTriggeringPoint ExternalTriggeringPoint
SwcInternalBehavior +runnable ExecutableEntity
RunnableEntity «atpVariation,atpSplitable» 0..*
«atpVariation,atpSplitable» 0..*
Class ExternalTriggeringPoint
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::Trigger
Note If a RunnableEntity owns an ExternalTriggeringPoint it is entitled to raise an ExternalTriggerOccurred
Event.
Base ARObject
Attribute Type Mult. Kind Note
ident ExternalTriggeringPoint 0..1 aggr The aggregation in the role ident provides the ability to
Ident make the ExternalTriggeringPoint identifiable.
From the semantical point of view, the ExternalTriggering
Point is considered a first-class Identifiable and therefore
the aggregation in the role ident shall always exist (until it
may be possible to let ModeAccessPoint directly inherit
from Identifiable).
Stereotypes: atpIdentityContributor
Tags:xml.sequenceOffset=-100
trigger Trigger 0..1 iref The trigger taken for the ExternalTriggeringPoint.
Tags:
xml.namePlural=TRIGGER-IREF
xml.roleElement=false
xml.roleWrapperElement=true
xml.typeElement=true
xml.typeWrapperElement=false
InstanceRef implemented by:PTriggerInAtomicSwcType
InstanceRef
Table 7.41: ExternalTriggeringPoint
The activation of RunnableEntitys in the trigger sink is effected through the generic
event handling mechanism.
ARElement AtpBlueprintable
+port AbstractRequiredPortPrototype
AtpBlueprint AtpPrototype
AtpBlueprintable «atpVariation,atpSplitable» PortPrototype
0..*
AtpType
SwComponentType
+requiredInterface
ARElement
RPortPrototype
«isOfType» AtpBlueprint
0..1 AtpBlueprintable
{redefines AtpType
atpType} PortInterface
TriggerInterface
AtomicSwComponentType
+trigger 0..*
InternalBehavior AtpStructureElement
ExternalTriggerOccurredEvent
SwcInternalBehavior +runnable ExecutableEntity
RunnableEntity
«atpVariation,atpSplitable» 0..*
There are several ways a Calibration Parameter is provided within a software compo-
nent.
[TPS_SWCT_01350] Calibration Parameters shared among several SwCompo-
nentTypes dAs mentioned above, if Calibration Parameters are shared among sev-
eral SwComponentTypes a dedicated PortInterface in a PortPrototype will be
used.c(RS_SWCT_00200)
The designer of a software-component can use this access mechanism when design-
ing a RunnableEntity using, as input value, a DataPrototype
• from an arbitrary RPortPrototype associated with a ClientServerInter-
face, SenderReceiverInterface or a NvDataInterface,
• VariableDataPrototype in the context of an SwcInternalBehavior
This input value will be fed to an interpolation routine whose result can be used in-
ternally or transferred to an adjacent SwComponentPrototype via dedicated Port-
Prototypes.
ARElement AbstractRequiredPortPrototype
AutosarVariableRef SwAxisIndividual
AtpBlueprint RPortPrototype
AtpBlueprintable
AtpType +autosarVariable 0..1
SwComponentType 0..*
{ordered}
+swVariableRef
SwVariableRefProxy SwCalprmAxisTypeProps
+swComparisonVariable ! "
0..* +swCalprmAxisTypeProps 0..1
!
AtpPrototype
AtomicSwComponentType SwCalprmAxis
DataPrototype
SwCalprmAxisSet AutosarParameterRef
«atpVariation,atpSplitable»
+parameterAccess 0..*
«atpVariation,atpSplitable»
«atpVariation,atpSplitable»
+runnable 0..*
AtpStructureElement
ExecutableEntity
RunnableEntity
7.5.4.1 InstantiationDataDefProps
Typically, the accessibility and further information like alias names for a particular piece
of data is modeled on the level of DataPrototypes (especially VariableDataPro-
totypes, ParameterDataPrototypes).
But due to the recursive structure of the meta-model concerning data types (an Appli-
cationCompositeDataType consists of DataPrototypes), a part of the relevant
MCD information is described directly in the data type (in case of a Application-
CompositeDataType).
This is a strong restriction in the re-use of data types because the ApplicationCom-
positeDataType should be re-used for different VariableDataPrototypes and
ParameterDataPrototypes to guarantee type compatibility on C-implementation
level (e.g. data of a PortPrototype is stored in a PIM or a ParameterDataPro-
totype used as ROM Block and shall be typed by the same data type as NVRAM
Block).
This restriction is overcome by InstantiationDataDefProps as shown in figure
7.32
InternalBehavior «atpVariation»
SwcInternalBehavior SwDataDefProps
0..1 +
«atpVariation»
swValueBlockSize: Numerical [0..1]
.
+ swValueBlockSizeMult: Numerical [0..*] {ordered}
+parameterInstance 0..1
+autosarParameter
AtpPrototype
AutosarParameterRef «instanceRef» 0..1
DataPrototype
+localParameter
0..1 +variableInstance 0..1
+autosarVariable
AutosarVariableRef
«instanceRef» 0..1
Class InstantiationDataDefProps
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::InstantiationDataDefProps
Note This is a general class allowing to apply additional SwDataDefProps to particular instantiations of a Data
Prototype.
Typically the accessibility and further information like alias names for a particular data is modeled on the
level of DataPrototypes (especially VariableDataPrototypes, ParameterDataPrototypes). But due to the
recursive structure of the meta-model concerning data types (a composite (data) type consists out of
data prototypes) a part of the MCD information is described in the data type (in case of Application
CompositeDataType).
This is a strong restriction in the reuse of data typed because the data type should be re-used for
different VariableDataPrototypes and ParameterDataPrototypes to guarantee type compatibility on
C-implementation level (e.g. data of a Port is stored in PIM or a ParameterDataPrototype used as ROM
Block and shall be typed by the same data type as NVRAM Block).
This class overcomes such a restriction if applied properly.
Base ARObject
Attribute Type Mult. Kind Note
parameter AutosarParameterRef 0..1 aggr This is the particular ParameterDataPrototypes on which
Instance the swDataDefProps shall be applied.
swDataDef SwDataDefProps 0..1 aggr These are the particular data definition properties which
Props shall be applied
variableInstance AutosarVariableRef 0..1 aggr This is the particular VariableDataPrototypes on which
the swDataDefProps shall be applied.
Class PortAPIOption
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::PortAPIOptions
Note Options how to generate the signatures of calls for an AtomicSwComponentType in order to
communicate over a PortPrototype (for calls into a RunnableEntity as well as for calls from a Runnable
Entity to the PortPrototype).
Base ARObject
Attribute Type Mult. Kind Note
enableTake Boolean 0..1 attr If set to true, the software-component is able to use the
Address API reference for deriving a pointer to an object.
errorHandling DataTransformation 0..1 attr This specifies whether a RunnableEntity accessing a Port
ErrorHandlingEnum Prototype that is referenced by this PortAPIOption shall
specifically handle transformer errors or not.
indirectAPI Boolean 0..1 attr If set to true this attribute specifies an "indirect API" to be
generated for the associated port which means that the
software-component is able to access the actions on a
port via a pointer to an object representing a port. This
allows e.g. iterating over ports in a loop. This option has
no effect for PPortPrototypes of client/server interfaces.
port PortPrototype 0..1 ref The option is valid for generated functions related to
communication over this port
portArgValue PortDefinedArgument * aggr An argument value defined by this port.
(ordered) Value
supported SwcSupportedFeature * aggr This collection specifies which features are supported by
Feature the RunnableEntitys which access a PortPrototype that it
referenced by this PortAPIOption.
transformer DataTransformation 0..1 attr This specifies whether a RunnableEntity accessing a Port
Status StatusForwardingEnum Prototype that is referenced by this PortAPIOption shall
Forwarding be able to forward a status to the transformer chain.
noTransformerStatusForwarding noTransformerErrorHandling
transformerStatusForwarding transformerErrorHandling
«atpVariation,atpSplitable»
+portAPIOption 0..*
AtpBlueprintable
PortAPIOption
AtpPrototype
+port
+ enableTakeAddress: Boolean [0..1] PortPrototype
+ errorHandling: DataTransformationErrorHandlingEnum [0..1] 0..1
+ indirectAPI: Boolean [0..1]
+ transformerStatusForwarding: DataTransformationStatusForwardingEnum [0..1]
«enumeration» AbstractImplementationDataType
SwcSupportedFeature PortDefinedArgumentValue
SupportBufferLockingEnum +valueType ImplementationDataType
+value 0..1
CommunicationBufferLocking ValueSpecification
Figure 7.33 shows the meta-model of Port API Options and the portArgValue.
[constr_1150] Usage of valueType for PortDefinedArgumentValue dThe val-
ueType (typically this boils down to integer values used to specify an “id”) associated
with PortDefinedArgumentValue shall be of category VALUE or TYPE_REFER-
ENCE. The latter case is only supported if the value of category of the target data
type is set to VALUE.
This rule shall be imposed at the time when the RTE is generated.c()
In case of a PPortPrototype of the NVRAM example this list would have just one
value of type int8 or int16 holding the memory block id.
[constr_1386] PortDefinedArgumentValue shall only be defined for Ab-
stractProvidedPortPrototype dA PortAPIOption which aggregates at least
one PortDefinedArgumentValue in the role portArgValue shall reference an
AbstractProvidedPortPrototype typed by a ClientServerInterface in the
role port at the time when the RTE is generated.c()
To be clear, this means that PortDefinedArgumentValues may not be used to-
gether with RPortPrototypes.
Class PortDefinedArgumentValue
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::PortAPIOptions
Note A PortDefinedArgumentValue is passed to a RunnableEntity dealing with the ClientServerOperations
provided by a given PortPrototype. Note that this is restricted to PPortPrototypes of a ClientServer
Interface.
Base ARObject
Attribute Type Mult. Kind Note
value ValueSpecification 0..1 aggr Specifies the actual value.
valueType ImplementationData 0..1 tref The implementation type of this argument value. It should
Type not be composite type or a pointer.
Stereotypes: isOfType
As further requests for extensions keep coming in, focus was put on limiting the com-
plexity of the overall modeling of PortAPIOption. In response to this, a new exten-
sion approach has been defined to keep the surroundings of PortAPIOption man-
ageable.
In particular, PortAPIOption aggregates the abstract meta-class SwcSupported-
Feature in the role supportedFeature (see Figure 7.33).
The actual aggregation of supportedFeature will consist of concrete sub-classes of
SwcSupportedFeature.
It will be possible to add further sub-classes of SwcSupportedFeature to add further
functionality without increasing the modeling complexity of PortAPIOption, at the
expense of having to formulate additional constraints.
Class SwcSupportedFeature (abstract)
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::PortAPIOptions
Note This meta-class represents a abstract base class for features that can be supported by a RunnableEntity.
Base ARObject
Subclasses CommunicationBufferLocking
Attribute Type Mult. Kind Note
– – – – –
Table 7.48: SwcSupportedFeature
7.7 PerInstanceMemory
[TPS_SWCT_01359] Private memory per instance dAtomicSwComponentTypes
that support multiple instantiation (attribute supportsMultipleInstantiation ==
true) will typically need a given amount of private memory per instance. It is the re-
sponsibility of the RTE to provide a mechanism with which each instance of an Atom-
icSwComponentType can access its own instance-specific memory.c(RS_SWCT_-
03040)
InternalBehavior DataPrototype
SwcInternalBehavior AutosarDataPrototype
+invalidValue 0..1
+swDataDefProps 0..1
0..1
PerInstanceMemorySize «atpVariation» +type
{redefines atpType}
SwDataDefProps
+ alignment: PositiveInteger [0..1] ARElement
+swDataDefProps
AtpType
«atpVariation»
+ size: PositiveInteger [0..1] 0..1 AutosarDataType
«atpVariation,atpSplitable»
«atpVariation,atpSplitable»
+staticMemory 0..* +constantMemory 0..*
AutosarDataPrototype AutosarDataPrototype
SwcInternalBehavior
VariableDataPrototype ParameterDataPrototype
This supports the common usage of the AUTOSAR data type system for RTE provided
memory objects and memory objects declared by the software component implemen-
tation.
Further on, this enables the generation of the RTE Application Types Header File for
AUTOSAR services containing the required data types for the C-API before the data
type usage in dedicated ports for an ECU is known.
Class IncludedDataTypeSet
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::IncludedDataTypes
Note An includedDataTypeSet declares that a set of AutosarDataType is used by a basic software module or a
software component for its implementation and the AutosarDataType becomes part of the contract.
This information is required if the AutosarDataType is not used for any DataPrototype owned by this
software component or if the enumeration literals, lowerLimit and upperLimit constants shall be
generated with a literalPrefix.
The optional literalPrefix is used to add a common prefix on enumeration literals, lowerLimit and upper
Limit constants created by the RTE.
Base ARObject
Attribute Type Mult. Kind Note
dataType AutosarDataType * ref AutosarDataType belonging to the includedDataTypeSet
literalPrefix Identifier 0..1 attr LiteralPrefix defines a common prefix for all AutosarData
Types of the includedDataTypeSet to be added on
enumeration literals, lowerLimit and upperLimit constants
created by the RTE.
+modeDeclarationGroup 0..*
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
ModeDeclarationGroup
Class IncludedModeDeclarationGroupSet
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::ModeDeclarationGroup
Note An IncludedModeDeclarationGroupSet declares that a set of ModeDeclarationGroups used by the
software component for its implementation and consequently these ModeDeclarationGroups become
part of the contract.
Base ARObject
Attribute Type Mult. Kind Note
mode ModeDeclarationGroup * ref This represents the referenced ModeDeclarationGroup.
Declaration
Group
prefix Identifier 0..1 attr The prefix shall be used by the RTE generator as a prefix
for the creation of symbols related to the referenced
ModeDeclarationGroups, e.g RTE_TRANSITION_<Mode
DeclarationGroup>.
7.11.1 Overview
chosen so that they fulfill the requirements given by the ServiceNeeds of all the inte-
grated AtomicSwComponentTypes.c(RS_SWCT_02060)
Note that the actual values of configuration parameters will in addition depend on the
properties of the basic software and the hardware of that specific ECU, see also chap-
ter 11.
For further information about the relation between the ServiceNeeds and the ECU
configuration parameters see [33].
The meta-class ServiceNeeds and the sub-classes for several Services are located
in the CommonStructure package of the meta-model because they are also used in
the Basic Software Module Description Template [6].
Identifiable
CryptoServiceJobNeeds GlobalSupervisionNeeds
ServiceNeeds
DltUserNeeds SupervisedEntityNeeds
BswMgrNeeds
EcuStateMgrUserNeeds
VendorSpecificServiceNeeds
CryptoServiceNeeds
SecureOnBoardCommunicationNeeds ComMgrUserNeeds
+ verificationStatusIndicationMode: + maxCommMode: MaxCommModeEnum [0..1]
VerificationStatusIndicationModeEnum [0..1]
«enumeration» «enumeration»
VerificationStatusIndicationModeEnum MaxCommModeEnum
failureOnly none
failureAndSuccess silent
full
4
Class ServiceNeeds (abstract)
Subclasses BswMgrNeeds, ComMgrUserNeeds, CryptoKeyManagementNeeds, CryptoServiceJobNeeds, Crypto
ServiceNeeds, DiagnosticCapabilityElement, DltUserNeeds, DoIpServiceNeeds, EcuStateMgrUser
Needs, ErrorTracerNeeds, FunctionInhibitionAvailabilityNeeds, FunctionInhibitionNeeds, Global
SupervisionNeeds, HardwareTestNeeds, IdsMgrCustomTimestampNeeds, IdsMgrNeeds, IndicatorStatus
Needs, J1939DcmDm19Support, J1939RmIncomingRequestServiceNeeds, J1939RmOutgoingRequest
ServiceNeeds, NvBlockNeeds, SecureOnBoardCommunicationNeeds, SupervisedEntityCheckpoint
Needs, SupervisedEntityNeeds, SyncTimeBaseMgrUserNeeds, V2xFacUserNeeds, V2xMUserNeeds,
VendorSpecificServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 7.54: ServiceNeeds
Please note that the vast majority of the subclasses of meta-class ServiceNeeds
are associated with standardized behavior of AUTOSAR services. However, there are
cases where a user-specific behavior is required and for this purpose a specific flavor
of ServiceNeeds is available.
[TPS_SWCT_01693] Usage of VendorSpecificServiceNeeds dIt is possible to
define VendorSpecificServiceNeeds for the purpose of implementing a vendor-
specific, i.e. non-standardized, service. VendorSpecificServiceNeeds does not
provide any attributes and its meaning shall be described by means of the category
attribute.c(RS_SWCT_02060)
Class VendorSpecificServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This represents the ability to define vendor-specific service needs.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 7.55: VendorSpecificServiceNeeds
Both are aggregating an attribute role which allows to define the role of the Port-
Prototypes or data in the specific context.
[constr_2027] SwcServiceDependency shall be defined for service ports only dA
PortPrototype that is referenced by a SwcServiceDependency via assigned-
Port or via assignedData shall be typed by a PortInterface that has isSer-
vice set to true at the time when the RTE is generated.
This rule does not apply to PortPrototypes referenced by a RoleBasedPortAs-
signment where the attribute role is set to any of the following values:
• NvMService
• NvMNotifyJobFinished
• NvMNotifyInitBlock
• NvMAdmin
• NvMMirror
• NvDataPort
Furthermore, the rule does not apply to the case described in [TPS_SWCT_01579],
[TPS_SWCT_01831], [TPS_SWCT_01580], and [TPS_SWCT_01572].c()
ImplementationProps +symbolicNameProps
ServiceDependency
SymbolicNameProps
0..1 + diagnosticRelevance: ServiceDiagnosticRelevanceEnum [0..1]
AtpStructureElement
BswServiceDependency
Identifiable
SwcServiceDependency
The actual mapping between the ServiceNeeds element and its various relationships
is provided by the meta-class SwcServiceDependency as shown in figure 7.40.
RoleBasedDataTypeAssignment +assignedDataType ServiceDependency
InternalBehavior +serviceDependency AtpStructureElement
SwcInternalBehavior Identifiable
«atpVariation,atpSplitable» 0..* SwcServiceDependency
RoleBasedPortAssignment
+assignedPort
+ role: Identifier [0..1]
0..* «atpVariation,atpSplitable»
«atpVariation,atpSplitable»
+portPrototype 0..1 +representedPortGroup 0..1 0..1 +serviceNeeds
AtpStructureElement
Identifiable
+perInstanceMemory
PerInstanceMemory
«atpVariation,atpSplitable» 0..* +usedPim
+ initValue: String [0..1]
+ type: CIdentifier [0..1] 0..1
+ typeDefinition: String [0..1]
+usedParameterElement 0..1
+autosarParameter
AtpPrototype
AutosarParameterRef
DataPrototype 0..1 «instanceRef»
+localParameter
0..1
AutosarDataPrototype
+sharedParameter
+usedDataElement 0..1
+arTypedPerInstanceMemory +localVariable
VariableDataPrototype AutosarVariableRef
«atpVariation,atpSplitable» 0..* 0..1
Class RoleBasedDataAssignment
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This class specifies an assignment of a role to a particular data object in either
• the SwcInternalBehavior of a software component (or in the BswInternalBehavior of a BSW
module or BSW cluster) in the context of an AUTOSAR Service or
• an NvBlockDescriptor to sort out the assignment of event-based writing strategies to data
elements in a PortPrototype.
With this assignment, the role of the data can be mapped to a DataPrototype that is used in the context
of the definition of a specific ServiceNeeds or NvBlockDescriptor, so that a tool is able to create the
correct access or writing strategy.
Base ARObject
Attribute Type Mult. Kind Note
role Identifier 0..1 attr This is the role of the assigned data in the given context,
for example for an NVRAM Block it is used to distinguish
between an mirror block and a ROM default block.
Possible values need to be specified on M1 level.
5
4
Class RoleBasedDataAssignment
4
This also is intended to support the so called "Signal
based Approach" of the DCM. In this use case the name
of the involved data element is required. This name shall
be taken from the DataElement referenced by the
property usedDataElement.
The following values are standardized:
• ramBlock indicates data to be used as a mirror
for an NVRAM Block.
• defaultValue indicates constant data to be used
as default in the context of this ServiceNeeds,
e.g. for an NVRAM Block.
• signalBasedDiagnostics indicates the Role
BasedDataAssignment shall be used for signal
based diagnostics.
usedData AutosarVariableRef 0..1 aggr The VariableDataPrototype used in this role, e.g.
Element
• Permanent RAM Block of an NVRAM Block
which shall belong to the same SwcInternal
Behavior or BswInternalBehavior.
• In the role signalBasedDiagnostics it has to refer
to a VariableDataPrototype in a SenderReceiver
Interface or a NvDataInterface.
usedParameter AutosarParameterRef 0..1 aggr The ParameterDataPrototype used in this role, e.g.
Element
• ROM Block of an NVRAM Block. It shall belong
to the same SwcInternalBehavior or Bsw
Internalbehavior.
• In the role signalBasedDiagnostics it has to refer
to a ParameterDataPrototype in a Parameter
Interface.
usedPim PerInstanceMemory 0..1 ref The (untyped) PerInstanceMemory used in this role (e.g.
as a Permanent RAM Block for an NVRAM Block).
AtpPrototype
RoleBasedDataAssignment AutosarVariableRef
+autosarVariable DataPrototype
+usedDataElement
Class SwcServiceDependency
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::ServiceMapping
Note Specialization of ServiceDependency in the context of an SwcInternalBehavior. It allows to associate
ports, port groups and (in special cases) data defined for an atomic software component to a given
ServiceNeeds element.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable,
Referrable, ServiceDependency
Attribute Type Mult. Kind Note
assignedData RoleBasedData * aggr Defines the role of an associated data object of the same
Assignment component.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
assignedPort RoleBasedPort * aggr Defines the role of an associated port of the same
Assignment component.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=assignedPort, assignedPort.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
representedPort PortGroup 0..1 ref This reference specifies an association between the
Group ServiceNeeeds and a PortGroup, for example to request
a communication mode which applies for communication
via these ports. The referred PortGroup shall be local to
this atomic SWC, but via the links between the Port
Groups, a tool can evaluate this information such that all
the ports linked via this port group on the same ECU can
be found.
serviceNeeds ServiceNeeds 0..1 aggr The associated ServiceNeeds.
4
Class ServiceDependency (abstract)
diagnostic ServiceDiagnostic 0..1 attr If this attribute indicates a relevance for diagnostics then
Relevance RelevanceEnum the integrator has a much easier time identifying the
candidates for the configuration of the diagnostic stack.
Example: identification of mode conditions (e.g.
communication between application and BswM) relevant
for the Dcm.
symbolicName SymbolicNameProps 0..1 aggr This attribute can be taken to contribute to the creation of
Props symbolic name values.
Enumeration ServiceDiagnosticRelevanceEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This enumeration provides values to describe the diagnostic relevance of a SwcServiceDependency
(specifically if the aggregated ServiceNeeds itself does not indicate a relevance for diagnostics).
Literal Description
isNotRelevant This value indicates that a relevance for diagnostics does not exist.
Tags:atp.EnumerationLiteralIndex=0
isRelevant This value indicates a relevance for diagnostics.
Tags:atp.EnumerationLiteralIndex=1
Class SymbolicNameProps
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class can be taken to contribute to the creation of symbolic name values.
Base ARObject, ImplementationProps, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 7.61: SymbolicNameProps
ServiceDependency
+ diagnosticRelevance: ServiceDiagnosticRelevanceEnum [0..1]
AbstractImplementationDataType «atpVariation»
ImplementationDataType +assignedDataType 0..1
Class RoleBasedDataTypeAssignment
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::ServiceMapping
Note This class specifies an assignment of a role to a particular data type of a software component (or in the
BswModuleBehavior of a module or cluster) in the context of an AUTOSAR Service.
With this assignment, the role of the data type can be mapped to a specific ServiceNeeds element, so
that a tool is able to create the correct access.
Base ARObject
Attribute Type Mult. Kind Note
role Identifier 0..1 attr This is the role of the associated data type in the given
context.
used ImplementationData 0..1 ref This represents the associated ImplementationDataType.
Implementation Type
DataType
Note that in this case a regulation regarding the shortNames of the affected SwcSer-
viceDependencys is not required because the applicable SenderReceiverInter-
face is not standardized and does not require the assignment of a name suffix from
the existing model.
RoleBasedPortAssignment
role: „DataServices“
RoleBasedPortAssignment
role: „DataServices“
SwcServiceDependency DiagnosticIOControlNeeds
„X“ „DataServicesX“
0..1
{subsets atpStringReference}
InternalBehavior
AttributeValueVariationPoint ConditionByFormula
SwcInternalBehavior
+ bindingTime: BindingTimeEnum [0..1] + bindingTime: BindingTimeEnum
+ blueprintValue: String [0..1]
+ sd: String [0..1]
+ shortLabel: PrimitiveIdentifier [0..1]
0..* +variationPointProxy
Identifiable
VariationPointProxy
AtpBlueprint ARElement
PostBuildVariantCondition
AtpBlueprintable AtpDefinition +matchingCriterion
AutosarDataType PostBuildVariantCriterion «atpVariation»
1
AbstractImplementationDataType + value: Integer
Class PostBuildVariantCriterion
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This class specifies one particular PostBuildVariantSelector.
Tags:atp.recommendedPackage=PostBuildVariantCriterions
Base ARElement, ARObject, AtpDefinition, CollectableElement, Identifiable, MultilanguageReferrable,
PackageableElement, Referrable
Attribute Type Mult. Kind Note
compuMethod CompuMethod 1 ref The compuMethod specifies the possible values for the
variant criterion serving as an enumerator.
Class PostBuildVariantCondition
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This class specifies the value which shall be assigned to a particular variant criterion in order to bind the
variation point. If multiple criterion/value pairs are specified, they shall all match to bind the variation
point.
In other words binding can be represented by
(criterion1 == value1) && (condition2 == value2) ...
Base ARObject
Attribute Type Mult. Kind Note
matching PostBuildVariant 1 ref This is the criterion which needs to match the value in
Criterion Criterion order to make the PostbuildVariantCondition to be true.
value Integer 1 attr This is the particular value of the post-build variant
criterion.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
8 Implementation
Previous versions of this document contained a comprehensive description of the
meta-class Implementation. This meta-class still exists but the description of most
of its content has been moved to another document, in particular the specification of
the Basic Software Module Description Template [6].
ARElement Identifiable
+resourceConsumption
Implementation ResourceConsumption
«atpSplitable» 0..1
+ programmingLanguage:
ProgramminglanguageEnum [0..1] +codeDescriptor
+ swVersion: RevisionLabelString [0..1] Identifiable
+ usedCodeGenerator: String [0..1] 0..* Code
+ vendorId: PositiveInteger [0..1] +artifactDescriptor
EngineeringObject
AutosarEngineeringObject 0..*
+artifactDescriptor
Identifiable
0..1 DependencyOnArtifact
«atpVariation» +requiredGeneratorTool
0..*
«atpVariation» +requiredArtifact
0..*
«atpVariation» +generatedArtifact
0..*
Identifiable
Compiler
+ name: String [0..1]
+compiler + options: String [0..1]
+ vendor: String [0..1]
0..* + version: String [0..1]
!
InternalBehavior
SwcImplementation +behavior PerInstanceMemorySize
SwcInternalBehavior
+ requiredRTEVendor: String [0..1] 0..1 + alignment: PositiveInteger [0..1]
+perInstanceMemorySize «atpVariation»
+ size: PositiveInteger [0..1]
«atpVariation» *
Please note that the Software Component Template and the Basic Software
Module Description Template share the content of Implementation. How-
ever, the semantics of Implementation is closer to the Basic Software Module
Description Template.
Nevertheless, there is still content strictly related to the Software Component Tem-
plate. This part of Implementation consisting of SwcImplementation (see Fig-
ure 8.1) remains in this document.
Class Implementation (abstract)
Package M2::AUTOSARTemplates::CommonStructure::Implementation
Note Description of an implementation a single software component or module.
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Subclasses BswImplementation, SwcImplementation
Attribute Type Mult. Kind Note
5
4
Class Implementation (abstract)
buildAction BuildActionManifest 0..1 ref A manifest specifying the intended build actions for the
Manifest software delivered with this implementation.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=codeGenerationTime
codeDescriptor Code * aggr Specifies the provided implementation code.
compiler Compiler * aggr Specifies the compiler for which this implementation has
been released
generated DependencyOnArtifact * aggr Relates to an artifact that will be generated during the
Artifact integration of this Implementation by an associated
generator tool. Note that this is an optional information
since it might not always be in the scope of a single
module or component to provide this information.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
hwElement HwElement * ref The hardware elements (e.g. the processor) required for
this implementation.
linker Linker * aggr Specifies the linker for which this implementation has
been released.
mcSupport McSupportData 0..1 aggr The measurement & calibration support data belonging to
this implementation. The aggregtion is <<atpSplitable>>
because in case of an already exisiting BSW
Implementation model, this description will be added later
in the process, namely at code generation time.
Stereotypes: atpSplitable
Tags:atp.Splitkey=mcSupport
programming Programminglanguage 0..1 attr Programming language the implementation was created
Language Enum in.
requiredArtifact DependencyOnArtifact * aggr Specifies that this Implementation depends on the
existance of another artifact (e.g. a library). This
aggregation of DependencyOnArtifact is subject to
variability with the purpose to support variability in the
implementations. Different algorithms in the
implementation might cause different dependencies, e.g.
the number of used libraries.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
required DependencyOnArtifact * aggr Relates this Implementation to a generator tool in order to
GeneratorTool generate additional artifacts during integration.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
resource ResourceConsumption 0..1 aggr All static and dynamic resources for each implementation
Consumption are described within the ResourceConsumption class.
Stereotypes: atpSplitable
Tags:atp.Splitkey=resourceConsumption.shortName
swcBsw SwcBswMapping 0..1 ref This allows a mapping between an SWC and a BSW
Mapping behavior to be attached to an implementation description
(for AUTOSAR Service, ECU Abstraction and Complex
Driver Components). It is up to the methodology to define
whether this reference has to be set for the Swc- or Bsw
Implementtion or for both.
swVersion RevisionLabelString 0..1 attr Software version of this implementation. The numbering
contains three levels (like major, minor, patch), its values
are vendor specific.
usedCode String 0..1 attr Optional: code generator used.
Generator
5
4
Class Implementation (abstract)
vendorId PositiveInteger 0..1 attr Vendor ID of this Implementation according to the
AUTOSAR vendor list
Class SwcImplementation
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcImplementation
Note This meta-class represents a specialization of the general Implementation meta-class with respect to the
usage in application software.
Tags:atp.recommendedPackage=SwcImplementations
Base ARElement, ARObject, CollectableElement, Identifiable, Implementation, MultilanguageReferrable,
PackageableElement, Referrable
Attribute Type Mult. Kind Note
behavior SwcInternalBehavior 0..1 ref The internal behavior implemented by this
Implementation.
5
4
Class SwcImplementation
perInstance PerInstanceMemory * aggr Allows a definition of the size of the per-instance memory
MemorySize Size for this implementation. The aggregation of PerInstance
MemorySize is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects, in this case PerInstanceMemory.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
required String 0..1 attr Identify a specific RTE vendor. This information is
RTEVendor potentially important at the time of integrating (in
particular: linking) the application code with the RTE. The
semantics is that (if the association exists) the
corresponding code has been created to fit to the
vendor-mode RTE provided by this specific vendor.
Attempting to integrate the code with another RTE
generated in vendor mode is in general not possible.
9 Mode Management
In general, the Software Component Template doesn’t define the kind of modes
that shall be supported by State Managers or software-components explicitly. How-
ever the Software Component Template provides generic mechanisms for describing
modes.
In this section the general relationship between modes, interfaces, and software-
components is discussed.
The assumption from the software-component point of view is that State Managers are
using a Standardized AUTOSAR PortInterface1 to influence the SwComponent-
Type and also provide a PortInterface to get requests and confirmations from the
SwComponentType.
They will be implemented as AUTOSAR services and be part of the Basic Software
on each ECU. The actual modes a State Manager provides will have to be standardized
as well to allow compatibility between software-components.
It is also possible to define a mode manager in the Application Software and the same
functionality is supported as for mode managers implemented in the Basic Software.
[TPS_SWCT_01581] Communication patterns for mode-related communication
dMode-related communication shall implement a 1:1 or 1:n scenario but the creation
of an n:1 configuration shall be considered invalid.c(RS_SWCT_03200, RS_SWCT_-
03110)
As a consequence of [TPS_SWCT_01581], [constr_1101] is formulated.
[constr_1101] Mode-related communication dAn RPortPrototype typed by Mod-
eSwitchInterface shall not be referenced by more than one SwConnector at
the time when the RTE is generated.c()
1
See also AUTOSAR Glossary for “Standardized AUTOSAR Interface”.
+modeDeclaration
ARElement AtpStructureElement
«atpVariation» 0..*
AtpBlueprint Identifiable
AtpBlueprintable ModeDeclaration
AtpType
ModeDeclarationGroup + value: PositiveInteger [0..1]
+ onTransitionValue: PositiveInteger [0..1]
+initialMode
«isOfType»
«enumeration» «enumeration»
ModeErrorReactionPolicyEnum SwCalibrationAccessEnum
AtpPrototype
ModeDeclarationGroupPrototype lastMode readOnly
defaultMode notAccessible
+ swCalibrationAccess: SwCalibrationAccessEnum [0..1] readWrite
Class ModeDeclarationGroup
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note A collection of Mode Declarations. Also, the initial mode is explicitly identified.
Tags:atp.recommendedPackage=ModeDeclarationGroups
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
initialMode ModeDeclaration 0..1 ref The initial mode of the ModeDeclarationGroup. This
mode is active before any mode switches occurred.
mode ModeDeclaration * aggr The ModeDeclarations collected in this ModeDeclaration
Declaration Group.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=blueprintDerivationTime
modeManager ModeErrorBehavior 0..1 aggr This represents the ability to define the error behavior
ErrorBehavior expected by the mode manager in case of errors on the
mode user side (e.g. terminated mode user).
modeTransition ModeTransition * aggr This represents the avaliable ModeTransitions of the
ModeDeclarationGroup
5
4
Class ModeDeclarationGroup
modeUserError ModeErrorBehavior 0..1 aggr This represents the definition of the error behavior
Behavior expected by the mode user in case of errors on the mode
manager side (e.g. terminated mode manager).
onTransition PositiveInteger 0..1 attr The value of this attribute shall be taken into account by
Value the RTE generator for programmatically representing a
value used for the transition between two statuses.
Table 9.2: ModeDeclarationGroup
+modeTransition 0..*
AtpStructureElement +enteredMode
Referrable
0..1
ModeTransition +exitedMode
0..1
Software-Component 1
Runnable Entity 1a
Runnable Entity 1b
Runnable Entity 1c
Runnable Entity 1c
Mode Manager
Figure 9.4 shows an excerpt of the meta-model illustrating how the relationship be-
tween the current mode and the SwcInternalBehavior of the AtomicSwCompo-
nentType can be described.
AtpStructureElement AbstractEvent AtpStructureElement
ExecutableEntity +startOnEvent AtpStructureElement +disabledMode Identifiable
RunnableEntity RTEEvent ModeDeclaration
«instanceRef» 0..*
+ canBeInvokedConcurrently: Boolean [0..1] 0..1 + value: PositiveInteger [0..1]
+ symbol: CIdentifier [0..1]
onEntry SwcModeSwitchEvent
onExit + activation: ModeActivationKind [0..1]
onTransition
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1195] SwcModeSwitchEvent and the definition of ModeTransition dFor
each pair of ModeDeclarations referenced by a SwcModeSwitchEvent with at-
tribute activation set to onTransition a ModeTransition shall be defined in
the corresponding direction (i.e. from exitedMode to enteredMode). This constraint
shall only apply at the time when the RTE is generated if the respective
ModeDeclarationGroup defines at least one modeTransition.c()
[TPS_SWCT_01379] AtomicSwComponentType can indicate whether an
RTEEvent that starts an associated RunnableEntity is disabled in a certain
mode dUsing the second mechanism, the AtomicSwComponentType can indicate
whether an RTEEvent that starts an associated RunnableEntity is disabled in a
certain mode.
That is, RTEEvents without an association in the role disabledMode are processed
regularly according to their definition.
RTEEvents with the optional association disabledMode have the additional limitation
that the associated RunnableEntity is not started when the ModeDeclaration
referenced as disabledMode is active.c(RS_SWCT_03110)
The mechanisms discussed so far have to be applied for the SwcInternalBehav-
ior on the receiver side of mode switches. Since mode switches are received via
PortPrototypes the following constraints apply:
[TPS_SWCT_01380] Mode management behavior on the sender side dOn the
sender side, a RunnableEntity shall have ModeSwitchPoints that eventually as-
sociate a RunnableEntity with the specific ModeDeclarationGroups which it
manages.c(RS_SWCT_03110)
For more information, please refer to Figure 9.5.
AtpPrototype
ModeDeclarationGroupPrototype
+modeGroup 0..1
«instanceRef»
[TPS_SWCT_01381] Read the currently active mode dFor Mode Manager and
Mode User it might additionally be required to read the currently active mode. For
that purpose, a RunnableEntity that requires read-access to the ModeDeclara-
tionGroupPrototype’s current mode has to define a ModeAccessPoint.c(RS_-
SWCT_03110)
Class ModeAccessPoint
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::ModeDeclarationGroup
Note A ModeAccessPoint is required by a RunnableEntity owned by a Mode Manager or Mode User. Its
semantics implies the ability to access the current mode (provided by the RTE) of a ModeDeclaration
GroupPrototype’s ModeDeclarationGroup.
Base ARObject
Attribute Type Mult. Kind Note
ident ModeAccessPointIdent 0..1 aggr The aggregation in the role ident provides the ability to
make the ModeAccessPoint identifiable.
From the semantical point of view, the ModeAccessPoint
is considered a first-class Identifiable and therefore the
aggregation in the role ident shall always exist (until it
may be possible to let ModeAccessPoint directly inherit
from Identifiable).
Stereotypes: atpIdentityContributor
Tags:xml.sequenceOffset=-100
modeGroup ModeDeclarationGroup 0..1 iref The mode declaration group that is accessed by this
Prototype runnable.
Tags:xml.typeElement=true
InstanceRef implemented by:ModeGroupInAtomicSwc
InstanceRef
Table 9.5: ModeAccessPoint
lastMode The last mode applicable before the event shall be assumed.
defaultMode This represents the ability to specify a dedicated mode that shall be
made applicable. The identified ModeDeclaration could be identical to the
ModeDeclarationGroup.initialMode but it can just as well be any other
ModeDeclaration defined in the context of the enclosing ModeDeclara-
tionGroup.
c(RS_SWCT_03110)
[TPS_SWCT_01532] The role of ModeErrorBehavior.defaultMode dThe at-
tribute ModeErrorBehavior.defaultMode shall be used to identify the particular
ModeDeclaration if ModeErrorBehavior.errorReactionPolicy is set to de-
faultMode.c(RS_SWCT_03110)
[constr_1263] Existence of ModeErrorBehavior.defaultMode dThe optional at-
tribute ModeErrorBehavior.defaultMode shall exist if the value of the attribute
ModeErrorBehavior.errorReactionPolicy is set to defaultMode.
This rule shall be imposed at the time when the RTE is generated.c()
Please note that the modeling of the ModeErrorBehavior is depicted in Figure 7.10.
[TPS_SWCT_01533] ModeDeclarationGroup.initialMode shall be assumed
in the absence of ModeDeclarationGroup.modeManagerErrorBehavior dIf the
attribute ModeDeclarationGroup.modeManagerErrorBehavior is not defined it
shall be assumed that the ModeDeclarationGroup.initialMode becomes appli-
cable in case of the mode manager getting out of sync with a mode user (because the
partition of the mode user has been terminated).c(RS_SWCT_03110)
[TPS_SWCT_01534] ModeDeclarationGroup.initialMode shall be assumed
in the absence of ModeDeclarationGroup.modeUserErrorBehavior dIf the at-
tribute ModeDeclarationGroup.modeUserErrorBehavior is not defined it shall
be assumed that the ModeDeclarationGroup.initialMode becomes applicable
in case of the mode user getting out of sync with a mode manager (because the parti-
tion of the mode manager has been terminated).c(RS_SWCT_03110)
Class ModeErrorBehavior
Package M2::AUTOSARTemplates::CommonStructure::ModeDeclaration
Note This represents the ability to define the error behavior in the context of mode handling.
Base ARObject
Attribute Type Mult. Kind Note
defaultMode ModeDeclaration 0..1 ref This represents the ModeDeclaration that is considered
the error mode in the context of the enclosing Mode
DeclarationGroup.
errorReaction ModeErrorReaction 0..1 attr This represents the ability to define the policy in terms of
Policy PolicyEnum which default model shall apply in case an error occurs.
[TPS_SWCT_01535] Mode manager reacts on mode error dIf the mode manager
is getting out of sync with a mode user (because the partition of the mode user has
been terminated) or vice versa (because the partition of the mode manager has been
terminated) it shall be possible for the mode manager to react on such an event.
For this purpose the formal SwcModeManagerErrorEvent is defined that can be
taken to e.g. trigger the execution of a RunnableEntity in response to an error with
respect to mode switch communication.c(RS_SWCT_03110)
Class SwcModeManagerErrorEvent
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::RTEEvents
Note This event is raised when an error occurred during the handling of the referenced ModeDeclarationGroup
Prototype.
Base ARObject, AbstractEvent, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, Multilanguage
Referrable, RTEEvent, Referrable
Attribute Type Mult. Kind Note
modeGroup ModeDeclarationGroup 0..1 iref This represents the ModeDeclarationGroupPrototype for
Prototype which this SwcModeManagerErrorEvent is raised in case
of an error.
InstanceRef implemented by:PModeGroupInAtomic
SwcInstanceRef
However, there is one additional caveat to observe in this case. This affects the imple-
mentation of error behavior in case that several mode users are connected to a mode
manager.
[TPS_SWCT_01536] Coherent behavior of all mode users in case of errors in the
mode switch communication dThe behavior in case of errors with the communication
of mode switches needs to be coherent for all connected mode users especially if the
individual SwConnectors are legitimized by the existence of a PortInterfaceMap-
ping.c(RS_SWCT_03110)
[TPS_SWCT_01541] Preferential selection of modeUserErrorBehavior dThe
definition of mode error behavior on the provided side of shall be considered domi-
nant over the definition of mode error behavior on the required side.
This means that a ModeSwitchInterface.modeGroup.type.modeUserErrorBe-
havior used to type an AbstractProvidedPortPrototype shall be considered
dominant over the definition of a corresponding modeUserErrorBehavior and de-
fined in the context of an AbstractRequiredPortPrototype.c(RS_SWCT_03110)
[TPS_SWCT_01542] Preferential selection of modeManagerErrorBehavior dThe
definition of mode error behavior on the provided side of shall be considered dominant
over the definition of mode error behavior on the required side.
This means that a ModeSwitchInterface.modeGroup.type.modeManager-
ErrorBehavior used to type an AbstractProvidedPortPrototype shall be
considered dominant over the definition of a corresponding modeManagerError-
Behavior defined in the context of an AbstractRequiredPortPrototype.c(RS_-
SWCT_03110)
The consequence of [TPS_SWCT_01541] and [TPS_SWCT_01542] is that the mode
manager shall be considered the master of the definition of mode error behavior.
Please note that the statements made in [TPS_SWCT_01541] is further underlined by
[SWS_Rte_06795] and the statement made by [TPS_SWCT_01542] is further under-
lined by [SWS_Rte_06795].
The details of how the run-time behavior of mode manager and mode user shall look
like in the event of the mode manager getting out of sync with a mode user (because the
partition of the mode user has been terminated) or vice versa (because the partition
of the mode manager has been terminated) as well as the applicable RTE APIs are
explained in [2].
To get the complete picture, it should be noted that also the concepts of PortGroups
(see 4.6) and ServiceProxySwComponentType (see 11.4) have a semantical rela-
tionship to mode management, though this is not expressed via relations in the meta-
model.
Component and Port
AtpBlueprintable +port ARElement
AtpPrototype AtpBlueprint
PortPrototype 0..* «atpVariation,atpSplitable» AtpBlueprintable
AtpType
SwComponentType
AbstractProvidedPortPrototype AbstractRequiredPortPrototype
«isOfType»
«isOfType» «isOfType» «atpVariation,atpSplitable»
+providedInterface
+requiredInterface
AbstractEvent AtpStructureElement
+startOnEvent
AtpStructureElement ExecutableEntity
RTEEvent 0..1 RunnableEntity
ModeSwitchInterface
«instanceRef»
+modeGroup 0..1
AtpPrototype
SwcModeSwitchEvent ModeSwitchedAckEvent
ModeDeclarationGroupPrototype
«isOfType» «instanceRef»
0..1 ModeDeclaration
+type {redefines atpType} +mode 0..2 {ordered} +disabledMode 0..*
AtpStructureElement
Referrable
ModeTransition
10.1 Introduction
During the design of embedded systems there is one crucial point where the hard-
ware and software have to be related. In AUTOSAR the ECU Resource Template
describes the provided hardware resources.
On the other hand, the Software Component Template describes software gen-
erally without specific hardware in mind. But there are some places where both have
to meet and fit.
One interface between hardware and software is discussed in the memory and execu-
tion time section of [6]. In this chapter the overall system view of the interface between
sensors/actuators and software is described and the consequences for the Software
Component Template are derived.
The signal1 flow from a hardware to software and vice versa will be described in the
following sections.
A sensor2 is converting a physical value (1) in Figure 10.2 (e.g. temperature, force, light
intensity) into an electrical signal (2) which can be either a current or a voltage.
Inside the ECU generally there will be some electronics to enhance the electrical signal
provided by the sensor. In AUTOSAR this is called ECU Electronics. This electron-
ics device is also responsible for the conversion of the electrical signal into a micro-
controller compatible form (3), usually a voltage.
After the electrical signal has been enhanced and converted it will be captured by the
micro-controller. This can either be done by a simple digital input, an analogue to digital
converter or maybe a pulse-width demodulation module. Now the electrical signal is
available as a software data value (4).
This signal flow is sketched in the top part of Figure 10.2.
The interaction shown in Figure 10.2 shows an exemplary scenario. The usage of
ClientServerInterface is just an example for the interaction pattern.
This signal chain is represented one-to-one in the AUTOSAR software architecture and
depicted in the lower part of Figure 10.2.
In an implementation of AUTOSAR, only the micro-controller Abstraction (MCAL) has
direct access to the peripheral hardware. This layer is going to be standardized and all
hardware access should go through this layer. The idea of the AUTOSAR signal flow
is to map the hardware to the corresponding software modules.
1
The term “signal” is not going to be used here at its own but more specific terms will be used for the
different abstractions of signals at the different stages of the signal flow.
2
For the sake of simplicity this discussion is limited to the sensor aspects. Nevertheless, the same
applies also for actuators.
So if an electrical current is the input to the micro-controller peripheral, the MCAL will
deliver a data value that represents this current. As the ECU Electronics has enhanced
and converted the electrical signal prior to the micro-controller, the corresponding soft-
ware entity is reversing this conversion. This is performed in the ECU Abstraction layer.
So if the input to the ECU is an electrical current and the ECU Electronics has con-
verted this current into a voltage (from 2 to 3), the ECU Abstraction will convert the
data value voltage into an AUTOSAR signal representing a current (from 4 to 5). This
AUTOSAR signal represents the actual current that was provided by the sensor (2).
Now the first step in the conversion has to be reversed: the sensor has converted a
physical value into an electrical signal. And so the Sensor Software Component has
to reverse this again. The Sensor Software Component will read the AUTOSAR signal
representing the electrical value and transform it into an AUTOSAR signal representa-
tion of the physical value (from 5 to 6).
Now this physical value is available on the RTE and can be consumed or read by other
SW-Components. Although the interface between the ECU Abstraction and the Sen-
sor Software Component is also an AUTOSAR interface and could be routed through
some communication-bus, it will not be practical to separate the ECU Abstraction and
the corresponding SensorActuatorSwComponentType due to potentially high com-
munication effort.
In Figure 10.3 a complete signal flow from a sensor input to an actuator output is
shown.
Physical Interface Electrical Interface Electrical Interface
Isensor [0..200mA] UECU [0..5V]
e.g. ECU µC
Car velocity Sensor Hardware
Electronics Peripherals
The interaction shown in Figure 10.3 shows an exemplary scenario. The usage of
ClientServerInterface is just an example for the interaction pattern.
In the next section the interfaces between the involved software modules are dis-
cussed.
Since the AUTOSAR standard is designed with the focus on the integration of software-
components coming from different contractors, the interfaces between the different
software-components obviously have to be compatible.
In the case of the sensors and actuators the interface is gathered in the ECU Abstrac-
tion. For each sensor and actuator there is one AUTOSAR PortPrototype that rep-
resents the AUTOSAR Signal that is delivered by the sensor or the AUTOSAR Signal
that is consumed by the actuator. This relationship is depicted in Figure 10.4.
The interaction shown in Figure 10.4 shows an exemplary scenario. The usage of
ClientServerInterface is just an example for the interaction pattern.
Each sensor and actuator has an AUTOSAR PortPrototype at the ECU Abstraction.
Connected to this port is the SensorActuatorSwComponentType.
The SensorActuatorSwComponentType has one PortPrototype (i.e. IF_2) to
the ECU Abstraction (which provides the values via IF_1) where it gets the AUTOSAR
signals from the hardware, and one PortPrototype (i.e. IF_3) to AtomicSwCompo-
nentTypes where it provides the actual physical value to the rest of AUTOSAR on the
RTE.
In addition, the Interfaces between the ECU Abstraction and the SensorActuator-
SwComponentType have to be compatible like defined in chapter 6.
10.4 Sensors/Actuators
In the layered software architecture described in [5] each hardware sensor/actuator is
coupled to a SensorActuatorSwComponentType (see Figure 10.5).
[TPS_SWCT_01047] Reference from the software representation of a sensor/ac-
tuator to the actual hardware element dSince the Software Component Tem-
plate is going to be used to describe the SensorActuatorSwComponentType as
well, there is also a reference needed from the software representation of a sensor/ac-
tuator to the actual hardware element described in the ECU Resource description.c
(RS_SWCT_02080, RS_SWCT_03090)
«atpVariation,atpSplitable» «atpSplitable»
0..* +hardwareElement +internalBehavior 0..1 0..* +internalBehavior
Referrable InternalBehavior InternalBehavior
HwDescriptionEntity SwcInternalBehavior BswInternalBehavior
ARElement ARElement
HwType AtpStructureElement
SwcBswMapping
«atpVariation,atpSplitable» «atpSplitable»
+hardwareElement 0..* +internalBehavior 0..1 0..* +internalBehavior
Referrable InternalBehavior InternalBehavior
HwDescriptionEntity SwcInternalBehavior BswInternalBehavior
ARElement ARElement
HwType AtpStructureElement
SwcBswMapping
4
Class BswInternalBehavior
bswPerInstance BswPerInstance * aggr Policy for a arTypedPerInstanceMemory The policy
MemoryPolicy MemoryPolicy selects the options of the Schedule Manager API
generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=bswPerInstanceMemoryPolicy, bswPer
InstanceMemoryPolicy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
clientPolicy BswClientPolicy * aggr Policy for a requiredClientServerEntry. The policy selects
the options of the Schedule Manager API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=clientPolicy, clientPolicy.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
distinguished BswDistinguished * aggr Indicates an abstract partition context in which the
Partition Partition enclosing BswModuleEntity can be executed.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=distinguishedPartition.shortName,
distinguishedPartition.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=60
entity BswModuleEntity * aggr A code entity for which the behavior is described
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=entity.shortName, entity.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=5
event BswEvent * aggr An event required by this module behavior.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=event.shortName, event.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=10
exclusiveArea BswExclusiveArea * aggr Policy for an ExclusiveArea in this BswInternalBehavior.
Policy Policy The policy selects the options of the Schedule Manager
API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=exclusiveAreaPolicy, exclusiveArea
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
includedData IncludedDataTypeSet * aggr The includedDataTypeSet is used by a basic software
TypeSet module for its implementation.
Stereotypes: atpSplitable
Tags:atp.Splitkey=includedDataTypeSet
includedMode IncludedMode * aggr This aggregation represents the included Mode
Declaration DeclarationGroupSet DeclarationGroups
GroupSet
Stereotypes: atpSplitable
Tags:atp.Splitkey=includedModeDeclarationGroupSet
5
4
Class BswInternalBehavior
internal BswInternalTriggering * aggr An internal triggering point.
TriggeringPoint Point
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=internalTriggeringPoint.shortName, internal
TriggeringPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=2
internal BswInternalTriggering * aggr Policy for an internalTriggeringPoint in this BswInternal
TriggeringPoint PointPolicy Behavior.. The policy selects the options of the Schedule
Policy Manager API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=internalTriggeringPointPolicy, internal
TriggeringPointPolicy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
modeReceiver BswModeReceiver * aggr Implementation policy for the reception of mode switches.
Policy Policy
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeReceiverPolicy, modeReceiver
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=25
modeSender BswModeSenderPolicy * aggr Implementation policy for providing a mode group.
Policy
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeSenderPolicy, modeSender
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=20
parameterPolicy BswParameterPolicy * aggr Policy for a perInstanceParameter in this BswInternal
Behavior. The policy selects the options of the Schedule
Manager API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=parameterPolicy, parameterPolicy.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
perInstance ParameterData * aggr Describes a read only memory object containing
Parameter Prototype characteristic value(s) needed by this BswInternal
Behavior. The role name perInstanceParameter is chosen
in analogy to the similar role in the context of SwcInternal
Behavior.
In contrast to constantMemory, this object is not allocated
locally by the module’s code, but by the BSW Scheduler
and it is accessed from the BSW module via the BSW
Scheduler API. The main use case is the support of
software emulation of calibration data.
The aggregation is subject to variability with the purpose
to support implementation variants.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceParameter.shortName, per
InstanceParameter.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=45
5
4
Class BswInternalBehavior
receptionPolicy BswDataReception * aggr Data reception policy for inter-partition and/or inter-core
Policy communication.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=receptionPolicy, receptionPolicy.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=55
releasedTrigger BswReleasedTrigger * aggr Policy for a releasedTrigger. The policy selects the
Policy Policy options of the Schedule Manager API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=releasedTriggerPolicy, releasedTrigger
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
schedulerName BswSchedulerName * aggr Optional definition of one or more prefixes to be used for
Prefix Prefix the BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=schedulerNamePrefix.shortName, scheduler
NamePrefix.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=50
sendPolicy BswDataSendPolicy * aggr Policy for a providedData. The policy selects the options
of the Schedule Manager API generation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=sendPolicy, sendPolicy.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
service BswService * aggr Defines the requirements on AUTOSAR Services for a
Dependency Dependency particular item.
The aggregation is subject to variability with the purpose
to support the conditional existence of ServiceNeeds.
The aggregation is splitable in order to support that
ServiceNeeds might be provided in later development
steps.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=serviceDependency.ident.shortName,
serviceDependency.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=40
triggerDirect BswTriggerDirect * aggr Specifies a trigger to be directly implemented via OS
Implementation Implementation calls.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=triggerDirectImplementation, triggerDirect
Implementation.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=15
variationPoint VariationPointProxy * aggr Proxy of a variation points in the C/C++ implementation.
Proxy
Stereotypes: atpSplitable
Tags:atp.Splitkey=variationPointProxy.shortName
11 Services
Note that most of these steps are performed by tools and the model elements being
created in these steps are rather specific to Service configuration and are not to be
modeled manually within AUTOSAR authoring tools.
In particular, the following requirements apply:
• [TPS_SWCT_01399] Dependency is modeled by aggregating required and
provided PortPrototypes dThe dependency of an AtomicSwComponent-
Type (or more precisely, one of its non-abstract derived meta-classes) from an
AUTOSAR Service is modeled by aggregating required and provided Port-
Prototypes.c()
[TPS_SWCT_01400] PortInterface selected from the set of standard-
ized Service Interfaces dThe PortInterface being implemented by the
PortPrototypes needs to be one of a number of standardized Service In-
terfaces which is indicated by having its isService attribute set to true and
is (via several levels of indirection) finally referenced by ServiceNeeds.c()
Additionally, the software components and Basic Software Modules shall
specify ServiceNeeds containing further input information for the later Ser-
vice configuration step.
• [TPS_SWCT_01401] Form a top-level RootSwCompositionPrototype
dWhen defining a software system, the AtomicSwComponentType is used in
the form of SwComponentPrototypes within a CompositionSwComponent-
Type. In this step, the non-service ports of all required interfaces are being con-
nected using AssemblySwConnectors and DelegationSwConnectors in or-
der to eventually form a top-level RootSwCompositionPrototype which can
be referenced in an AUTOSAR System.c()
• [TPS_SWCT_01402] Mapping of all AtomicSwComponentType instances
to EcuInstances dIn System Configuration Phase, the mapping of all
AtomicSwComponentType instances to EcuInstances is done (for the speci-
fication of EcuInstance see [10]). The ServiceNeeds may be used by tools
to check for available resources on the targeted ECUs.c()
• [TPS_SWCT_01404] Creation of the Ecu Extract dThe ECU Extract is ex-
tracted from the System Configuration for each ECU. As explained in the
AUTOSAR System Template [10], this contains an ECU-centric view onto the
system description.
This includes a reduced version of the system’s RootSwCompositionProto-
type where SwComponentPrototypes not being mapped to the ECU are being
left out and all Compositions are stripped off, so that in the ECU Extract only
one instance of CompositionSwComponentType remains which aggregates all
SwComponentPrototypes on the ECU in a flat manner.c()
1
This step does in general not require copying any attributes or elements aggregated in BswImple-
mentation into the generated instance of SwcImplementation since the only mandatory information
for the RTE configuration is the reference from SwcImplementation to the selected SwcInternal-
Behavior.
Class SwcBswMapping
Package M2::AUTOSARTemplates::CommonStructure::SwcBswMapping
Note Maps an SwcInternalBehavior to an BswInternalBehavior. This is required to coordinate the API
generation and the scheduling for AUTOSAR Service Components, ECU Abstraction Components and
Complex Driver Components by the RTE and the BSW scheduling mechanisms.
Tags:atp.recommendedPackage=SwcBswMappings
Base ARElement, ARObject, AtpClassifier , AtpFeature, AtpStructureElement, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
bswBehavior BswInternalBehavior 0..1 ref The mapped BswInternalBehavior
runnable SwcBswRunnable * aggr A mapping between a pair of SWC and BSW runnables.
Mapping Mapping
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
swcBehavior SwcInternalBehavior 0..1 ref The mapped SwcInternalBehavior.
synchronized SwcBswSynchronized * aggr A pair of SWC and BSW mode group prototypes to be
ModeGroup ModeGroupPrototype synchronized by the scheduler.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
synchronized SwcBswSynchronized * aggr A pair of SWC and BSW Triggers to be synchronized by
Trigger Trigger the scheduler.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
«isOfType»
1 ARElement
+softwareComposition AtomicSwComponentType
{redefines atpType} AtpBlueprint
AtpPrototype AtpBlueprintable
CompositionSwComponentType +component
«isOfType» +type AtpType
SwComponentPrototype
«atpVariation,atpSplitable»0..* SwComponentType
0..1
{redefines atpType}
«atpVariation,atpSplitable» ServiceSwComponentType
«atpVariation,atpSplitable»
+connector 0..* +port 0..*
AtpStructureElement AtpBlueprintable
SwConnector AtpPrototype
PortPrototype
+requester
AssemblySwConnector AbstractRequiredPortPrototype
«instanceRef»
0..1
+provider
AbstractProvidedPortPrototype
«instanceRef» 0..1
2
Thereby the previously existing constraint 1127 becomes invalid.
Class ServiceSwComponentType
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note ServiceSwComponentType is used for configuring services for a given ECU. Instances of this class are
only to be created in ECU Configuration phase for the specific purpose of the service configuration.
Tags:atp.recommendedPackage=SwComponentTypes
Base ARElement, ARObject, AtomicSwComponentType, AtpBlueprint, AtpBlueprintable, AtpClassifier , Atp
Type, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable, Sw
ComponentType
Attribute Type Mult. Kind Note
– – – – –
Table 11.3: ServiceSwComponentType
VFB
ECU1 ECU2
RTE1 RTE2
BSW1 BSW2
Class ServiceProxySwComponentType
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note This class provides the ability to express a software-component which provides access to an internal
service for remote ECUs. It acts as a proxy for the service providing access to the service.
An important use case is the request of vehicle mode switches: Such requests can be communicated via
sender-receiver interfaces across ECU boundaries, but the mode manager being responsible to perform
the mode switches is an AUTOSAR Service which is located in the Basic Software and is not visible in
the VFB view. To handle this situation, a ServiceProxySwComponentType will act as proxy for the mode
manager. It will have R-Ports to be connected with the mode requestors on VFB level and Service-Ports
to be connected with the local mode manager at ECU integration time.
Apart from the semantics, a ServiceProxySwComponentType has these specific properties:
• A prototype of it can be mapped to more than one ECUs in the system description.
• Exactly one additional instance of it will be created in the ECU-Extract per ECU to which the
prototype has been mapped.
• For remote communication, it can have only R-Ports with sender-receiver interfaces and 1:n
semantics.
• There shall be no connectors between two prototypes of any ServiceProxySwComponentType.
Tags:atp.recommendedPackage=SwComponentTypes
Base ARElement, ARObject, AtomicSwComponentType, AtpBlueprint, AtpBlueprintable, AtpClassifier , Atp
Type, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable, Sw
ComponentType
Attribute Type Mult. Kind Note
– – – – –
Table 11.4: ServiceProxySwComponentType
11.5.1 Introduction
The AUTOSAR Architecture defines two alternatives how a software component can
access non-volatile memory.
• The first option is that the software component defines in its InternalBehavior
a PerInstanceMemory and a NvBlockNeeds referring to the PerInstance-
Memory via a RoleBasedDataAssignment.
In this case the NVRAM Block is exclusively accessed by this software compo-
nent and the NvM [35]. Therefore, the nv data is encapsulated inside the software
component and can not be accessed directly by other software components.
The PerInstanceMemory can be typed with AutosarDataTypes in the case
of arTypedPerInstanceMemory or with C data types in the case of perIn-
stanceMemory. For further information see section 7.7 and 13.
• The second option is that the software component uses communication based
on PortPrototypes to access nv data provided by a NvBlockSwComponent-
Type.
In this case it is possible that nv data used by different AtomicSwComponent-
Types is packed in one larger NVRAM Block to reduce the NVRAM Block man-
agement overhead or that the same nv data used by several software compo-
nents with a reduced RAM overhead. The nv data of a NvBlockSwComponent-
Type is typed with AutosarDataTypes.
More details regarding particular scenarios of interacting with the NvM [35] can be
found in section 13.2.
11.5.2 NvBlockComponent
0..*
Class NvDataInterface
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
5
4
Class NvDataInterface
Note A non volatile data interface declares a number of VariableDataPrototypes to be exchanged between non
volatile block components and atomic software components.
Tags:atp.recommendedPackage=PortInterfaces
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement,
DataInterface, Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
Attribute Type Mult. Kind Note
nvData VariableDataPrototype * aggr The VariableDataPrototype of this nv data interface.
3
Note that it is assumed that only a subset of meta-classes that inherit from AtomicSwComponent-
Type will actually apply for the definition of initial values for nvData. Most likely the Application-
SwComponentType and the SensorActuatorSwComponentType will be candidates for using this
feature but it will obviously not be reasonable for e.g. NvBlockSwComponentType.
Note: In case of nv data which is read and written and shared between several SwCom-
ponentPrototypes the NvBlockSwComponentType establishes a not directly ob-
vious kind of communication.
ARElement AtpBlueprintable !
AtpBlueprint +port AtpPrototype
AtpBlueprintable «atpVariation,atpSplitable»
0..* PortPrototype !"#
AtpType
SwComponentType ! $ %%
0..1 !
+portPrototype
&'( (
DataInterface
RoleBasedPortAssignment
AtomicSwComponentType
NvDataInterface
+assignedPort 0..*
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+internalBehavior 0..1
With respect to the completeness of table 11.7 (which intentionally doesn’t contain
a remark regarding the value of cyclicWritingPeriod), it should be noted that
(according to [TPS_SWCT_01585]) the value of NvBlockDescriptor.nvBlock-
Needs.cyclicWritingPeriod shall be ignored in favor of NvBlockDescriptor.
timingEvent.period.
NvBlockSwComponentType
ApplicationSwComponentType
Mapping
Read Access
ramBlock
B RunnableEntity
A
ApplicationSwComponentType
Write Access
RunnableEntity
C
Figure 11.6: Example invalid connection between software-components (a)
NvBlockSwComponentType
ApplicationSwComponentType
Mapping
Read Access
RunnableEntity
ramBlock
B A
ApplicationSwComponentType
Write Access
RunnableEntity
C
Figure 11.7: Example invalid connection between software-components (b)
ApplicationSwComponentType
Write Access
Read Access
RunnableEntity
A
Connector
NvBlockSwComponentType
Mapping
ramBlock
B
Figure 11.8: Example invalid connection between software-components (c)
11.5.5 NvBlockDescriptor
4
Class NvBlockDescriptor
instantiation InstantiationDataDef * aggr The purpose of InstantiationDataDefProps are the
DataDefProps Props refinement of some data def properties of individual
instantiations within the context of a NvBlockSw
ComponentType.
The aggregation of InstantiationDataDefProps is subject
to variability with the purpose to support the conditional
existence of ports, component internal memory objects
and those attributes.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
modeSwitch ModeSwitchEvent * aggr This represents the collection of ModeSwitchEvent
EventTriggered TriggeredActivity TriggeredActivities related to the enclosing NvBlock
Activity Descriptor.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeSwitchEventTriggeredActivity, mode
SwitchEventTriggeredActivity.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
nvBlockData NvBlockDataMapping * aggr Defines the mapping between the VariableData
Mapping Prototypes in the NvBlockComponents ports and the
VariableDataPrototypes of the RAM Block.
The aggregation of NvBlockDataMapping is subject to
variability with the purpose to support the conditional
existence of nv data ports.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
nvBlockNeeds NvBlockNeeds 0..1 aggr Specifies the abstract needs on the configuration of the
NVRAM Manager for the single NVRAM Block described
by this NvBlockDescriptor.
In addition, it may define requirements for writing
strategies in an implementation of an NvBlockSw
ComponentType by the RTE.
Please note that the attributes nDataSets and nRom
Blocks are not relevant for this aggregation because the
RTE will allocate just one block anyway. In a different
context, however, they do make sense.
ramBlock VariableDataPrototype 0..1 aggr Defines the RAM Block of the NVRAM Block provided by
NvBlockSwComponentType.
romBlock ParameterData 0..1 aggr Defines the ROM Block of the NVRAM Block provided by
Prototype NvBlockSwComponentType.
supportDirty Boolean 0..1 attr Specifies whether calling of NvM functions for writing and/
Flag or status control of potentially modified RAM Blocks to NV
memory shall be controlled by the RTE.
timingEvent TimingEvent 0..1 ref this reference can be taken to identify the TimingEvent to
be used by the RTE for implementing a cyclic writing
strategy for this block
writingStrategy RoleBasedData * aggr This attribute allows for assigning a specific writing
Assignment strategy for an incoming AutosarDataPrototype.
+nvBlockDescriptor 0..*
AtpStructureElement
Identifiable
NvBlockDescriptor
• Write data cyclically. This use case requires the existence of attribute NvBlock-
Descriptor.nvBlockNeeds.storeCyclic with the value true and also at-
tribute NvBlockDescriptor.nvBlockNeeds.cyclicWritingPeriod needs
to exist and have a reasonable value.
In the context of using the attribute NvBlockDescriptor.nvBlockNeeds.
cyclicWritingPeriod the constraints [constr_1308] and [constr_1309] apply.
• Write data immediately. This means that data send to the NvBlockSwCompo-
nentType will be written immediately to NVRAM storage.
This use case corresponds to setting the value of attribute NvBlockDescrip-
tor.nvBlockNeeds.storeImmediate to the value true.
• Write on emergency. With this setting, data shall be written to NVRAM storage
if the ECU fails in some way.
This use case corresponds to setting the value of attribute NvBlockDescrip-
tor.nvBlockNeeds.storeEmergency to true.
As explained in [TPS_SWCT_01589], setting the value of this attribute is not
sufficient to achieve the intended semantics.
• Write at shutdown. Here, the data is written to NVRAM storage when the ECU
shuts down.
This use case corresponds to setting the value of attribute NvBlockDescrip-
tor.nvBlockNeeds.storeAtShutdown to true.
• Write on mode switch. Here, the data is written to NVRAM in response to a
mode switch configured to trigger the writing.
This use case corresponds to the existence of attribute NvBlockDescriptor.
modeSwitchEventTriggeredActivity.
• Write on change. Here, the data is written to NVRAM if the value is different than
the respective value in the ramMirror.
This use case corresponds to setting the value of attribute NvBlockDescrip-
tor.nvBlockNeeds.storeOnChange to true.
c(RS_SWCT_03225)
Please refer to [TPS_SWCT_01587] and Figure 11.10 for more information about how
the use case to write data cyclically can be configured.
Please refer to [TPS_SWCT_01588] and Figure 11.11 for more information about how
the use case to write data immediately can be configured.
Of course, the actual implementation of the different writing strategies goes beyond
setting the value of attributes and requires the existence of dedicated RunnableEn-
titys in the SwcInternalBehavior of the enclosing NvBlockSwComponentType
that are triggered in response to RTEEvents applicable for the particular use case.
InternalBehavior AbstractEvent
SwcInternalBehavior +event AtpStructureElement
RTEEvent
+ handleTerminationAndRestart: HandleTerminationAndRestartEnum [0..1] «atpVariation,atpSplitable»
0..*
+ supportsMultipleInstantiation: Boolean [0..1]
«atpVariation,atpSplitable»
+runnable 0..*
+startOnEvent
AtpStructureElement +timingEvent 0..1
ExecutableEntity 0..1
RunnableEntity TimingEvent
SwComponentType AbstractRequiredPortPrototype
AtomicSwComponentType RPortPrototype
«isOfType»
«atpVariation,atpSplitable»
0..1
NvBlockSwComponentType
+requiredInterface {redefines atpType}
ARElement
AtpBlueprint
0..1 +internalBehavior AtpBlueprintable
InternalBehavior AtpType
SwcInternalBehavior PortInterface
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
DataInterface SenderReceiverInterface
+runnable 0..*
+event 0..*
AtpStructureElement
ExecutableEntity AbstractEvent
RunnableEntity AtpStructureElement +dataElement 0..*
+startOnEvent RTEEvent
+ canBeInvokedConcurrently: AutosarDataPrototype
0..1 DataReceivedEvent +data
Boolean [0..1] VariableDataPrototype
+ symbol: CIdentifier [0..1] «instanceRef» 0..1
RTEEvent
ModeSwitchEventTriggeredActivity
+swcModeSwitchEvent SwcModeSwitchEvent
+ role: Identifier [0..1]
0..1 + activation: ModeActivationKind [0..1]
Figure 11.12: Usage of mode switch notification for the activation of a write-procedure
of nv data
A use case might exist where (potentially in addition to a cyclic writing strategy) multiple
event-based writing strategies to NvRam exist at the same time.
Writing strategies are typically implemented by means of different RunnableEntitys
that need to be triggered by the arrival of data at the NvBlockSwComponentType. In
this case, however, it is necessary to be able to assign the relation between incoming
data and the RunnableEntity that applies the fitting writing strategy.
In the example scenario depicted in Figure 11.13, two dataElements are received
by the NvBlockSwComponentType. One dataElement shall be associated with the
writing strategy to store at shutdown and the other dataElement shall be associated
with an immediate storage.
Two DataReceivedEvents exist that can be taken to trigger RunnableEntitys. But
without further formal specification, it is up to speculation which DataReceivedEvent
shall be associated with which RunnableEntity.
To remove this degree of uncertainty, it is possible to use standardized values for the
attribute RoleBasedDataAssignment.role and let the RoleBasedDataAssign-
ment itself refer to the respective dataElement.
NvBlockSwComponentType
NvBlockDataMapping DE1
"X"
DataReceivedEvent
"X"
? ?
NvBlockDescriptor
"nvBlock" RunnableEntity RunnableEntity
"Immediate" "Shutdown"
? ?
NvBlockNeeds DataReceivedEvent
"nvBlock" "Y"
storeAtShutdown=True
storeImmediately=True
DE1
NvBlockDataMapping
"Y"
Figure 11.13: Existence of several event-based writing strategies for the same NvBlock-
Descriptor
The approach is sketched in Figure 11.14 and its application to the depicted scenario
is sketched in Figure 11.15.
AtpStructureElement
RoleBasedDataAssignment AutosarVariableRef
Identifiable
+writingStrategy +usedDataElement
NvBlockDescriptor + role: Identifier [0..1]
0..* 0..1
+ supportDirtyFlag: Boolean [0..1]
NvBlockSwComponentType
RunnableEntity
DataReceivedEvent
"Shutdown"
"X"
NvBlockDataMapping DE1
"X"
RoleBasedDataAssignment
role="storeAtShutdown"
NvBlockDescriptor
"nvBlock"
RoleBasedDataAssignment
role="storeImmediately"
DE1
NvBlockNeeds NvBlockDataMapping
"nvBlock" "Y"
storeAtShutdown=True
storeImmediately=True DataReceivedEvent
RunnableEntity
"Y"
"Immediate"
Figure 11.15: Solution for the existence of several event-based writing strategies for the
same NvBlockDescriptor
11.5.5.2 NvBlockNeeds
«enumeration» NvBlockNeeds
NvBlockNeedsReliabilityEnum
+ calcRamBlockCrc: Boolean [0..1]
noProtection + checkStaticBlockId: Boolean [0..1]
errorDetection + cyclicWritingPeriod: TimeValue [0..1]
errorCorrection + nDataSets: PositiveInteger [0..1]
+ nRomBlocks: PositiveInteger [0..1]
+ ramBlockStatusControl: RamBlockStatusControlEnum [0..1]
+ readonly: Boolean [0..1]
«enumeration» + reliability: NvBlockNeedsReliabilityEnum [0..1]
NvBlockNeedsWritingPriorityEnum + resistantToChangedSw: Boolean [0..1]
low + restoreAtStart: Boolean [0..1]
medium + selectBlockForFirstInitAll: Boolean [0..1]
+ storeAtShutdown: Boolean [0..1]
high
+ storeCyclic: Boolean [0..1]
+ storeEmergency: Boolean [0..1]
+ storeImmediate: Boolean [0..1]
«enumeration» + storeOnChange: Boolean [0..1]
NvBlockComponent:: + useAutoValidationAtShutDown: Boolean [0..1]
RamBlockStatusControlEnum + useCRCCompMechanism: Boolean [0..1]
+ writeOnlyOnce: Boolean [0..1]
api + writeVerification: Boolean [0..1]
nvRamManager + writingFrequency: PositiveInteger [0..1]
+ writingPriority: NvBlockNeedsWritingPriorityEnum [0..1]
Class NvBlockNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs on the configuration of a single NVRAM Block.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
calcRamBlock Boolean 0..1 attr Defines if CRC (re)calculation for the permanent RAM
Crc Block is required.
checkStatic Boolean 0..1 attr Defines if the Static Block Id check shall be enabled.
BlockId
cyclicWriting TimeValue 0..1 attr This represents the period for cyclic writing of NvData to
Period store the associated RAM Block.
nDataSets PositiveInteger 0..1 attr Number of data sets to be provided by the NVRAM
manager for this block. This is the total number of ROM
Blocks and RAM Blocks.
nRomBlocks PositiveInteger 0..1 attr Number of ROM Blocks to be provided by the NVRAM
manager for this block. Please note that these multiple
ROM Blocks are given in a contiguous area.
ramBlockStatus RamBlockStatusControl 0..1 attr This attribute defines how the management of the RAM
Control Enum Block status is controlled.
readonly Boolean 0..1 attr True: data of this NVRAM Block are write protected for
normal operation (but protection can be disabled)
false: no restriction
reliability NvBlockNeeds 0..1 attr Reliability against data loss on the non-volatile medium.
ReliabilityEnum
resistantTo Boolean 0..1 attr Defines whether an NVRAM Block shall be treated
ChangedSw resistant to configuration changes (true) or not (false). For
details how to handle initialization in the latter case,
please refer to the NVRAM specification.
restoreAtStart Boolean 0..1 attr Defines whether the associated RAM Block shall be
implicitly restored during startup by the basic software.
selectBlockFor Boolean 0..1 attr If this attribute is set to true the NvM shall process this
FirstInitAll block in the NvM_FirstInitAll() function.
storeAt Boolean 0..1 attr Defines whether or not the associated RAM Block shall be
Shutdown implicitly stored during shutdown by the basic software.
storeCyclic Boolean 0..1 attr Defines whether or not the associated RAM Block shall
be implicitly stored periodically by the basic software.
store Boolean 0..1 attr Defines whether or not the associated RAM Block shall
Emergency be implicitly stored in case of ECU failure (e.g. loss of
power) by the basic software. If the attribute store
Emergency is set to true the associated RAM Block shall
be configured to have immediate priority.
storeImmediate Boolean 0..1 attr Defines whether or not the associated RAM Block shall
be implicitly stored immediately during or after execution
of the according SW-C RunnableEntity by the basic
software.
storeOnChange Boolean 0..1 attr This attribute defines whether the associated RAM Block
shall be stored immediately if the written value is different
to the value stored in the associated RAM Block(s) during
or after execution of the according SW-C RunnableEntity.
useAuto Boolean 0..1 attr If set to true the RAM Block shall be auto validated during
ValidationAt shutdown phase.
ShutDown
useCRCComp Boolean 0..1 attr If set to true the CRC of the RAM Block shall be
Mechanism compared during a write job with the CRC which was
calculated during the last successful read or write job in
order to skip unnecessary NVRAM writings.
5
4
Class NvBlockNeeds
writeOnlyOnce Boolean 0..1 attr Defines write protection after first write:
true: This block is prevented from being changed/erased
or being replaced with the default ROM data after first
initialization by the software-component.
false: No such restriction.
writeVerification Boolean 0..1 attr Defines if Write Verification shall be enabled for this
NVRAM Block.
writing PositiveInteger 0..1 attr Provides the amount of updates to this block from the
Frequency application point of view. It has to be provided in "number
of write access per year".
writingPriority NvBlockNeedsWriting 0..1 attr Requires the priority of writing this block in case of
PriorityEnum concurrent requests to write other blocks.
Enumeration NvBlockNeedsReliabilityEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Reliability against data loss on the non-volatile medium. These requirements give only a relative
indication, for example on the required degree of redundancy for storage.
They do, however, not specify by which means (e.g. software or hardware) the reliability is actually
achieved.
Literal Description
errorCorrection Errors shall be corrected
Tags:atp.EnumerationLiteralIndex=0
errorDetection Errors shall be detected
Tags:atp.EnumerationLiteralIndex=1
noProtection Data need not to be handled with protection
Tags:atp.EnumerationLiteralIndex=2
11.5.5.4 NvBlockDataMapping
<<NvDataInterface>> NvBlockSwComponent
nvData:
NvBlockDescriptor
a : uint8 ramBlock:
b : uint32 {
g : { b : uint32
- h : uint16 s : {
- j : uint8 - u : uint32
- s : { - w : uint8
- u : uint32 }
- w : uint8 x : uint8
} h : uint16
a : uint8
nvData root element: j : uint8
}
- a, b, g
Example NvDataMapping
leaf element:
- a, b, h, j, u, w nvData ramBlock mapping kind
a a nvData root
sub-element which is b b nvData root
not a leaf element:
h h leaf element
- s
j j leaf element
s s sub-element
Figure 11.17: Example NvBlockDataMapping to explain the three ways to map a Vari-
ableDataPrototype to either an NvBlockDescriptor.ramBlock or a sub-element
thereof
«isOfType»
NvBlockDescriptor
RoleBasedPortAssignment
„BlockY“
role: „NvDataPort“ «isOfType»
ClientServerInterface
„NvMNotifyJobFinished“
«isOfType» ramBlock
NvBlockNeeds VariableDataPrototype
„DataX“ „ramBlockY“
SwcServiceDependency
„DataX“
RoleBasedPortAssignment
role: „NvMNotifyJobFinished“
«isOfType»
NvBlockDataMapping
RoleBasedPortAssignment
role: „NvDataPort“
NvDataInterface
NvDataDataInterface «isOfType» „DataY2“
„DataX2“
+type 0..1
{redefines atpType}
«isOfType»
«atpVariation,atpSplitable» «atpVariation»
+nvBlockDescriptor 0..* +nvData 0..* +subElement 0..* {ordered}
AtpStructureElement
+ramBlock VariableDataPrototype ImplementationDataTypeElement
Identifiable
NvBlockDescriptor 0..1
+rootVariableDataPrototype
atpContextElement}
0..1
{subsets
0..1
+rootVariableDataPrototype
AtpStructureElement
Identifiable
«atpVariation» «atpVariation» AbstractImplementationDataTypeElement
AtpInstanceRef
InstantiationDataDefProps ArVariableInImplementationDataInstanceRef
VariableInAtomicSWCTypeInstanceRef
+nvBlockDataMapping
0..* 0..1 +variableInstance
+writtenReadNvData
NvBlockDataMapping AutosarVariableRef
0..1
+nvRamBlockElement
0..1
+readNvData
0..1
+writtenNvData
0..1
In order to be able to properly assign such a notification to the content of the related
Nv Data PortPrototypes in the scope of the same SwcServiceDependency it is
necessary that the Nv Data of all these PortPrototypes is mapped to the same Nv
Block (because the notifications are created per block).
This aspect represents one motivation for the existence of [constr_1404]:
[constr_1404] All NvDataInterface.nvData of PortPrototypes in the context
of a specific SwcServiceDependency shall be mapped to the same NvBlock-
Descriptor dIn the context of a given SwcServiceDependency (which, in turn, is
A much better approach is to allow for the mapping of single bits or bit-fields inside a
DataPrototype in a PortPrototype to the ramBlock of an NvBlockDescrip-
tor directly.
For this purpose the NvBlockDataMapping provides the attributes bitfield-
TextTableMaskNvBlockDescriptor and bitfieldTextTableMaskPortPro-
totype4
AtpStructureElement +nvBlockDescriptor AtomicSwComponentType
Identifiable NvBlockSwComponentType
0..* «atpVariation,atpSplitable»
NvBlockDescriptor
«atpVariation»
+instantiationDataDefProps 0..*
«atpVariation»
+variableInstance
InstantiationDataDefProps AutosarVariableRef
0..1
+nvBlockDataMapping 0..*
+writtenReadNvData
NvBlockDataMapping
0..1
+ bitfieldTextTableMaskNvBlockDescriptor: PositiveInteger [0..1] +writtenNvData
+ bitfieldTextTableMaskPortPrototype: PositiveInteger [0..1]
0..1
+readNvData
0..1
+nvRamBlockElement
0..1
NvBlockDescriptor
NvBlockDescriptor.ramBlock
Boolean
NvBlockDataMapping
NvBlockDataMapping
bitfieldTextTableMaskNvBlockDescriptor = 0x10
bitfieldTextTableMaskNvBlockDescriptor = 0x02
bitfieldTextTableMaskPortPrototype = 0x01 RPortPrototype bitfieldTextTableMaskPortPrototype = 0x01
Boolean
Boolean
4
The alternative to this approach would have been to shift this "distillation process" into the connec-
tion between e.g. an ApplicationSwComponentType and an NvBlockSwComponentType.
Such an approach comes with considerably heavier side effects and complexity (usage in Dele-
gationSwConnectors or as part of a network connection) and is therefore not supported.
In case of notifications one common callback function is provided by the RTE for each
individual kind of notification defined by the attribute role.
The PPortPrototypes related to a given NvBlockDescriptor need to be provided
with the same value for a PortDefinedArgumentValue in order to make the soft-
ware work correctly. The provision of the PortDefinedArgumentValue is heuristic,
but with a further “trick” the reliability of this operation can be much improved.
For all NvBlockDescriptor.clientServerPort of a given NvBlockDescriptor
where attribute role is set to the value NvMService or NvMAdmin collect the Port-
Prototype if it is a PPortPrototype. The resulting collection of PortPrototypes
need to be provided with the same value (of PortDefinedArgumentValue).
In this case it is no longer necessary to explicitly model the existence of PortDe-
finedArgumentValues for these PortPrototypes since the applicable id value of
the NvM can be derived by RTE configuration.
To make this approach work the role value needs to be standardized, see [con-
str_2014].
ARElement AtpBlueprintable
AtpBlueprint +port AtpPrototype
AtpBlueprintable PortPrototype
AtpType «atpVariation,atpSplitable» 0..*
SwComponentType 0..1
+portPrototype
AtomicSwComponentType AbstractProvidedPortPrototype AbstractRequiredPortPrototype
NvBlockSwComponentType
PPortPrototype PRPortPrototype RPortPrototype
«isOfType»
«atpVariation,atpSplitable»
+providedRequiredInterface
«isOfType» «isOfType»
+nvBlockDescriptor 0..*
+providedInterface
{redefines atpType}
{redefines atpType}
{redefines atpType}
+requiredInterface
AtpStructureElement
Identifiable
NvBlockDescriptor
+ supportDirtyFlag: Boolean [0..1]
0..1
0..1
0..1
ARElement
«atpVariation» AtpBlueprint
AtpBlueprintable
+clientServerPort 0..* AtpType
PortInterface
RoleBasedPortAssignment
+ isService: Boolean [0..1]
+ role: Identifier [0..1]
+ serviceKind: ServiceProviderEnum [0..1]
+operation
AtpStructureElement
ClientServerInterface
Identifiable 0..* «atpVariation»
ClientServerOperation
11.5.6 BulkNvDataDescriptor
There is a strong use case where application software gets read-only access to data of
significant size located in non-volatile memory. The actual data is created or updated
e.g. at the end of the production line or maybe during maintenance in a garage.
AtomicSwComponentType +bulkNvDataDescriptor AtpStructureElement
+nvBlockDataMapping NvBlockDataMapping
NvBlockSwComponentType BulkNvDataDescriptor
«atpVariation,atpSplitable» 0..* «atpVariation» 0..* + bitfieldTextTableMaskNvBlockDescriptor:
PositiveInteger [0..1]
+ bitfieldTextTableMaskPortPrototype:
PositiveInteger [0..1]
0..1
+bulkNvBlock 0..1 +nvRamBlockElement +writtenNvData 0..1 +readNvData 0..1
+rootVariableDataPrototype 0..1
{subsets atpContextElement}
+autosarVariable 0..1
• OperationInvokedEvents
• server RunnableEntity
• PortDefinedArgumentValues to define the NVRAM Block ID which has to
be passed to the NvM
In addition to the above list further model elements may qualify; the details are ex-
plained in [TPS_SWCT_01584].c()
ARElement +port AtpBlueprintable
AtpBlueprint AtpPrototype
«atpVariation,atpSplitable» 0..*
AtpBlueprintable PortPrototype
AtpType
+portPrototype
SwComponentType
0..1
+port 0..1
!
AtomicSwComponentType "
ARElement
NvBlockSwComponentType
AtpBlueprint
AtpBlueprintable
AtpType
PortInterface
«atpVariation,atpSplitable»
+ isService: Boolean [0..1]
«atpVariation,atpSplitable»
+ serviceKind: ServiceProviderEnum [0..1]
+nvBlockDescriptor 0..*
AtpStructureElement
ClientServerInterface
Identifiable
NvBlockDescriptor
+operation 0..1
+internalBehavior «instanceRef»
0..1
InternalBehavior AtpStructureElement
OperationInvokedEvent PortDefinedArgumentValue
SwcInternalBehavior ExecutableEntity
RunnableEntity
«atpVariation,atpSplitable» AbstractEvent
+event
AtpStructureElement
«atpVariation,atpSplitable» 0..* RTEEvent
PortAPIOption
+portAPIOption
«atpVariation,atpSplitable» 0..*
• OperationInvokedEvents
• RunnableEntitys triggered by OperationInvokedEvents (server
RunnableEntitys)
• RunnableEntitys which defines only the mandatory attributes symbol and
canBeInvokedConcurrently
• PortAPIOptions defining PortDefinedArgumentValues
• TimingEvents (which may include references to ModeDeclarations in the
role disabledMode)
• DataReceivedEvents (which may include references to ModeDeclarations
in the role disabledMode)
• SwcModeSwitchEvents
• RunnableEntitys triggered by TimingEvents
• RunnableEntitys triggered by DataReceivedEvents
• RunnableEntitys triggered by SwcModeSwitchEvents
• DataTypeMappingSet
This rule shall be imposed at the time when the RTE is generated.c()
[constr_1309] Existence of NvBlockDescriptor.timingEvent dThe attribute
NvBlockDescriptor.timingEvent shall exist at the time when the RTE
is generated if and only if the NvBlockDescriptor.nvBlockNeeds.store-
Cyclic exists and is set to the value true.c()
Note that there is a conceptual connection between the values of the two attributes
NvBlockDescriptor.timingEvent.period and SwcServiceDependency.ser-
viceNeeds.cyclicWritingPeriod.
Specifically, the SwcServiceDependency.serviceNeeds.cyclicWritingPe-
riod represents a requirement and the NvBlockDescriptor.timingEvent.pe-
riod is supposed to fulfill the requirement.
[TPS_SWCT_01585] Relevance of NvBlockDescriptor.timingEvent.period
dFor any given NvBlockDescriptor, the value of the attribute NvBlockDescrip-
tor.nvBlockNeeds.cyclicWritingPeriod shall be ignored and the value of
NvBlockDescriptor.timingEvent.period shall be taken to specify the effective
writing frequency for cyclic storage.c(RS_SWCT_03225)
[TPS_SWCT_01662] Applicability of DataTypeMappingSets inside an NvBlock-
SwComponentType dThe DataTypeMappingSets to be applied for a given
NvBlockDescriptor is the superset of NvBlockDescriptor.dataTypeMapping
and InternalBehavior.dataTypeMapping.c(RS_SWCT_03225)
0..1
+swMaintenanceNotes
0..1
+swDiagnosticsNotes
A
0..1
Formal information can be captured using special data groups [11] or annotating doc-
umentation construct with semantic information. This could be used to extend the
predefined Chapters or in separate free Chapters.
Note that the documentation of a software component can be stored in a different file
than the component itself (i.e., it is atpSplitable from the component).
Each of the predefined and free Chapters follows the atpVariation stereotype
to support variant handling (see [11]) on the documentation at the Chapter level.
These VariationPoints set the latest binding time to the value AdditionalBind-
ingTimeEnum.postBuild because the decision to include or exclude a Chapter as
well as the decision which variant of this Chapter should be included can be made
when the component has been built.
Class SwComponentDocumentation
Package M2::AUTOSARTemplates::SWComponentTemplate::SoftwareComponentDocumentation
Note This class specifies the ability to write dedicated documentation to a component type according to ASAM
FSX.
Base ARObject
Attribute Type Mult. Kind Note
chapter Chapter * aggr These chapters provide additional information about the
software component that do not fit in the other chapters.
Note that this is subject to variation because Chapter
aggregations in the role chapter are variant within the
documentation in general.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.roleElement=true
xml.roleWrapperElement=false
xml.sequenceOffset=100
xml.typeElement=false
swCalibration Chapter 0..1 aggr This element contains calibration instructions and hints
Notes for a calibration engineer.
Tags:
xml.roleElement=true
xml.sequenceOffset=60
xml.typeElement=false
swCarbDoc Chapter 0..1 aggr This element records the documentation requested by
CARB.
Tags:
xml.roleElement=true
xml.sequenceOffset=80
xml.typeElement=false
swDiagnostics Chapter 0..1 aggr This element contains general information about
Notes diagnostics issues within the component.
Tags:
xml.roleElement=true
xml.sequenceOffset=75
xml.typeElement=false
5
4
Class SwComponentDocumentation
swFeatureDef Chapter 0..1 aggr This element contains the definition of the physical
functionality of this software component. This definition is
more or less formal and is intended to be delivered from
modeling tools.
Tags:
xml.roleElement=true
xml.sequenceOffset=20
xml.typeElement=false
swFeatureDesc Chapter 0..1 aggr This element contains the textual description of the
software functionality of this software component. Expert
should write this description.
Tags:
xml.roleElement=true
xml.sequenceOffset=30
xml.typeElement=false
swMaintenance Chapter 0..1 aggr This element contains information regarding the software
Notes maintenance of the component.
Tags:
xml.roleElement=true
xml.sequenceOffset=70
xml.typeElement=false
swTestDesc Chapter 0..1 aggr This element contains suggestions and hints for the test
of the software functionality of this software component.
Tags:
xml.roleElement=true
xml.sequenceOffset=50
xml.typeElement=false
Class Chapter
Package M2::MSR::Documentation::Chapters
Note This meta-class represents a chapter of a document. Chapters are the primary structuring element in
documentation.
Base ARObject, DocumentViewSelectable, Identifiable, MultilanguageReferrable, Paginateable, Referrable
Attribute Type Mult. Kind Note
chapterModel ChapterModel 1 aggr This represents the overall contents of the chapter.
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.typeElement=false
xml.typeWrapperElement=false
helpEntry String 0..1 attr This specifies an entry point in an online help system to
be linked with the parent class. The syntax shall be
defined by the applied help system respectively help
system generator.
Maybe it is a concatenated Identifier, but as of now we
leave it as an arbitrary string.
Tags:xml.attribute=true
Enumeration AdditionalBindingTimeEnum
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This enumeration specifies the additional binding times applicable for vh.latestBindingTime of
variation points.
Literal Description
blueprintDerivation The point in time when an object is created from a blueprint.
Time
Tags:atp.EnumerationLiteralIndex=0
postBuild After the executable has been built.
Tags:atp.EnumerationLiteralIndex=1
13.1 Overview
Meta-class SwcServiceDependency represents a powerful concept to describe the
service-related capabilities of an AtomicSwComponentType.
It is still required to understand how to configure SwcServiceDependency and re-
lated meta-classes for specific service use cases.
This chapter contains a detailed description of the meta-classes related to SwcSer-
viceDependency in the context of specific service use cases, as well as modeling
hints for the configuration of the respective service use cases.
The same mechanism (see description of scenario) applies also for an NvBlock-
SwComponentType. For each NVRAM Block the NVRAM Manager can be config-
ured (with the help of SwcServiceDependency.assignedData) to use the same
Permanent RAM Block.
It is the responsibility of the NVRAM Manager to provide the content of the NVRAM
Block in this Permanent RAM Block during startup or on explicit request and to
write back the content to the storage medium during shut-down or on explicit request.
RepresentedPortGroup
N/A
c(RS_SWCT_03225)
[constr_1301] Existence of RoleBasedDataTypeAssignment.role vs. Role-
BasedDataAssignment.role dThe usage of a RoleBasedDataTypeAssignment
with attribute role set to the value temporaryRamBlock is only allowed if no Role-
BasedDataAssignment defined with attribute role set to value defaultValue ex-
ists in the owning SwcServiceDependency.
This rule shall be imposed at the time when the RTE is generated.c()
The rationale for [constr_1301] is that the existence of a RoleBasedDataAssign-
ment would already provide sufficient information for the intended purpose. The paral-
lel existence of a RoleBasedDataTypeAssignment is therefore fully redundant and
could only lead to potential inconsistencies.
For more information please refer to [SWS_NvM_00734], [SWS_NvM_00735], [SWS_-
NvM_00736], and [SWS_NvM_00737].
13.2.3 Nvm Use Case: RAM Block with explicit synchronization using Mirror
Interfaces
• NvMAdmin [0..1]
• NvMMirror [1]
RoleBasedDataAssignment
In this scenario the existence of a RoleBasedDataAssignment is optional. The
RoleBasedDataAssignment needs to reference a ParameterDataProto-
type aggregated by the enclosing SwcInternalBehavior in the role perIn-
stanceParameter or sharedParameter.
• defaultValue [0..1]
RoleBasedDataTypeAssignment
By this means it is possible to define the data-type of a temporary RAM Block
and used internal data structure in case of explicit synchronization with NvMMirror
interface respectively. The data type information can be used to calculate the
NVRAM Block size and minimum Permanent RAM Block size. [constr_1301]
applies.
• temporaryRamBlock [0..1]
RepresentedPortGroup
N/A
c(RS_SWCT_03225)
For more information please refer to [SWS_NvM_00734], [SWS_NvM_00735], [SWS_-
NvM_00736], [SWS_NvM_00737], and [SWS_NvM_00738].
• NvMNotifyJobFinished [0..1]
• NvMNotifyInitBlock [0..1]
• NvMAdmin [0..1]
For every PortPrototype of a software-component typed by an NvDataIn-
terface defining a SwcServiceDependency it is necessary to create a Role-
BasedPortAssignment and set the value of the attribute role of the attribute
assignedPort to the value NvDataPort:
• NvDataPort [1..*]
RoleBasedDataAssignment
N/A
RepresentedPortGroup
N/A
For supporting this use case the value of attribute SwcServiceDependency.cate-
gory shall be set to NV_BLOCK_COMPONENT.c(RS_SWCT_03225)
For more information please refer to [SWS_NvM_00734], [SWS_NvM_00735], [SWS_-
NvM_00736], and [SWS_NvM_00737]. Note that NvBlockNeeds (described in Chap-
ter 11.5.5) is not in the scope of this use case.
The service interaction with the Watchdog Manager consists of two aspects:
• supervised entity
• checkpoint
For each of the two aspects a separated ServiceNeeds is defined. However, the
SwcServiceDependencys that own these ServiceNeeds are semantically bound
and cannot be used independently of each other.
In other words, the usage of two kinds of SwcServiceDependency in concert creates
a higher-level semantics. Of course, in order to express this higher-level semantics a
reference between the SwcServiceDependencys has to be available.
SupervisedEntityNeeds SupervisedEntityCheckpointNeeds
The former refers to the latter in order to express the relation of a supervised entity to
its checkpoints.
Class SupervisedEntityNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs on the configuration of the Watchdog Manager for one specific Supervised
Entity.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
activateAtStart Boolean 0..1 attr True/false: supervision activation status of Supervised
Entity shall be enabled/disabled at start.
checkpoints SupervisedEntity * ref This reference indicates the checkpoints belonging to the
CheckpointNeeds Supervised Entity.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
enable Boolean 0..1 attr True: software-component shall be allowed to deactivate
Deactivation supervision of this SupervisedEntity
false: software-component shall be not allowed to
deactivate supervision of this SupervisedEntity
expectedAlive TimeValue 0..1 attr Expected cycle time of alive trigger of this Supervised
Cycle Entity (in seconds).
maxAliveCycle TimeValue 0..1 attr Maximum cycle time of alive trigger of this Supervised
Entity (in seconds).
minAliveCycle TimeValue 0..1 attr Minimum cycle time of alive trigger of this Supervised
Entity (in seconds).
toleratedFailed PositiveInteger 0..1 attr Number of consecutive failed alive cycles for this
Cycles SupervisedEntity which shall be tolerated until the
supervision status of the SupervisedEntity is set to
WDGM_ALIVE_EXPIRED (see SWS WdgM for more
details).
Note that this value has to be recalculated with respect to
the WdgM’s own cycle time for ECU configuration.
13.3.3 Watchdog Service use Case: Control global supervision or get global
supervision status
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
Please note that an SwcInternalBehavior may provide several SupervisedEn-
tityNeeds elements where each defines the requirements in relation to one super-
vised entity.
Note that in this situation an AtomicSwComponentType contains several Checkpoints
that refer to a Supervised Entity.
In this case it is required that the Supervised Entity indicates to the Watchdog Man-
ager the existence this Checkpoint for configuration and at runtime that the Supervised
Entity has reached the Checkpoint.
For more information please refer to [SWS_WdgM_91004]
c(RS_SWCT_03200)
13.6 BswM
All use cases for interaction of an application software-component with the BswM re-
quire the aggregation in the role serviceNeeds of BswMgrNeeds, a subclass of
ServiceNeeds, at SwcServiceDependency.
Class BswMgrNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs on the configuration of the Basic Software Manager for one "user".
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.7: BswMgrNeeds
One specific use case for the existence of a SwcServiceDependency with respect
to the interaction with the BswM is the support for partial networking, in particular the
association of a PortGroup and the associated PortPrototypes that act as VFC
control ports and VFC status ports.
For more details please refer to section 4.8.
In this case the following rules apply:
[TPS_SWCT_01126] Access to partial networking via BswM d
RoleBasedPortAssignment valid roles:
• control [0 .. 1]
• status [0 .. 1]
RoleBasedDataAssignment
N/A
RepresentedPortGroup
Reference to the applicable PortGroup associated with the particular partial
network.
c(RS_SWCT_03200, RS_SWCT_03201)
The multiplicities of the RoleBasedPortAssignments for this case have been de-
fined under the assumption that a given software-component may or may not have a
VFC control port. Also, it may have a VFC status port. Technically, there could be sev-
eral VFC status ports per software-component but most likely there is only one VFC
status port.
13.7.1 Overview
Please note that there are cryptographic APIs that build upon the creation of jobs that
run asynchronously. The reason for this policy is that cryptographic operations - in
many cases by design - tend to run for comparatively long time for each call. This
behavior is visualized in Figure 13.3.
Time
Execution of these operations synchronously in the main function would block the re-
spective module intolerably and therefore the job API is an important measure to keep
the execution of software manageable. This behavior is visualized in Figure 13.4.
Time
Class CryptoServiceJobNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class shall be taken to indicate that the service use case modeled with this kind of Service
Needs assumes the usage of the crypto job API.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.9: CryptoServiceJobNeeds
c(RS_SWCT_00030)
Please note that the resolution of the name fragment {Config} that appears in the
shortName of the ClientServerInterface CsmMacVerify_{Config} is regu-
lated by [TPS_SWCT_01727].
• CsmAEADEncrypt_{Config} [0..1]
• CallbackNotification [0..1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
Please note that the resolution of the name fragment {Config} that appears in the
shortName of the ClientServerInterface CsmAEADEncrypt_{Config} shall
be resolved according to [TPS_SWCT_01727].
c(RS_SWCT_00030)
Please note that the resolution of the name fragment {Config} that appears in the
shortName of the ClientServerInterface CsmSignatureVerify_{Config}
is regulated by [TPS_SWCT_01727].
13.7.3.1 Crypto Service Use Case: usage of job API to set key valid
Scenario: a AtomicSwComponentType uses the job API of the Crypto Service to set
a key valid. In this case the following setup applies:
[TPS_SWCT_01776] AtomicSwComponentType uses the API of the Crypto Ser-
vice to set a key valid d
ServiceNeeds kind : CryptoServiceJobNeeds
RoleBasedPortAssignment valid roles:
• CsmJobKeySetValid_{Primitive} [1]
• CallbackNotification [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
Please note that the resolution of the name fragment {Primitive} that ap-
pears in the shortName of the ClientServerInterface CsmJobKeySet-
Valid_{Primitive} is regulated by [TPS_SWCT_01727].
13.7.3.2 Crypto Service Use Case: usage of job API to create a random seed
13.7.3.3 Crypto Service Use Case: usage of job API to generate a key
• CsmJobKeyGenerate_{Primitive} [1]
• CallbackNotification [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
Please note that the resolution of the name fragment {Primitive} that ap-
pears in the shortName of the ClientServerInterface CsmJobKeyGener-
ate_{Primitive} is regulated by [TPS_SWCT_01727].
13.7.3.4 Crypto Service Use Case: usage of job API to derive a key
13.7.3.5 Crypto Service Use Case: usage of job API to execute calculation of
the public value for key exchange
13.7.3.6 Crypto Service Use Case: usage of job API to execute calculation of
shared secret for key exchange
13.7.3.7 Crypto Service Use Case: usage of job API to execute certificate pars-
ing
13.7.3.8 Crypto Service Use Case: usage of job API to execute certificate veri-
fication
Please note that the resolution of the name fragment {Primitive} that appears
in the shortName of the ClientServerInterface CsmJobCertificateVer-
ify_{Primitive} is regulated by [TPS_SWCT_01727].
The service use cases for cryptographic key management are indicated by the pres-
ence of a CryptoKeyManagementNeeds aggregated at SwcServiceDependency
in the role serviceNeeds.
Class CryptoKeyManagementNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class can be used to indicate a service use case for key management.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.10: CryptoKeyManagementNeeds
13.7.4.4 KeyM Service Use Case: Software-Component wants to check the ex-
istence of a certificate from KeyM
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
might contain contributions to the external configuration of the diagnostic stack. This
was considered an approach to implement a top-down configuration approach for di-
agnostics.
However, the development approach introduced with the Diagnostic Extract
turned out to be superior and less prone to mistakes and limitations in comparison
to the configuration that each developer contributed without necessarily having the
knowledge about the greater scope of diagnostic configuration.
Therefore, the usage of the Diagnostic Extract has become the canonical ap-
proach to the configuration of the external behavior of the AUTOSAR diagnostic stack
and the respective configuration attributes available in the scope of SwcServiceDe-
pendency have been removed from the AUTOSAR methodology in order to reduce
potential confusion in the audience.
In particular, a top-down approach using a Diagnostic Extract can be imple-
mented if the Diagnostic Extract also provides the mappings between diagnostic
elements and elements of the application model. If the mappings are not wanted or not
available, it is also possible to use the Diagnostic Extract to derive a bottom-up
configuration of the diagnostic stack without the relations to application software.
Class FunctionInhibitionAvailabilityNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs on the configuration of the Function Inhibition Manager to provide the
control function for one Function Identifier (FID).
5
4
Class FunctionInhibitionAvailabilityNeeds
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
controlledFid FunctionInhibitionNeeds 0..1 ref This reference represents the controlled FID
AtpStructureElement Identifiable
+serviceNeeds
Identifiable ServiceNeeds
ServiceDependency 0..1
SwcServiceDependency
DiagnosticCapabilityElement
DiagnosticEventNeeds
FunctionInhibitionNeeds +deferringFid
0..*
FunctionInhibitionAvailabilityNeeds
+controlledFid
0..1
13.8.2.1 Function Inhibition Manager Service use Case: read function permis-
sion
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Fim_00090].
4
Class DiagnosticEventManagerNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.13: DiagnosticEventManagerNeeds
DiagnosticStorageConditionNeeds
DiagnosticOperationCycleNeeds
«enumeration» «enumeration»
EventAcceptanceStatusEnum StorageConditionStatusEnum
eventAcceptanceEnabled eventStorageEnabled
eventAcceptanceDisabled eventStorageDisabled
4
Class DiagnosticCapabilityElement (abstract)
Subclasses DiagnosticCommunicationManagerNeeds, DiagnosticComponentNeeds, DiagnosticControlNeeds,
DiagnosticEnableConditionNeeds, DiagnosticEventInfoNeeds, DiagnosticEventManagerNeeds,
DiagnosticEventNeeds, DiagnosticIoControlNeeds, DiagnosticOperationCycleNeeds, DiagnosticRequest
FileTransferNeeds, DiagnosticResponseOnEventNeeds, DiagnosticRoutineNeeds, DiagnosticStorage
ConditionNeeds, DiagnosticUploadDownloadNeeds, DiagnosticValueNeeds, DiagnosticsCommunication
SecurityNeeds, DtcStatusChangeNotificationNeeds, ObdControlServiceNeeds, ObdInfoServiceNeeds,
ObdMonitorServiceNeeds, ObdPidServiceNeeds, ObdRatioDenominatorNeeds, ObdRatioServiceNeeds,
WarningIndicatorRequestedBitNeeds
Attribute Type Mult. Kind Note
audience DiagnosticAudience * attr This specifies the intended audience for the diagnostic
Enum object. Note that this is not only for the documentation but
also subsequent audience specific implementation.
diag DiagRequirementId 0..1 attr This denotes the requirement identifier to which the object
Requirement String can be linked to.
Note that with the implementation of a generic tracing
concept in AUTOSAR this attribute might become
obsolete.
securityAccess PositiveInteger 0..1 attr This attribute denotes the level of security which is
Level touched by the diagnostic object. The higher the level the
more relevance for the security exists.
This level shall be mapped to the security level in the
ECU.
Enumeration DiagnosticAudienceEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The possible values of the intended audience for a diagnostic object.
Literal Description
aftermarket The object is for free aftermarket service organizations.
Tags:atp.EnumerationLiteralIndex=1
afterSales The object is relevant for the OEM after-sales organization.
Tags:atp.EnumerationLiteralIndex=2
development The object is relevant for engineering only.
Tags:atp.EnumerationLiteralIndex=3
manufacturing The object is relevant for manufacturing.
Tags:atp.EnumerationLiteralIndex=4
supplier The object is relevant for the ECU-supplier aftermarket organization.
Tags:atp.EnumerationLiteralIndex=5
Class DiagEventDebounceCounterBased
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to indicate that the counter-based debounce algorithm shall be
used by the DEM for this diagnostic monitor.
This is related to set the ECUC choice container DemDebounceAlgorithmClass to DemDebounce
CounterBased.
Base ARObject, DiagEventDebounceAlgorithm, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
counterBased Integer 0..1 attr Threshold to allocate an event memory entry and to
FdcThreshold capture the Freeze Frame.
StorageValue
counter Integer 0..1 attr This value shall be taken to decrement the internal
DecrementStep debounce counter.
Size
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counterFailed Integer 0..1 attr This value defines the event-specific limit that indicates
Threshold the "failed" counter status.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counter Integer 0..1 attr This value shall be taken to increment the internal
IncrementStep debounce counter.
Size
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counterJump Boolean 0..1 attr This value activates or deactivates the counter
Down jump-down behavior.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counterJump Integer 0..1 attr This value represents the initial value of the internal
DownValue debounce counter if the counting direction changes from
incrementing to decrementing.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counterJumpUp Boolean 0..1 attr This value activates or deactivates the counter jump-up
behavior.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
5
4
Class DiagEventDebounceCounterBased
counterJumpUp Integer 0..1 attr This value represents the initial value of the internal
Value debounce counter if the counting direction changes from
decrementing to incrementing.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
counterPassed Integer 0..1 attr This value defines the event-specific limit that indicates
Threshold the "passed" counter status.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
Class DiagEventDebounceTimeBased
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to indicate that the time-based pre-debounce algorithm shall be
used by the Dem for this diagnostic monitor.
This is related to set the EcuC choice container DemDebounceAlgorithmClass to DemDebounceTime
Base.
Base ARObject, DiagEventDebounceAlgorithm, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
timeBasedFdc TimeValue 0..1 attr Threshold to allocate an event memory entry and to
Threshold capture the Freeze Frame.
StorageValue
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
timeFailed TimeValue 0..1 attr This value represents the event-specific delay indicating
Threshold the "failed" status.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
timePassed TimeValue 0..1 attr This value represents the event-specific delay indicating
Threshold the "passed" status.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
Class DiagEventDebounceMonitorInternal
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note "This meta-class represents the ability to indicate that no Dem pre-debounce algorithm shall be used for
this diagnostic monitor. The SWC might implement an internal debouncing algorithm and report qualified
(debounced) results to the Dem/DM.
Base ARObject, DiagEventDebounceAlgorithm, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 13.20: DiagEventDebounceMonitorInternal
AtpStructureElement
RoleBasedPortAssignment
Identifiable +assignedPort
ServiceDependency + role: Identifier [0..1]
«atpVariation,atpSplitable» 0..*
SwcServiceDependency
+portPrototype 0..1
AtpBlueprintable
AtpPrototype
PortPrototype
+serviceNeeds 0..1
Identifiable
FunctionInhibitionNeeds
ServiceNeeds
DiagnosticCapabilityElement ObdRatioServiceNeeds
«enumeration» DiagnosticEventNeeds
ObdRatioConnectionKindEnum
+ prestoredFreezeframeStoredInNvm:
apiUse Boolean [0..1]
observer + usesMonitorData: Boolean [0..1]
Identifiable +diagEventDebounceAlgorithm
DiagEventDebounceAlgorithm
0..1
The figure 13.7 shows the relationship of the class DiagnosticEventNeeds. The
given M2 structure support to express following properties of a diagnostic monitor in
addition to the basic set of attributes provided by DiagnosticCapabilityElement:
The used PortPrototype which has to be connected to the Function Inhibition Man-
agers is determined by the RoleBasedPortAssignment of the related Function-
InhibitionNeeds instance on M1.
The reference from a M1 instance of an ObdRatioServiceNeeds to an M1 instance
of a DiagnosticEventNeeds specifies that the related Diagnostic Monitor supports
Rate Based Monitoring. For further details see 13.8.5
[TPS_SWCT_01582] Semantics of DiagnosticEventNeeds.deferringFid
dDiagnostic monitor implementations use Function Identifiers (FID) to acquire
permission from FiM before executing the fault detection.
Typically, the permission is not granted by FiM if other Events have already been re-
ported as FAILED, which would lead to a double-detection of the same failure.
In some cases (see [40]), diagnostic monitor implementations do not only shut down
completely in case of “no permission”, but fully compute their result and do just not
deliver it to Dem before further conditions are fulfilled.
Typically, such diagnostics can detect a coarse failure quickly. But it avoids reporting
FAIL early to give other Events a chance to deliver a more precise FAIL.
In such cases, the delivery of the result is only allowed when FiM grants a permis-
sion, with inhibitions on NOT_TESTED of other Events. These Function Inhibitions are
specified by means of the attribute DiagnosticEventNeeds.deferringFid.
c(RS_SWCT_00170, RS_SWCT_03190)
As a corresponding concept to DiagnosticEventNeeds, the Diagnos-
ticEventInfoNeeds represents the needs to a given software-component that is
interested to get information about specific DTCs.
Class DiagnosticEventInfoNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the needs of a software-component interested to get information regarding
specific DTCs.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
obdDtcNumber PositiveInteger 0..1 attr This represents a reasonable Diagnostic Trouble Code.
This allows to predefine the Diagnostic Trouble Code, e.g.
if the function developer has received a particular
requirement from the OEM or from a standardization
body.
This attribute applies for the OBD diagnostics use case.
udsDtcNumber PositiveInteger 0..1 attr This represents a reasonable Diagnostic Trouble Code.
This allows to predefine the Diagnostic Trouble Code, e.g.
if the function developer has received a particular
requirement from the OEM or from a standardization
body.
This attribute applies for the UDS diagnostics use case.
Class DiagnosticOperationCycleNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the needs of a software-component to provide information regarding the
operation cycle management to the Dem module.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
operationCycle OperationCycleType 0..1 attr Operation cycles types for the Dem to be supported by
Enum cycle-state APIs.
Enumeration OperationCycleTypeEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The possible values of the operation cycles types for the Dem.
Literal Description
ignition Ignition ON / OFF cycle.
Tags:atp.EnumerationLiteralIndex=0
obdDcy OBD Driving cycle.
Tags:atp.EnumerationLiteralIndex=1
other Further operation cycle.
Tags:atp.EnumerationLiteralIndex=2
power Power ON / OFF cycle.
Tags:atp.EnumerationLiteralIndex=3
time Time based operation cycle.
Tags:atp.EnumerationLiteralIndex=4
warmup OBD Warm up cycle.
Tags:atp.EnumerationLiteralIndex=5
Class DiagnosticEnableConditionNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the needs of a software-component to provide the capability to set an enable
condition.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
initialStatus EventAcceptanceStatus 0..1 attr Defines the initial status for enable or disable of
Enum acceptance of event reports of a diagnostic event.
Enumeration EventAcceptanceStatusEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This enumerator specifies the initial status for enable or disable of acceptance of event reports of a
diagnostic event.
Literal Description
eventAcceptance Acceptance of a diagnostic event is disabled.
Disabled
Tags:atp.EnumerationLiteralIndex=0
eventAcceptance Acceptance of a diagnostic event is enabled.
Enabled
Tags:atp.EnumerationLiteralIndex=1
Class DiagnosticStorageConditionNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
5
4
Class DiagnosticStorageConditionNeeds
Note This meta-class represents the needs of a software-component to provide the capability to set a storage
condition.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
initialStatus StorageConditionStatus 0..1 attr Defines the initial status for enable or disable of storage
Enum of a diagnostic event.
Enumeration StorageConditionStatusEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This enumeration specifies the initial status for enable or disable of storage of a diagnostic event.
Literal Description
eventStorage Storage of a diagnostic event is disabled.
Disabled
Tags:atp.EnumerationLiteralIndex=0
eventStorage Storage of a diagnostic event is enabled.
Enabled
Tags:atp.EnumerationLiteralIndex=1
Class DtcStatusChangeNotificationNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the needs of a software-component interested to get information regarding
any DTC status change.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.28: DtcStatusChangeNotificationNeeds
• CallbackInitMonitorForEvent [0..1]
• CallbackEventUdsStatusChanged [0..1]
• CallbackClearEventAllowed [0..1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
Please note that for the implementation of this scenario DiagEventDebounceCoun-
terBased or DiagEventDebounceTimeBased algorithm should be used as di-
agEventDebounceAlgorithm.
13.8.3.6 Dem Service Use Case: retrieve information of the lamp status
IndicatorStatusNeeds
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00606].
Class IndicatorStatusNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class shall be taken to signal a service use case that affects the indicator status.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
type DiagnosticIndicatorType 0..1 attr Defines the type of the indicator.
Enum
Table 13.29: IndicatorStatusNeeds
Enumeration DiagnosticIndicatorTypeEnum
Package M2::AUTOSARTemplates::DiagnosticExtract::Dem::DiagnosticIndicator
Note Type of an indicator.
Literal Description
amberWarning Amber Warning Lamp
Tags:atp.EnumerationLiteralIndex=0
malfunction Malfunction Indicator Lamp
Tags:atp.EnumerationLiteralIndex=1
protectLamp Protect Lamp
Tags:atp.EnumerationLiteralIndex=2
redStopLamp Red Stop Lamp
Tags:atp.EnumerationLiteralIndex=3
warning Warning
Tags:atp.EnumerationLiteralIndex=4
13.8.3.7 Dem Service Use Case: DEM provides information that the fault stor-
age overflows
Please note that for this specific use case the application of a concrete ServiceNeeds
is not yet clarified.
Scenario: the Dem provides information that the fault storage overflows.
[TPS_SWCT_01137] Dem provides information that the fault storage overflows d
RoleBasedPortAssignment valid roles:
• EvMemOverflowIndication [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00607].
13.8.3.9 Dem Service Use Case: software-component informs that the PTO is
active
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00612].
13.8.3.11 Dem Service Use Case: call operation if the data of a given diagnostic
event changes (I)
13.8.3.12 Dem Service Use Case: call operation if the data or status of any
diagnostic event changes (II)
In order to react on diagnostic event status changes the software component shall
provide a single PPortPrototype typed as a client server interface compatible to
GeneralCallbackEventDataChanged.
In order to react on diagnostic event data changes the software component shall pro-
vide a single PPortPrototype typed as a client server interface compatible to Gen-
eralCallbackEventDataChanged.
If the software-component additionally has to read further information of the specific
diagnostic event from Dem it shall provide a RPortPrototype typed as a client server
interface compatible to GeneralDiagnosticInfo. It shall also specify Diagnos-
ticEventInfoNeeds.c(RS_SWCT_00170, RS_SWCT_03190)
13.8.3.13 Dem Service Use Case: software-component provides data for diag-
nostic purposes
Please note that for this specific use case the application of a concrete ServiceNeeds
is not yet clarified.
Scenario: an AtomicSwComponentType provides data to be used for diagnostic pur-
poses. The provision of data can be done by means of PPortPrototypes typed by
either ClientServerInterfaces or SenderReceiverInterfaces. The usage of
the latter, however, is not further detailed in the applicable SWS [41] and therefore no
more details are to be provided in this document.
[TPS_SWCT_01427] AtomicSwComponentType provides data for diagnostic pur-
poses via ClientServerInterface d
RoleBasedPortAssignment valid roles:
• DataServices [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01634] Suffix used for the resulting name of the PortInterface
for the Data Services dThe suffix used for the resulting name of the PortInterface
for the Data Services (DataServices_{Data}) shall be taken from the shortName of
the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00621].
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
Scenario: A software-component computes the PIDs, and pushes them to Dem for
storage and reporting to Dcm.
[TPS_SWCT_01766] Software-component computes the PIDs, and pushes them
to Dem for storage and reporting to Dcm d
ServiceNeeds kind ObdPidServiceNeeds
RoleBasedPortAssignment valid roles:
• SetDataOfPID21 [1]
• SetDataOfPID4D [1]
• SetDataOfPID4E [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
• GetDataOfPID21 [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
13.8.3.18 Dem Service Use Case: diagnostic monitor provides monitor data,
debouncing by Dem
13.8.3.19 Dem Service Use Case: diagnostic monitor provides monitor data,
debouncing by software-component
For this purpose the software component needs to expose an RPortPrototype to-
wards the Dem.
[TPS_SWCT_01808] Dem Service Use Case: software-component checks
whether an event is suppressed d
ServiceNeeds kind DiagnosticEventInfoNeeds
RoleBasedPortAssignment valid roles:
• DiagnosticInfo [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
1
where isService shall be set to true
Class DiagnosticCommunicationManagerNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the general needs on the configuration of the Diagnostic Communication Manager (Dcm) which
are not related to a particular item (e.g. a PID or DiagnosticRoutineNeeds). The main use case is the
mapping of service ports to the Dcm which are not related to a particular item.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
serviceRequest DiagnosticService 0..1 attr This represents the ability to define whether the usage of
CallbackType RequestCallbackType PortInterface ServiceRequestNotification has the
Enum characteristics of being initiated by a manufacturer or by a
supplier.
+ audience: + serviceRequestCallbackType:
DiagnosticAudienceEnum [0..*] DiagnosticServiceRequestCallbackTypeEnum [0..1]
+ diagRequirement:
DiagnosticResponseOnEventNeeds
DiagRequirementIdString [0..1]
+ securityAccessLevel: DiagnosticValueNeeds
PositiveInteger [0..1]
+ dataLength: PositiveInteger [0..1]
DiagnosticControlNeeds + diagnosticValueAccess: DiagnosticValueAccessEnum [0..1]
+ fixedLength: Boolean [0..1]
+ processingStyle: DiagnosticProcessingStyleEnum [0..1]
DiagnosticRequestFileTransferNeeds
0..1
DiagnosticRoutineNeeds +currentValue
+ diagRoutineType:
DiagnosticsCommunicationSecurityNeeds DiagnosticRoutineTypeEnum [0..1]
DiagnosticIoControlNeeds
development
manufacturing
«enumeration» «enumeration» «enumeration»
afterSales
DiagnosticRoutineTypeEnum DiagnosticValueAccessEnum DiagnosticProcessingStyleEnum
supplier
aftermarket synchronous readOnly processingStyleSynchronous
asynchronous readWrite processingStyleAsynchronous
writeOnly processingStyleAsynchronousWithError
Enumeration DiagnosticServiceRequestCallbackTypeEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This represents the ability to define whether a Service Request Notification was used in the role of a
manufacturer or a supplier.
Literal Description
requestCallback This represents the case that the usage of PortInterface ServiceRequestNotification has the
TypeManufacturer characteristics of being used by a manufacturer.
Tags:atp.EnumerationLiteralIndex=0
5
4
Enumeration DiagnosticServiceRequestCallbackTypeEnum
requestCallback This represents the case that the usage of PortInterface ServiceRequestNotification has the
TypeSupplier characteristics of being used by a supplier.
Tags:atp.EnumerationLiteralIndex=1
Class DiagnosticRoutineNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the general needs on the configuration of the Diagnostic Communication Manager (Dcm) which
are not related to a particular item (e.g. a PID). The main use case is the mapping of service ports to the
Dcm which are not related to a particular item.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
diagRoutine DiagnosticRoutineType 0..1 attr This denotes the type of diagnostic routine which is
Type Enum implemented by the referenced server port.
4
Class DiagnosticIoControlNeeds
Note Specifies the general needs on the configuration of the Diagnostic Communication Manager (DCM)
which are not related to a particular item (e.g. a PID). The main use case is the mapping of service ports
to the Dcm which are not related to a particular item.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
currentValue DiagnosticValueNeeds 0..1 ref Reference to the DiagnosticValueNeeds indicating the
access to the current value via signalBasedDiagnostics.
freezeCurrent Boolean 0..1 attr This attribute determines, if the referenced port supports
StateSupported temporary freezing of I/O value.
resetToDefault Boolean 0..1 attr This represents a flag for the existence of the ResetTo
Supported Default operation in the service interface.
shortTerm Boolean 0..1 attr This attribute determines, if the referenced port supports
Adjustment temporarily setting of I/O value to a specific value
Supported provided by the diagnostic tester.
For all intents and purposes, the statement made by [constr_1363] and [constr_1364]
boils down to the fact that these attributes can only be reasonably used in the context
of a BswServiceDependency.
Class DiagnosticValueNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the general needs on the configuration of the Diagnostic Communication Manager (DCM)
which are not related to a particular item (e.g. a PID). The main use case is the mapping of service ports
to the DCM which are not related to a particular item.
In the case of using a sender receiver communicated value, the related value shall be taken via assigned
Data in the role "signalBasedDiagnostics".
In case of using a client/server communicated value, the related value shall be communicated via the
port referenced by asssignedPort. The details of this communication (e.g. appropriate naming
conventions) are specified in the related software specifications (SWS).
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
dataLength PositiveInteger 0..1 attr This attribute is applicable only if the DiagnosticValue
Needs is aggregated within a BswModuleDependency.
This attribute represents the length of data (in bytes)
provided for this particular PID signal.
diagnosticValue DiagnosticValueAccess 0..1 attr This attribute is applicable only if the DiagnosticValue
Access Enum Needs is aggregated within a BswModuleDependency.
This attribute controls whether the data can be read and
written or whether it is to be handled read-only.
fixedLength Boolean 0..1 attr This attribute is applicable only if the DiagnosticValue
Needs is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data
is fixed.
processingStyle DiagnosticProcessing 0..1 attr This attribute controls whether interaction requires the
StyleEnum software-component to react synchronously on a request
or whether it processes the request in background but still
the DCM has to issue the call again to eventually obtain
the result of the request.
Enumeration DiagnosticValueAccessEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Defines the access of the configured diagnostic current values which will be used by the Dem or Dcm
module.
Literal Description
readOnly The access to the data element is limited to read-only. This is typically used to read-out diagnostic
information (e.g. current values).
Tags:atp.EnumerationLiteralIndex=0
readWrite The value of the diagnostic data element is classified as configurable (read and write access is
possible).
Tags:atp.EnumerationLiteralIndex=1
writeOnly The access to the data element is limited to write-only. This supports the use case where the Dcm
just writes data to the application software without the intention to read it back,
Tags:atp.EnumerationLiteralIndex=2
Enumeration DiagnosticProcessingStyleEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to define the processing style of diagnostic requests.
Literal Description
processingStyle The software-component processes the request in background but still the Dcm has to issue the call
Asynchronous again to eventually obtain the result of the request.
Tags:atp.EnumerationLiteralIndex=0
processingStyle The software-component processes the request in background but still the Dcm has to issue the call
AsynchronousWith again to eventually obtain the result of the request or handle error code.
Error
Tags:atp.EnumerationLiteralIndex=1
processingStyle The software-component is supposed to react synchronously on the request.
Synchronous
Tags:atp.EnumerationLiteralIndex=2
Class DiagnosticsCommunicationSecurityNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the needs of a software-component to verify the access to security level via
diagnostic services.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.39: DiagnosticsCommunicationSecurityNeeds
13.8.4.1 Dcm Service Use Case: read/write current values by Client Server In-
terface
c(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01628] Suffix used for the resulting name of the PortInterface
for the Data Services dThe suffix used for the resulting name of the PortInterface
for the Data Services (DataServices_{Data}) shall be taken from the shortName of
the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dcm_00686].
13.8.4.2 Dcm Service Use Case: read/write current values of specific DID by
Client Server Interface
13.8.4.3 Dcm Service Use Case: read/write current values by Sender Receiver
Interface or Nv Data Interface
via diagnostic services (e.g. measurements, variant coding) This is mainly used for
data which are available at ports anyhow used for other communication purpose.
Note: this scenario can be implemented as a regular sender/receiver communication
without the necessity to use a SwcServiceDependency. The description of a Swc-
ServiceDependency (even if it is technically not required) may help to advertise the
special role of the corresponding dataElement with respect to diagnostics.
[TPS_SWCT_02003] AtomicSwComponentType offers PortPrototypes typed
by SenderReceiverInterfaces or NvDataInterfaces to read/write current
values via diagnostic services d
ServiceNeeds kind DiagnosticValueNeeds
RoleBasedPortAssignment
N/A
RoleBasedDataAssignment valid roles:
• signalBasedDiagnostics [1..2]
RepresentedPortGroups
N/A
To read the signal the AtomicSwComponentType shall offer an AbstractProvid-
edPortPrototype, to write the signal the AtomicSwComponentType shall offer an
AbstractRequiredPortPrototype.c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [TPS_SWCT_01579], [TPS_SWCT_01831] and
[SWS_Dcm_00687].
[constr_1679] Existence of attribute RoleBasedDataAssignment.used-
DataElement.localVariable for RoleBasedDataAssignment.role = sig-
nalBasedDiagnostics dIf the attribute RoleBasedDataAssignment.role is
set to the value signalBasedDiagnostics then the reference RoleBased-
DataAssignment.usedDataElement.localVariable shall not exist at the
time when the RTE is generated.c()
For explanation of the existence of [constr_1679], it is not intended to provide diagnos-
tic access to local variables inside the SwcInternalBehavior.
• DataServices [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01629] Suffix used for the resulting name of the PortInterface
for the Data Services dThe suffix used for the resulting name of the PortInterface
for the Data Services (DataServices_{Data}) shall be taken from the shortName of
the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dcm_00686].
This use case represents an alternative to the use case described in chapter 13.8.4.5,
i.e. for the same purpose it is also possible to utilize a SenderReceiverInterface.
The essential idea behind the existence of I/O PortPrototypes typed by Sender-
ReceiverInterface is the possibility to have quick access to the dataElements
currently under control.
Especially cases where access to dataElements is required from different partitions
(for example in multi core systems) can benefit from this approach.
Scenario: an AtomicSwComponentType offers an RPortPrototype typed by a
SenderReceiverInterface (in particular: IOControlRequest) to adjust the I/O
signal via diagnostic services and offers a PPortPrototype typed by a Sender-
ReceiverInterface (in particular: IOControlResponse) to provide the IO “oper-
ation response”.
In case of using IOControlRequest (which owns three dataElements) and IO-
ControlResponse the whole PortPrototype is related to exactly one IO control
and needs to be consistent.
Therefore, the usage of RoleBasedPortAssignment (instead of the RoleBased-
DataAssignment, which would otherwise typically be used for a sender/receiver-
based scenario) is required for avoiding modeling overhead.
[TPS_SWCT_01654] AtomicSwComponentType offers PortPrototypes typed
by SenderReceiverInterfaces to adjust the IO signal via diagnostic services
d
ServiceNeeds kind DiagnosticIoControlNeeds
RoleBasedPortAssignment valid roles:
• IOControlRequest [1]
• IOControlResponse [1]
• DataServices [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
The IOControl service requires in its diagnostic response the current value of the IO-
DID, which is identical to the current value represented by DiagnosticValueNeeds
of the ReadDataByIdentifer response.
[TPS_SWCT_01655] Reference from DiagnosticIoControlNeeds to Diagnos-
ticValueNeeds dIn the scenario described by [TPS_SWCT_01654], the Diagnos-
ticIoControlNeeds shall reference the DiagnosticValueNeeds which relates
to the access of the current value via diagnostic services (see [TPS_SWCT_02003]).c
(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01656] Suffix used for the resulting name of the PortInterface for
DataServices, IOControlRequest, and IOControlResponse dThe suffix used
for the resulting name of the PortInterface for the DataServices_{Data}, IO-
ControlRequest_{Data}, and IOControlResponse_{Data} shall be taken from the
shortName of the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_-
SWCT_03190)
The service use case is visualized in Figure 13.10. The SwComponentPrototype
contains two SwcServiceDependencys, one for the I/O Control, and one for the
access of the dataElement with the shortName “IOx” by the Dcm.
Please note that, in this example, the SenderReceiverInterface used on the
PPortPrototype of the ApplicationSwComponentType has several dataEle-
ments (where the dataElement with the shortName “IOx” is one of them). This is a
perfectly valid configuration.
On the other hand, the SenderReceiverInterface used on the RPortProto-
type of the ServiceSwComponentType representing the Dcm can only have one
dataElement. This single dataElement shall (as far as the example is concerned)
be given the shortName “IOx”.
Note the reference from the DiagnosticIoControlNeeds to the DiagnosticVal-
ueNeeds. this reference explicitly expresses that access to a DID is combined with the
usage of I/O control.
DiagnosticIoControlNeeds
„IOx“
Connector
„IOControlResponse_IOx“
«isOfType» «isOfType»
SenderReceiverInterface
„IOControlResponse_IOx“
SwcServiceDependency RoleBasedDataAssignment
„Data_IOx“ role: „signalBasedDiagnostics“
Conn
ector
«isOfType»
«isOfType»
SenderReceiverInterface
currentValue „DataXY_IO“
SenderReceiverInterface
„IOx“ „DataServices_Data_IOx“
DiagnosticValueNeeds
„Data_IOx“ „IOx“
„IOy“
13.8.4.7 Dcm Service Use Case: Access to protocol, session and security in-
formation
13.8.4.8 Dcm Service Use Case: Verify the access to security level
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01627] Suffix used for the resulting name of the PortInterface
for the Security Access dThe suffix used for the resulting name of the PortInter-
face for the Security Access (SecurityAccess_{SecurityLevel}) shall be taken from the
shortName of the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_-
SWCT_03190)
For more information please refer to [SWS_Dcm_00685]
13.8.4.9 Dcm Service Use Case: multiple testers access one ECU
13.8.4.11 Dcm Service Use Case: read/write and IOCtrl current values by Client
Server Interface
Class ObdControlServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs of a component or module on the configuration of OBD Service 08 (request
control of on-board system) in relation to a particular test-Identifier (TID) supported by this component or
module.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.42: ObdControlServiceNeeds
Enumeration ObdRatioConnectionKindEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Defines the way how the IUMPR service connection between the Dem and the client component or
module is handled (for details see the DEM Specification).
Literal Description
apiUse The IUMPR service (of the DEM) uses an explicit API to connect to the component or module.
Tags:atp.EnumerationLiteralIndex=0
observer The IUMPR service (of the Dem) uses no API but "observes" the associated diagnostic event.
Tags:atp.EnumerationLiteralIndex=1
+usedFid
DiagnosticEventNeeds
DiagnosticCapabilityElement
+ prestoredFreezeframeStoredInNvm: Boolean [0..1]
+ audience: DiagnosticAudienceEnum [0..*] + usesMonitorData: Boolean [0..1]
+ diagRequirement: DiagRequirementIdString [0..1]
+ securityAccessLevel: PositiveInteger [0..1]
ObdMonitorServiceNeeds
ObdRatioServiceNeeds
ObdPidServiceNeeds «enumeration»
DiagnosticDenominatorConditionEnum
coldstart
evap
500miles
individual
obd
ObdInfoServiceNeeds
ObdControlServiceNeeds
ObdRatioDenominatorNeeds
Class ObdPidServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs of a component or module on the configuration of OBD Services in relation
to a particular PID (parameter identifier) which is supported by this component or module.
In case of using a client/server communicated value, the related value shall be communicated via the
port referenced by asssignedPort. The details of this communication (e.g. appropriate naming
conventions) are specified in the related software specifications (SWS).
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
5
4
Class ObdPidServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.44: ObdPidServiceNeeds
Class ObdInfoServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs of a component or module on the configuration of OBD Services in relation
to a given InfoType (OBD Service 09) which is supported by this component or module.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.45: ObdInfoServiceNeeds
Class ObdMonitorServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the abstract needs of a component or module on the configuration of OBD Services in relation
to a particular on-board monitoring test supported by this component or module. (OBD Service 06).
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
applicationData ApplicationDataType 0..1 ref reference to an ApplicationDataType that describes the
Type scaling of the data reported by the software-component to
the Dem.
eventNeeds DiagnosticEventNeeds 0..1 ref This reference identifies the corresponding diagnostic
event.
unitAndScaling PositiveInteger 0..1 attr Unit and scaling ID according to ISO 15031-5.
Id
Table 13.46: ObdMonitorServiceNeeds
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00610] and [SWS_Dem_00611].
[constr_2053] Consistency between role IUMPRNumerator and ObdRatioSer-
viceNeeds.connectionType dIf a SwcServiceDependency with a ObdRa-
tioServiceNeeds is defined and the attribute connectionType of the contained
ObdRatioServiceNeeds is set to ObdRatioConnectionKindEnum.apiUse, a
RoleBasedPortAssignment with the role value IUMPRNumerator shall be de-
fined.
If the attribute connectionType of the contained ObdRatioServiceNeeds is set to
ObdRatioConnectionKindEnum.observer, the role value IUMPRNumerator is
not applicable.
This rule shall be imposed at the time when the RTE is generated.c()
13.8.5.2 Dcm Service Use Case: read parameter identifier via diagnostic ser-
vices by Client Server Interface
13.8.5.3 Dcm Service Use Case: read parameter identifier via diagnostic ser-
vices by Sender Receiver Interface
c(RS_SWCT_00170, RS_SWCT_03190)
[TPS_SWCT_01631] Suffix used for the resulting name of the PortInterface for
the Infotype Services dThe suffix used for the resulting name of the PortInterface
for the Infotype Services (InfotypeServices_{VehInfoData}) shall be taken from the
shortName of the applicable SwcServiceDependency.c(RS_SWCT_00170, RS_-
SWCT_03190)
For more information please refer to [SWS_Dcm_00688].
13.8.5.5 Dem Service Use Case: Read DTR data from SW-C for OBD Service
$06
ObdMonitorServiceNeeds DiagnosticEventNeeds
0..1
+applicationDataType 0..1
AtpBlueprint
AtpBlueprintable
AutosarDataType
ApplicationDataType
13.8.5.6 Dcm Service Use Case: request control of on-board system, test or
component
RepresentedPortGroups
N/A
c(RS_SWCT_00170, RS_SWCT_03190)
For more information please refer to [SWS_Dem_00742].
Class ObdRatioDenominatorNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class shall be used to indicate that a software-component wants to access the
in-use-monitoring performance ration denominator.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
denominator DiagnosticDenominator 0..1 attr This attribute indicates the applicable denominator
Condition ConditionEnum condition.
Enumeration DiagnosticDenominatorConditionEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This enumeration contains valid denominator types.
Literal Description
_500miles Condition based on definition of 500miles conditions as defined for OBD2.
Tags:atp.EnumerationLiteralIndex=2
coldstart Condition based on definition of "cold start" as defined for EU5+
Tags:atp.EnumerationLiteralIndex=0
evap Condition based on definition of "EVAP" conditions as defined for OBD2.
Tags:atp.EnumerationLiteralIndex=1
individual condition based on definition of individual requirements.
Tags:atp.EnumerationLiteralIndex=3
obd Condition based on definition of OBD requirements.
Tags:atp.EnumerationLiteralIndex=4
This chapter describes the usage of specific meta-classes to support the specification
of diagnostics over IP. For more details, please refer to ISO 13400 [43].
Identifiable
ServiceNeeds
DoIpServiceNeeds
Class DoIpGidNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The DoIpGidNeeds indicates that the software-component owning this ServiceNeeds is providing the
GID number either after a GID Synchronisation or by other means like e.g. flashed EEPROM parameter.
This need can be used independent from DoIpGidSynchronizationNeeds and is necessary if the GID can
not be provided out of the DoIP configuration options.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.50: DoIpGidNeeds
Class DoIpGidSynchronizationNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The DoIpGidSynchronizationNeeds indicates that the software-component owning this ServiceNeeds is
triggered by the DoIP entity to start a synchronization of the GID (Group Identification) on the DoIP
service 0x0001, 0x0002, 0x0003 or before announcement via service 0x0004 according to ISO
13400-2:2012 if necessary. Note that this need is only relevant for DoIP synchronization masters.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
5
4
Class DoIpGidSynchronizationNeeds
– – – – –
Table 13.51: DoIpGidSynchronizationNeeds
Class DoIpPowerModeStatusNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The DoIpPowerModeStatusNeeds indicates that the software-component owning this ServiceNeeds is
providing the PowerModeStatus for the DoIP service 0x4003 according to ISO 13400-2:2012.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.52: DoIpPowerModeStatusNeeds
Class DoIpRoutingActivationAuthenticationNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note DoIPRoutingActivationAuthenticationNeeds indicates that the software-component owning this Service
Needs will have an authentication required for a DoIP routing activation service (0x0005) according to
ISO 13400-2:2012.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
dataLength PositiveInteger 0..1 attr Describes the length in byte of the additional information
Request for RA authentication that is needed by the software
entity. If the software entity is a software-component the
attribute does not need to exist as the information is
available via the length of the uint8 Array type. Otherwise
(i.e the software entity is a Complex Driver) this attribute
needs to be filled out if additional information is needed.
dataLength PositiveInteger 0..1 attr Describes the length in byte of the additional information
Response for RA authentication that is provided by the software
entity. If the software entity is a software-component the
attribute does not need to exist as the information is
available via the length of the uint8 Array type. Otherwise
(i.e the software entity is a Complex Driver) this attribute
needs to be filled in if additional information is provided.
routing NameToken 0..1 attr Describes the ISO 13400-2:2012 "routing activation
ActivationType request activation type" which is received via DoIP
service 0x0005. 0x00 is DEFAULT, 0x01 is WWH-OBD. If
neither of the specified values (0x00 or 0x01) is needed
the token shall contain RA_ + hex value representation of
the integer value shall be used (i.e: RA_0xE1).
Class DoIpRoutingActivationConfirmationNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note DoIpRoutingActivationConfirmationNeeds indicates that the software-component that owns this Service
Needs will have a confirmation required for a DoIP routing activation service (0x0005) according to ISO
13400-2:2012.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
5
4
Class DoIpRoutingActivationConfirmationNeeds
dataLength PositiveInteger 0..1 attr Describes the length in byte of the additional information
Request for RA confirmation that is needed by the software entity.
If the software entity is a software-component the
attribute does not need to exist as the information is
available via the length of the uint8 Array type. Otherwise
(i.e the software entity is a Complex Driver) this attribute
needs to be filled out if additional information is needed.
dataLength PositiveInteger 0..1 attr Describes the length in byte of the additional information
Response for RA confirmation that is provided by the software entity.
If the software entity is a software-component the
attribute does not need to exist as the information is
available via the length of the uint8 Array type. Otherwise
(i.e the software entity is a Complex Driver) this attribute
needs to be filled out if additional information is provided.
routing NameToken 0..1 attr Describes the ISO 13400-2:2012 "routing activation
ActivationType request activation type" which is received via DoIP
service 0x0005. 0x00 is DEFAULT, 0x01 is WWH-OBD. If
neither of the specified values (0x00 or 0x01) is needed
the token shall contain RA_ + hex value representation of
the integer value shall be used (i.e: RA_0xE1).
Class DoIpActivationLineNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note A DoIP entity needs to be informed when an external tester is attached or activated. The DoIpActivation
ServiceNeeds specifies the trigger for such an event. Examples would be a Pdu via a regular
communication bus, a PWM signal, or an I/O. For details please refer to the ISO 13400.
Base ARObject, DoIpServiceNeeds, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.55: DoIpActivationLineNeeds
13.8.6.1 DoIP Service Use Case: GID synchronization can be necessary if the
ECU is DoIP Gid synchronization master
RepresentedPortGroups
N/A
c(RS_SWCT_03310, RS_SWCT_03190)
13.8.6.3 DoIP Service Use Case: Tester could also request the power status
with respect to diagnostics
Scenario: before starting the diagnostics processing for the DoIP entity or sub-
networks connected via DoIP, the tester could also request the power status with re-
spect to diagnostics. To support this option it will be necessary to define a DoIpPow-
erModeStatusNeeds.
[TPS_SWCT_01539] Tester can also request before starting diagnostic process-
ing for the DoIP entity or sub-networks connected via DoIP the power status with
respect to diagnostics d
ServiceNeeds kind DoIpPowerModeStatusNeeds
RoleBasedPortAssignment valid roles:
• CallbackGetPowerMode [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_03310, RS_SWCT_03190)
13.8.6.4 DoIP Service Use Case: Routing activation mechanism is used which
can lead to additional impact regarding authentication or confirmation
Scenario: to enable diagnostics of the tester to a different target address, the routing
activation mechanism is used which can lead to additional impact regarding authentica-
tion or confirmation. Here, the definition of DoIpRoutingActivationAuthentica-
tionNeeds and/or DoIpRoutingActivationConfirmationNeeds would be ap-
plicable.
[TPS_SWCT_01544] prefix used for the actual name of the used PortInterface
for the routing activation dThe prefix used for the actual name of the used PortIn-
terface for the routing activation shall be taken from the shortName of the enclosing
SwcServiceDependency.c(RS_SWCT_03310, RS_SWCT_03190)
[TPS_SWCT_01540] Routing activation mechanism is used which can lead to
additional impact regarding authentication or confirmation d
ServiceNeeds kind
• DoIpRoutingActivationAuthenticationNeeds [0..1]
• DoIpRoutingActivationConfirmationNeeds [0..1]
RoleBasedPortAssignment valid roles:
• RoutingActivation [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_03190)
13.8.6.5 DoIP Service Use Case: a DoIP entity needs to be informed when an
external tester is attached or activated.
13.8.6.6 Service Use Case: Set and reset Warning Indicator Request bit
Scenario: In some cases (e.g. controlling a failsafe reaction in application) the “Warning
Indicator Request”-bit of a corresponding event in Dem shall be set/reset by a special
“failsafe software-component”.
The failsafe software-component has to ensure a proper status of the “Warning Indica-
tor Request”-bit (e.g. regarding ISO14229-1 or manufacture specific requirements).
Therefore, the failsafe SW-C can use existing Dem mechanism to get the information
about status changes of events in Dem (e.g. Callback EventStatusChanged).
For this purpose, the applicable ServiceSwComponentType is supposed to provide
a PPortPrototype typed by the ClientServerInterface named EventStatus
towards the application.
To trigger the existence of the PPortPrototype, WarningIndicatorRequested-
BitNeeds shall be defined.
[TPS_SWCT_01547] Ability to set and reset the Warning Indicator Request bit d
ServiceNeeds kind WarningIndicatorRequestedBitNeeds
RoleBasedPortAssignment valid roles:
• EventStatus [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_03310, RS_SWCT_03190)
Class WarningIndicatorRequestedBitNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to explicitly request the existence of the WarningIndicator
RequestedBit.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.56: WarningIndicatorRequestedBitNeeds
13.8.6.7 DoIP Service Use Case: Atomic Software-Component provides the fur-
ther action byte to the DoIP Service Component
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
The role Dcm_EcuResetModeSwitchInterface is applicable for an RPortProto-
type typed by a ModeSwitchInterface.c(RS_SWCT_00170, RS_SWCT_03190)
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
The role Dcm_CommunicationControl is applicable for an RPortPrototype typed
by a ModeSwitchInterface.c(RS_SWCT_00170, RS_SWCT_03190)
13.8.7.6 Dcm Service Use Case: Response On Event via diagnostic services
• Dcm_ResponseOnEventModeSwitchInterface [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
The role Dcm_ResponseOnEventModeSwitchInterface is applicable for an
RPortPrototype typed by a ModeSwitchInterface and the role Dcm_Roe is
applicable for an PPortPrototype typed by a ClientServerInterface.c(RS_-
SWCT_00170, RS_SWCT_03190)
Class DiagnosticResponseOnEventNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class indicates a service use-case for the diagnostic service ResponseOnEvent.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.59: DiagnosticResponseOnEventNeeds
Scenario: if a hardware component is detected as being defective, the Dem shall in-
form the SwComponentPrototype typed by an AtomicSwComponentType which is
responsible for executing a hardware-shutdown.
[TPS_SWCT_01680] Dem Use Case: Atomic Software-Component implements a
Hardware Shutdown d
ServiceNeeds kind DiagnosticComponentNeeds
RoleBasedPortAssignment valid roles:
• CallbackComponentStatusChanged [1]
RoleBasedDataAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_03190)
Class DiagnosticComponentNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to specify the service needs for the configuration of component
events.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.60: DiagnosticComponentNeeds
RepresentedPortGroups
N/A
c(RS_SWCT_03190)
Class DiagnosticUploadDownloadNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to specify needs regarding upload and download by means of
diagnostic services.
Base ARObject, DiagnosticCapabilityElement, Identifiable, MultilanguageReferrable, Referrable, Service
Needs
Attribute Type Mult. Kind Note
– – – – –
Table 13.61: DiagnosticUploadDownloadNeeds
Please note that for the described use case of the Dlt Service the following rule applies:
For every used ClientServerInterface it is necessary to create a RoleBased-
PortAssignment.
Thereby the value of the attribute role of the RoleBasedPortAssignment has to
be set to the name of the used standardized ClientServerInterface.
The possible role attribute values and the multiplicity of the related PortPrototypes
are listed at the use case descriptions in the paragraph RoleBasedPortAssignment.
4
Class SyncTimeBaseMgrUserNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.63: SyncTimeBaseMgrUserNeeds
Please note that for the described use cases of the StbM Service following rule ap-
plies:
For every used ClientServerInterface it is necessary to create a RoleBased-
PortAssignment.
Thereby the value of the attribute role of the RoleBasedPortAssignment has to
be set to the name of the used standardized ClientServerInterface.
The possible role attribute values and the multiplicity of the related PortPrototypes
are listed at the use case descriptions in the paragraph RoleBasedPortAssignment.
The general idea behind the time synchronization concept is that the role of global time
master and global time slave are partly implemented in the application software.
For this purpose, the application software provides PortPrototypes typed by the
standardized PortInterfaces GlobalTime_Master and GlobalTime_Slave.
In many cases both PortInterfaces GlobalTime_Master and Global-
Time_Slave will be used by the application software of one ECU. This means that
the ECU is a global time slave on one domain and a global time master on another
domain.
In terms of modeling, a given global time domain is represented by a SwcServiceDe-
pendency.
If one software-component has to deal with different global time domains (e.g. because
it represents a slave in one domain and a master in another) then the corresponding
SwcInternalBehavior needs to define one SwcServiceDependency per global
time domain.
13.10.1 StbM Use Case: start timer and potentially get notified about its expira-
tion
• StartTimer [1]
• TimeNotification [0..1]
RoleBasedDataAssignment
N/A
RoleBasedDataTypeAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
In this case the software-component needs to have an RPortPrototype typed by
the ClientServerInterface StartTimer and (if applicable) a PPortPrototype
typed by the ClientServerInterface TimeNotification.
13.10.3 StbM Use Case: Process time snapshot obtained from global time slave
for diagnostics purposes
• MeasurementNotification [0..1]
RoleBasedDataAssignment
N/A
RoleBasedDataTypeAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
[TPS_SWCT_01743] Suffix used for the resulting name of the PortInterface
for the global time master role dThe suffix used for the resulting name of the
PortInterface for the global time master role GlobalTime_Master_{Name} shall
be taken from the shortName of the applicable SwcServiceDependency.c(RS_-
SWCT_00030)
[TPS_SWCT_01745] Suffix used for the resulting name of the PortInterface for
the global time slave role dThe suffix used for the resulting name of the PortInter-
face for the global time slave role GlobalTime_Slave_{Name} shall be taken from
the shortName of the applicable SwcServiceDependency.c(RS_SWCT_00030)
Class SecureOnBoardCommunicationNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note Specifies the need for the existence of the SecOc module on the respective ECU. This class currently
contains no attributes. An instance of this class is used to find out which ports of a software-component
deal with the administration of secure communication in order to group the request and response ports.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
verification VerificationStatus 0..1 attr This attribute provides the ability to control the mode in
StatusIndication IndicationModeEnum which the application software is notified about the result
Mode of authentication attempts.
Enumeration VerificationStatusIndicationModeEnum
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This enumeration provides options for setting the mode of a verification status indication.
Literal Description
failureAndSuccess Verification attempts that came out "false" or "true" shall be forwarded to the application software.
Tags:atp.EnumerationLiteralIndex=1
failureOnly Only verification attempts that came out "false" shall be forwarded to the application software.
Tags:atp.EnumerationLiteralIndex=0
13.11.1 SecOc Use Case: obtain the verification status of secure communica-
tion
13.11.2 SecOc Use Case: software component retires from secure communica-
tion for a given period
• FreshnessManagement [1]
RoleBasedDataAssignment valid roles:
n/a
RepresentedPortGroups
n/a
c(RS_SWCT_00030)
Scenario: caused by out-of-sync freshness, SecOC cannot verify a MAC, and contacts
the freshness manager (software-component) again to obtain a recalculated freshness
value.
Each recalculation of the freshness inside the freshness manager is counted. After a
given threshold of retries, SecOC has to drop the received message. For this purpose,
the ClientServerOperation GetRxFreshness or GetRxFreshnessAuthData
is used.
[TPS_SWCT_01718] SecOc Use Case: deliver freshness to SecOC III d
ServiceNeeds kind SecureOnBoardCommunicationNeeds
RoleBasedPortAssignment valid roles:
• FreshnessManagement [1]
13.11.6 SecOc Use Case: enable the sending of Pdus even if computation of
the MAC is not possible
Scenario: there are cases where the ability to send authenticated messages associ-
ated with a given freshness id using a default-MAC is required, e.g. if an ECU has been
replaced but was not yet provided with cryptographic keys.
Receivers can distinguish this case from the regular authenticated data exchange by
looking at the MAC, i.e. a (configurable) default MAC is used in the described case.
[TPS_SWCT_01784] SecOc Use Case: enable the sending of Pdus even if com-
putation of the MAC is not possible d
ServiceNeeds kind SecureOnBoardCommunicationNeeds
RoleBasedPortAssignment valid roles:
• SendDefaultAuthenticationInformation [1]
RoleBasedDataAssignment valid roles:
n/a
RepresentedPortGroups
n/a
c(RS_SWCT_00030)
Class J1939RmOutgoingRequestServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class shall be used to specify needs with respect to the configuration of the J1939Rm, in
particular for the case where an ApplicationSwComponentType needs to send a request to another
J1939 node.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.66: J1939RmOutgoingRequestServiceNeeds
Class J1939RmIncomingRequestServiceNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note "This meta-class shall be used to specify needs with respect to the configuration of the J1939Rm, in
particular for the case where an ApplicationSwComponentType needs to accept a request from another
J1939 node.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.67: J1939RmIncomingRequestServiceNeeds
c(RS_SWCT_03180)
Class J1939DcmDm19Support
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The software-component provides information about calibration verification numbers for inclusion in
DM19
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.68: J1939DcmDm19Support
DevelopmentError RuntimeError
Class DevelopmentError
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The reported failure is classified as development error.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, TracedFailure
Attribute Type Mult. Kind Note
– – – – –
Table 13.71: DevelopmentError
Class RuntimeError
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The reported failure is classified as runtime error.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, TracedFailure
Attribute Type Mult. Kind Note
– – – – –
Table 13.72: RuntimeError
13.13.1 Error Tracer Use Case: Default Error Tracer Service use Case: report
failure
[TPS_SWCT_01694] Setup for Default Error Tracer Service use Case: develop-
ment errors or runtime error d
Scenario: a software-component reports development errors or runtime error to the
Default Error Tracer. In this case the following setup applies
ServiceNeeds kind ErrorTracerNeeds
RoleBasedPortAssignment valid roles:
• DETService[1]
RoleBasedDataAssignment valid roles:
n/a
V2xMUserNeeds V2xFacUserNeeds
Class V2xFacUserNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to define service needs for V2x facilities.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.73: V2xFacUserNeeds
Please note that for the described use cases of the V2xFac Service following rule ap-
plies:
For every used SenderReceiverInterface it is necessary to create a Role-
BasedDataAssignment.
• V2xApplRxIndicationCam [0..1]
• V2xApplRxIndicationDenm [0..1]
RoleBasedDataTypeAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
In this case the software-component has to provide one Receiver Port
(V2xApplRxIndicationCam) to receive the current value of the CAM message and
/ or one Receiver Port (V2xApplRxIndicationDenm) to receive the current DENM
message.
Please note that at least one of the two possible RoleBasedDataAssignments shall
exist for this use case.
[constr_1683] Existence of attribute RoleBasedDataAssignment.used-
DataElement.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationCam dIf the attribute RoleBasedDataAssignment.
role is set to the value V2xApplRxIndicationCam then the reference Role-
BasedDataAssignment.usedDataElement.localVariable shall not exist at
the time when the RTE is generated.c()
For explanation of the existence of [constr_1683], it is not intended to provide access
to local variables inside the SwcInternalBehavior.
c(RS_SWCT_00030)
In this case the software component has to provide one Client PortPrototype (typed
by the standardized ClientServerInterface V2xFacDenBs) to
• trigger new DENM message
• trigger updated DENM message
• trigger a cancellation of a DENM message
13.14.4 V2xFac Use Case: Application software component processes the MAP
(topology) Extended Message
• V2xApplRxIndicationSpatem [1]
RoleBasedDataTypeAssignment
N/A
RepresentedPortGroups
N/A
c(RS_SWCT_00030)
In this case the software component has to provide one RPortPrototype (typed by
the standardized SenderReceiverInterface V2xApplRxIndicationSpatem) to
process the Signal Phase And Timing Extended Message (SPATEM).
[constr_1686] Existence of attribute RoleBasedDataAssignment.used-
DataElement.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationSpatem dIf the attribute RoleBasedDataAssignment.
role is set to the value V2xApplRxIndicationSpatem then the reference Role-
BasedDataAssignment.usedDataElement.localVariable shall not exist at
the time when the RTE is generated.c()
For explanation of the existence of [constr_1686], it is not intended to provide access
to local variables inside the SwcInternalBehavior.
Please note that for the described use cases of the V2xFac Service following rule ap-
plies:
For every used ClientServerInterface it is necessary to create a RoleBased-
PortAssignment.
Thereby the value of the attribute role of the RoleBasedPortAssignment has to
be set to the name of the used standardized ClientServerInterface.
The possible role attribute values and the multiplicity of the related PortPrototypes
are listed at the use case descriptions in the paragraph RoleBasedPortAssignment.
13.15.1 V2xM Use Case: Application software component provides Vehicle spe-
cific data to the V2X-Stack for Position and Time information
13.15.2 V2xM Use Case: Application software component needs V2X specific
data from the V2X Manager
c(RS_SWCT_00030)
In this case the software component has to provide one Client PortPrototype (typed
by the standardized ClientServerInterface V2xM_Vdp) to
• access the current time of the V2X-Stack, based on the system clock
• access the earliest date of expiration of a Long Term Certificate
• access the earliest date of expiration of a Pseudonym Certificate
13.15.3 V2xM Use Case: Application software component has soft-control over
Pseudonym-Change within V2X Manager
13.15.4 V2xM Use Case: Application software component has the ability to do
Verification-on-Demand
HardwareTestNeeds
Class HardwareTestNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class represents the ability to indicate that a software-component is interested in the results of
the hardware test and will establish a PortPrototype to query the hardware test manager.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.75: HardwareTestNeeds
IdsMgrNeeds IdsMgrCustomTimestampNeeds
Class IdsMgrNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class is used to indicate that the enclosing SwcServiceDependency represents a service use
case for the Intrusion Detection System Manager.
Tags:atp.Status=draft
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
useSmart Boolean 0..1 attr This attribute controls whether the reporting of the
SensorApi security event shall be done by means of the smart
sensor API.
Table 13.76: IdsMgrNeeds
Class IdsMgrCustomTimestampNeeds
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note This meta-class is used to indicate that the enclosing SwcServiceDependency represents a service use
case for the retrieval of a custom timestamp by the Intrusion Detection System Manager.
Tags:atp.Status=draft
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, ServiceNeeds
Attribute Type Mult. Kind Note
– – – – –
Table 13.77: IdsMgrCustomTimestampNeeds
To indicate the scenario described in this use case the SwcServiceDependency shall
aggregate a IdsMgrNeeds.
[TPS_SWCT_01826]{DRAFT} Application Software Component reports security
event d
ServiceNeeds kind IdsMgrNeeds
RoleBasedPortAssignment valid roles:
• IdsMService [1]
RoleBasedDataAssignment valid roles:
n/a
RepresentedPortGroups
n/a
c(RS_SWCT_00030)
[TPS_SWCT_01827]{DRAFT} Suffix used for the resulting name of the PortIn-
terface for the IdsM Services dThe suffix used for the resulting name of the Port-
Interface for the Data Services (IdsMService_{EventName}) shall be taken from the
shortName of the applicable SwcServiceDependency.c(RS_SWCT_00030)
«atpSplitable»
RptContainer «atpSplitable»
0..*
RptExecutableEntityProperties
RptSwPrototypingAccess
+rptSwPrototypingAccess
+ rptHookAccess: RptAccessEnum [0..1]
0..1 + rptReadAccess: RptAccessEnum [0..1]
+ rptWriteAccess: RptAccessEnum [0..1]
RptImplPolicy
+rptImplPolicy
+ rptEnablerImplType: RptEnablerImplTypeEnum [0..1]
0..1 + rptPreparationLevel: RptPreparationEnum [0..1]
+rptContainer 0..*
«atpVariation,atpSplitable»
ARElement
AtpStructureElement
System
ARElement
+hostSystem + containerIPduHeaderByteOrder: ByteOrderEnum [0..1]
RapidPrototypingScenario
+ ecuExtractVersion: RevisionLabelString [0..1]
0..1
+ pncVectorLength: PositiveInteger [0..1]
+rptSystem + pncVectorOffset: PositiveInteger [0..1]
«atpSplitable» 0..1 + systemVersion: RevisionLabelString
«atpVariation,atpSplitable»
+rptContainer 0..*
Identifiable +byPassPoint AtpInstanceRef
RptContainer AnyInstanceRef
«atpVariation,atpSplitable» 0..*
+rptArHook 0..1
Sdg +sdg
+ gid: NameToken RptHook
0..*
«atpVariation,atpSplitable»
Class RapidPrototypingScenario
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note This meta-class provides the ability to describe a Rapid Prototyping Scenario. Such a Rapid Prototyping
Scenario consist out of two main aspects, the description of the byPassPoints and the relation to an rpt
Hook.
Tags:atp.recommendedPackage=RapidPrototypingScenarios
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
hostSystem System 0..1 ref System which describes the software components of the
host ECU.
rptContainer RptContainer * aggr Top-level rptContainer definitions of this specific rapid
prototyping scenario.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=rptContainer.shortName, rpt
Container.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
rptProfile RptProfile * aggr Defiens the applicable Rapid Prototyping profils which are
especially defining the smbol of the service functions and
the valid id range. The order of the RptProfiles determines
the order of the service function invocation by RTE.
Stereotypes: atpSplitable
Tags:atp.Splitkey=rptProfile.shortName
rptSystem System 0..1 ref System which describes the rapid prototyping algorithm in
the format of AUTOSAR Software Components.
Stereotypes: atpSplitable
Tags:atp.Splitkey=rptSystem
ModeDeclaration in the role hostSystem shall exist at the time when the
RTE is generated.c()
Class RptContainer
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note This meta-class defines a byPassPoint and the relation to a rptHook.
Additionally it may contain further rptContainers if the byPassPoint is not atomic. For example a byPass
Point referencing to a RunnableEntity may contain rptContainers referring to the data access points of
the RunnableEntity.
The RptContainer structure on M1 shall follow the M1 structure of the Software Component Descriptions.
The category attribute denotes which level of the Software Component Description is annotated.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
byPassPoint AtpFeature * iref byPassPoint describes the required preparation of the
host ECU. At a byPassPoint the host ECU shall be
capable to communicate with a RPT System in order to
support the execution of the rapid prototyping algorithms
with the original data calculated by the host system and to
replace dedicated results of the host system by the
results of the rapid prototyping algorithm.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=byPassPoint.contextElement, byPass
Point.target, byPassPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
InstanceRef implemented by:AnyInstanceRef
explicitRpt RptProfile * ref This attribute defines the applicable RptProfiles for the
ProfileSelection specific RptContainer. If not any references to a specific
RptProfile is defined, all RptProfiles defined in the Rapid
PrototypingScenario are applicable.
Stereotypes: atpSplitable
Tags:atp.Splitkey=explicitRptProfileSelection
rptContainer RptContainer * aggr Sub-level rptContainer definitions of this specific rapid
prototyping scenario.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=rptContainer.shortName, rpt
Container.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
rptExecutable RptExecutableEntity 0..1 aggr Describes the required code preparation for rapid
EntityProperties Properties prototyping at ExecutableEntity invocation.
rptHook RptHook 0..1 aggr The rptHook describes the link between a byPassPoint
and the rapid prototyping algorithm.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=rptHook, rptHook.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
rptImplPolicy RptImplPolicy 0..1 aggr Describes the required code preparation for rapid
prototyping at data accesses.
rptSw RptSwPrototyping 0..1 aggr Describes the required accessibility of data and modes by
Prototyping Access the rapid prototyping tooling.
Access
Table 14.2: RptContainer
Class RptHook
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note This meta-class provide the ability to describe a rapid prototyping hook. This can either be described by
an other AUTOSAR system with the category RPT_SYSTEM or as a non AUTOSAR software.
Base ARObject
Attribute Type Mult. Kind Note
codeLabel CIdentifier 0..1 attr This attribute provides a code label which is used in the
implementation of the hook. For example this can be an C
function name or the name of data definition.
mcdIdentifier NameToken 0..1 attr This attribute provides an identifier which shall be used in
a MCD System to display the Rpt Hook.
rptArHook AtpFeature 0..1 iref This describes the hook with the means of another
AUTOSAR system.
InstanceRef implemented by:AnyInstanceRef
sdg Sdg * aggr This property allows to keep special data which is not
represented by the standard model. It can be utilized to
keep e.g. tool specific data.
1
Because in this case the shortName becomes mandatory.
Therefore, a different approach (as sketched in Figure 14.3) has been implemented.
+dataReceivePointByValue
AbstractAccessPoint AtpStructureElement
ModeAccessPoint
AtpStructureElement 0..* «atpVariation,atpSplitable» ExecutableEntity +modeAccessPoint
Identifiable +dataReadAccess RunnableEntity «atpVariation,atpSplitable» *
VariableAccess
0..* «atpVariation,atpSplitable»
+readLocalVariable
+dataReceivePointByArgument ModeAccessPointIdent
0..* «atpVariation,atpSplitable»
+dataWriteAccess
AbstractAccessPoint
AtpStructureElement +internalTriggeringPoint +externalTriggeringPoint
ExternalTriggeringPoint
Identifiable
0..* «atpVariation,atpSplitable» «atpVariation,atpSplitable» 0..*
InternalTriggeringPoint
AbstractAccessPoint AbstractAccessPoint
AtpStructureElement +modeSwitchPoint +asynchronousServerCallResultPoint AtpStructureElement
Identifiable Identifiable
* «atpVariation,atpSplitable» «atpVariation,atpSplitable» 0..*
ModeSwitchPoint AsynchronousServerCallResultPoint
Figure 14.3: Access Points used in the context of the Rapid Prototyping Scenario
2
Again, the optional aggregation is a necessary prerequisite to not break the backwards compatibility
of the AUTOSAR XML schema.
Class ModeAccessPointIdent
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note This meta-class has been created to introduce the ability to become referenced into the meta-class Mode
AccessPoint without breaking backwards compatibility.
Base ARObject, AbstractAccessPoint, AtpClassifier , AtpFeature, AtpStructureElement, IdentCaption,
Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 14.6: ModeAccessPointIdent
Class ExternalTriggeringPointIdent
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note This meta-class has been created to introduce the ability to become referenced into the meta-class
ExternalTriggeringPoint without breaking backwards compatibility.
Base ARObject, AbstractAccessPoint, AtpClassifier , AtpFeature, AtpStructureElement, IdentCaption,
Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table 14.7: ExternalTriggeringPointIdent
The following (simplified) listing 14.1 sketches the usage of the meta-class Ident-
Caption for the purpose of effectively allowing references to a ModeAccessPoint.
Listing 14.1: Example for the definition of an RPT scenario
<AR-PACKAGE>
<SHORT-NAME>IC_Example</SHORT-NAME>
<ELEMENTS>
<APPLICATION-SW-COMPONENT-TYPE>
<SHORT-NAME>ASCT</SHORT-NAME>
<INTERNAL-BEHAVIORS>
<SWC-INTERNAL-BEHAVIOR>
<SHORT-NAME>IB</SHORT-NAME>
<RUNNABLES>
<RUNNABLE-ENTITY>
<SHORT-NAME>RE</SHORT-NAME>
<MODE-ACCESS-POINTS>
<MODE-ACCESS-POINT>
<IDENT>
<SHORT-NAME>ident</SHORT-NAME>
</IDENT>
</MODE-ACCESS-POINT>
</MODE-ACCESS-POINTS>
</RUNNABLE-ENTITY>
</RUNNABLES>
</SWC-INTERNAL-BEHAVIOR>
</INTERNAL-BEHAVIORS>
</APPLICATION-SW-COMPONENT-TYPE>
<COMPOSITION-SW-COMPONENT-TYPE>
<SHORT-NAME>CSCT</SHORT-NAME>
<COMPONENTS>
<SW-COMPONENT-PROTOTYPE>
<SHORT-NAME>SCP</SHORT-NAME>
<TYPE-TREF DEST="APPLICATION-SW-COMPONENT-TYPE">/IC_Example/
ASCT</TYPE-TREF>
</SW-COMPONENT-PROTOTYPE>
</COMPONENTS>
</COMPOSITION-SW-COMPONENT-TYPE>
<RAPID-PROTOTYPING-SCENARIO>
<SHORT-NAME>rptScenario</SHORT-NAME>
<RPT-CONTAINERS>
<RPT-CONTAINER>
<SHORT-NAME>rptContainer</SHORT-NAME>
<BY-PASS-POINT-IREFS>
<BY-PASS-POINT-IREF>
<CONTEXT-ELEMENT-REF DEST="SW-COMPONENT-PROTOTYPE">/
IC_Example/CSCT/SCP</CONTEXT-ELEMENT-REF>
<TARGET-REF DEST="MODE-ACCESS-POINT-IDENT">/IC_Example/ASCT
/IB/RE/ident</TARGET-REF>
</BY-PASS-POINT-IREF>
</BY-PASS-POINT-IREFS>
</RPT-CONTAINER>
</RPT-CONTAINERS>
</RAPID-PROTOTYPING-SCENARIO>
</ELEMENTS>
</AR-PACKAGE>
14.5.1 RP Preparation
The Extended Buffer Access method of Rapid Prototyping requires the definition of
preparation level (see table 14.4) to enable RPT-related code generation.
The RptProfile of category EXTENDED_BUFFER_ACCESS provides the common at-
tributes to implement the RPT support in the code.
An ECU may have to support multiple RptProfiles in parallel – for example, to sup-
port in one ECU the RPT tools of different suppliers.
Nevertheless, not all components might need to support all possible methods, for in-
stance an XCP based RPT method might not be applicable for hard real-time critical
functions, and therefore the RptProfile can be selected.
[TPS_SWCT_01719] Selection of applicable RptProfiles dThe reference Rpt-
Container.explicitRptProfileSelection provides a list of RptProfiles
which needs to be applied when the RPT support is implemented.
If the explicitRptProfileSelection is not defined, all RptProfiles defined in
the owing RapidPrototypingScenario are applicable.c(RS_SWCT_03280)
Class RptProfile
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note The RptProfile describes the common properties of a Rapid Prototyping method.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
maxService PositiveInteger 0..1 attr Highest service point id useable for RTE generated
PointId service points.
minServicePoint PositiveInteger 0..1 attr Lowest service point id useable for RTE generated
Id service points.
servicePoint CIdentifier 0..1 attr Complete symbol of the function implementing the post
SymbolPost service point. This symbol is used for post-build hooking
purposes.
servicePoint CIdentifier 0..1 attr Complete symbol of the function implementing the pre
SymbolPre service point. This symbol is used for post-build hooking
purposes.
stimEnabler RptEnablerImplType 0..1 attr Defines if the service points support the stimulation
Enum enabler. If RptProfile.stimEnabler is "none" then no
stimulation enabler is passed to the service function.
Otherwise the stimulation enabler will be passed as a
parameter.
4
Enumeration RptEnablerImplTypeEnum
rptEnablerRamAnd The RTE generator implements both the RAM and ROM "RP enabler".
Rom
Tags:atp.EnumerationLiteralIndex=3
rptEnablerRom "RP enabler" is implemented as a calibrateable ROM variable.
Tags:atp.EnumerationLiteralIndex=2
Enumeration RptPreparationEnum
Package M2::AUTOSARTemplates::CommonStructure::MeasurementCalibrationSupport::RptSupport
Note Determines the RP preparation level for access to VariableDataPrototypes within the generated RTE
implementation.
Literal Description
none No RP preparation for VariableDataPrototype.
Tags:atp.EnumerationLiteralIndex=0
rptLevel1 The RTE implementation uses an "RP global buffer" for measurement and post-build hooking
purposes.
Tags:atp.EnumerationLiteralIndex=1
rptLevel2 As rpLevel1 but the RTE implementation also uses both "RP enabler flag" to permit RP overwrite at
run-time.
Tags:atp.EnumerationLiteralIndex=2
rptLevel3 As rpLevel2 but the RTE implementation also uses "RP global measurement buffer" to record the
original ECU-generated value in addition to the RP value.
Tags:atp.EnumerationLiteralIndex=3
The RP Service Function is responsible for sampling the required data. The sam-
pled data is not passed as parameters – the invocation of the RP Service Func-
tion passes an RP Service Point ID as the first parameter of the RP Service
Point which is used by the RP Service Component to identify the service point.
[TPS_SWCT_01724] Semantics of RapidPrototypingScenario dA RapidPro-
totypingScenario aggregates one or more RptContainers and one or more
RptProfiles:
• Each RptContainer instance specifies, by reference, one or more element(s)
applicable to the service-based access.
• Each RptProfile instance specifies both the name of the RP Service
Function (attributes servicePointSymbolPre and servicePointSym-
bolPost) and the applicable RP Service Point IDs (attributes minServi-
cePointId and maxServicePointId).
c(RS_SWCT_03280)
The cross-product of the information from the RptContainer and RptProfile within
a rapid prototyping scenario is used to construct the service function invocations.
Example: An RapidPrototypingScenario contains a single RptContainer that
references an RTEEvent instance, and a single RptProfile with service point sym-
bol attribute MyServiceFunction. As a result, the RTE generator then wraps in-
vocations of the RunnableEntity started by the event with calls to service function
MyServiceFunction.
Class RptExecutableEntityProperties
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note Describes the code preparation for rapid prototyping at ExecutableEntity invocation.
Base ARObject
Attribute Type Mult. Kind Note
maxRptEventId PositiveInteger 0..1 attr Highest RPT event id usable for RTE generated service
points. This attribute is relevant, if dedicated id range
shall be applied to the ExecutableEntitys of a software
component or specific ExecutableEntitys.
minRptEventId PositiveInteger 0..1 attr Lowest RPT event id usable for RTE generated service
points. This attribute is relevant, if dedicated id range
shall be applied to the ExecutableEntitys of a software
component or specific ExecutableEntitys.
rptExecution RptExecutionControl 0..1 attr This attribute specifies the rapid prototyping control of the
Control Enum executable
rptServicePoint RptServicePointEnum 0..1 attr Enables generation of service points by the RTE
generator.
Enumeration RptServicePointEnum
Package M2::AUTOSARTemplates::SWComponentTemplate::RPTScenario
Note Specifies whether the invocation of ExecutableEntitys due to activation of specific RteEvents/Bsw
Events requires the insertion of Service Points.
Literal Description
enabled Enables generation of service points by the RTE generator.
Tags:atp.EnumerationLiteralIndex=0
none No Service Points are requested.
Tags:atp.EnumerationLiteralIndex=1
A Glossary
Artifact This is a Work Product Definition that provides a description and definition for
tangible work product types. Artifacts may be composed of other artifacts ([51]).
At a high level, an artifact is represented as a single conceptual file.
AUTOSAR Tool This is a software tool which supports one or more tasks defined as
AUTOSAR tasks in the methodology. Depending on the supported tasks, an
AUTOSAR tool can act as an authoring tool, a converter tool, a processor tool or
as a combination of those (see separate definitions).
AUTOSAR Authoring Tool An AUTOSAR Tool used to create and modify AUTOSAR
XML Descriptions. Example: System Description Editor.
AUTOSAR Converter Tool An AUTOSAR Tool used to create AUTOSAR XML files by
converting information from other AUTOSAR XML files. Example: ECU Flattener
AUTOSAR Definition This is the definition of parameters which can have values. One
could say that the parameter values are Instances of the definitions. But in the
meta model hierarchy of AUTOSAR, definitions are also instances of the meta
model and therefore considered as a description. Examples for AUTOSAR def-
initions are: EcucParameterDef, PostBuildVariantCriterion, SwSys-
temconst.
AUTOSAR XML Description In AUTOSAR this means "filled Template". In fact an
AUTOSAR XML description is the XML representation of an AUTOSAR model.
The AUTOSAR XML description can consist of several files. Each individual file
represents an AUTOSAR partial model and shall validate successfully against the
AUTOSAR XML schema.
AUTOSAR Meta-Model This is an UML2.0 model that defines the language for de-
scribing AUTOSAR systems. The AUTOSAR meta-model is an UML represen-
tation of the AUTOSAR templates. UML2.0 class diagrams are used to describe
the attributes and their interrelationships. Stereotypes, UML tags and OCL ex-
pressions (object constraint language) are used for defining specific semantics
and constraints.
AUTOSAR Meta-Model Tool The AUTOSAR Meta-Model Tool is the tool that gener-
ates different views (class tables, list of constraints, diagrams, XML Schema etc.)
on the AUTOSAR meta-model.
AUTOSAR Model This is a representation of an AUTOSAR product. The AUTOSAR
model represents aspects suitable to the intended use according to the
AUTOSAR methodology.
Strictly speaking, this is an instance of the AUTOSAR meta-model. The infor-
mation contained in the AUTOSAR model can be anything that is representable
according to the AUTOSAR meta-model.
Profile Authoring Support Data Data that is used for efficient authoring of a profile.
E.g. list of referable constraints, meta-classes, meta-attributes or other reusable
model assets (blueprints)
Profile Authoring Tool A specialized AUTOSAR Tool which focuses on the authoring
of profiles for data exchange points. It e.g. provides support for the creation of
profiles from scratch, modification of existing profiles or composition of existing
profiles.
Profile Compatibility Checker Tool A specialized AUTOSAR Tool which focuses on
checking the compatibility of profiles for data exchange. Note that this compat-
ibility check includes manual compatibility checks by engineers and automated
assistance using more formal algorithms.
Profile Consistency Checker Tool A specialized AUTOSAR Tool which focuses on
checking the consistency of profiles.
Property A property is a structural feature of an object. As an example a “connector”
has the properties “receive port” and “send port”
Properties are made variant by the atpVariation.
Prototype This is the implementation of a role of a type within the definition of another
type. In other words a type may contain Prototypes that in turn are typed by
"Types". Each one of these prototypes becomes an instance when this type is
instantiated.
Type A type provides features that can appear in various roles of this type.
Value This is a particular value assigned to a “Definition”.
Variability Variability of a system is its quality to describe a set of variants. These
variants are characterized by variant specific property settings and / or selections.
As an example, such a system property selection manifests itself in a particular
“receive port” for a connection.
This is implemented using the atpVariation.
Variant A system variant is a concrete realization of a system, so that all its proper-
ties have been set respectively selected. The software system has no variability
anymore with respect to the binding time.
This is implemented using EvaluatedVariantSet.
Variation Binding A variant is the result of a variation binding process that resolves
the variability of the system by assigning particular values/selections to all the
system’s properties.
This is implemented by VariationPoint.
Variation Binding Time The variation binding time determines the step in the method-
ology at which the variability given by a set of variable properties is resolved.
B.1.1 Overview
One approach for data serialization in AUTOSAR is the generic concept of data trans-
formation, in the specific case of this scenario a data transformer is needed that does
a depth-first serialization over a complex data structure.
This approach is already supported in AUTOSAR by means of the so-called SOME/IP
Transformer [52].
This existing concept can be taken over for the implementation of the scenario de-
scribed in this chapter, albeit with some customizations. For example, the SOME/IP-
specific protocol header generated by the SOME/IP Transformer is obviously not rele-
vant for the scenario.
The modeling of this use case shall be explained along a simple example sketched in
Figure B.1:
• It is necessary to define two individual ClientServerOperationMappings.
– One of these (in this example: CSOM1) shall reference a DataTransfor-
mation where attribute dataTransformationKind is set to the value
DataTransformationKindEnum.asymmetricToByteArray.
– The other (in this example: CSOM2) shall reference a DataTransfor-
mation where attribute dataTransformationKind is set to the value
DataTransformationKindEnum.asymmetricFromByteArray.
• CSOM1 shall reference the ClientServerOperation Op1 (on the end of the
ApplicationSwComponentType) in the role firstOperation.
• CSOM1 shall reference the ClientServerOperation Op2 (on the end of the
ComplexDeviceDriverSwComponentType) in the role secondOperation.
• CSOM2 shall reference the ClientServerOperation Op1 (on the end of the
ApplicationSwComponentType) in the role secondOperation.
• CSOM2 shall reference the ClientServerOperation Op2 (on the end of the
ComplexDeviceDriverSwComponentType) in the role firstOperation.
• CSOM1 shall aggregate two DataPrototypeMappings in the role argu-
mentMapping
– The first DataPrototypeMapping shall reference (in the role first-
DataPrototype) the ArgumentDataPrototype named In1 of
ClientServerOperation OP1 and (in the role secondDataPrototype)
the ArgumentDataPrototype named In of ClientServerOperation
OP2.
– The second DataPrototypeMapping shall reference (in the role
firstDataPrototype) the ArgumentDataPrototype named In2 of
DataTransformation „DT2BA“
dataTransformationKind = «isOfType»
asymmetricToByteArray
«isOfType»
ClientServerInterface
ClientServerOperationMapping „CS2“
„CSOM1"
ClientServerOperation „Op2"
DataPrototypeMapping
ArgumentDataPrototype „In"
ClientServerInterface DataPrototypeMapping
ArgumentDataPrototype „Out"
„CS1“
ClientServerOperation „Op1"
ArgumentDataPrototype „In1"
ArgumentDataPrototype „In2" firstOperation ClientServerOperationMapping
„CSOM2"
ArgumentDataPrototype „Out1"
DataPrototypeMapping
ArgumentDataPrototype „Out2"
DataPrototypeMapping
DataTransformation „BA2DT“
dataTransformationKind =
asymmetricFromByteArray
Please note that in Figure B.1 the role names of references from DataProto-
typeMapping have been left out of the picture for reasons of simplicity.
N/A
Number Heading
[constr_1000] End-to-end protection is limited to sender/receive communication
[constr_1001] Value of dataId shall be unique
[constr_1002] End-to-end protection does not support n:1 communication
[constr_1004] Mapping of ApplicationDataTypes
Compatibility of ImplementationDataTypes mapped to the same Application-
[constr_1005]
DataType
[constr_1006] applicable data categorys
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1008] Applicability of categorys STRUCTURE and ARRAY
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1010] If nativeDeclaration does not exist
[constr_1011] category of SwBaseType
[constr_1012] Value of category is FIXED_LENGTH
[constr_1013] Value of category is VARIABLE_LENGTH
[constr_1014] Supported value encodings for SwBaseType
[constr_1015] Prioritization of SwDataDefProps
[constr_1016] invalidValue is restricted
[constr_1017] Supported combinations of swImplPolicy and swCalibrationAccess
measurementPoint shall not be referenced by a VariableAccess aggregated by
[constr_1018]
RunnableEntity in the role dataReadAccess
[constr_1019] Compatibility of input value and axis
ParameterDataPrototype needs to be of compatible data type as referenced in
[constr_1020]
sharedAxisType
5
4
Number Heading
[constr_1021] A CompuMethod shall specify instructions for both directions
[constr_1022] Limits shall be defined for each direction of CompuMethod
[constr_1023] Specification of Units in CompuMethods
[constr_1024] Stepwise definition of CompuMethods
[constr_1025] Avoid division by zero in rational formula
[constr_1026] Compatibility of Units
[constr_1027] Types for record layouts
[constr_1029] ConstantSpecificationMapping and ConstantSpecification
ParameterSwComponentType references ConstantSpecificationMap-
[constr_1030]
pingSet
[constr_1031] NvBlockSwComponentType references ConstantSpecificationMappingSet
[constr_1032] DelegationSwConnector can only connect PortPrototypes of the same kind
[constr_1033] Communication scenarios for sender/receiver communication
[constr_1035] Recursive definition of CompositionSwComponentType
[constr_1036] Connect kinds of PortInterfaces
[constr_1037] Client may not connect to multiple servers
[constr_1038] Reference to ApplicationError
[constr_1039] Relevance of swImplPolicy
[constr_1040] Conversion of SenderReceiverInterfaces
[constr_1041] Conversion of ClientServerInterfaces
[constr_1042] Definition of a linear data scaling
[constr_1043] PortInterface vs. ComSpec
[constr_1044] Applicability of DataFilter
[constr_1045] Supported value encodings for SwBaseType in the context of PortInterfaces
[constr_1046] Applicability of [constr_1045]
[constr_1047] Compatibility of ApplicationPrimitiveDataTypes
[constr_1048] Compatibility of ApplicationRecordDataTypes
[constr_1049] Compatibility of ApplicationArrayDataTypes
[constr_1050] Compatibility of ImplementationDataTypes
[constr_1051] Compatibility of SwDataDefProps
[constr_1052] Compatibility of Units
[constr_1053] Compatibility of PhysicalDimensions
[constr_1054] No DataConstr available at the provider
[constr_1055] ImplementationDataType has category VALUE
[constr_1056] ImplementationDataType has category TYPE_REFERENCE
[constr_1057] ImplementationDataType has category DATA_REFERENCE
[constr_1058] ImplementationDataType has category FUNCTION_REFERENCE
[constr_1059] Compatibility of data types with category VALUE
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK, or STRING
5
4
Number Heading
[constr_1061] Compatibility of data types with category STRUCTURE
[constr_1062] Compatibility of data types with category BIT
[constr_1063] Compatibility of data types with category BOOLEAN
[constr_1064] Compatibility of data types with category COM_AXIS, RES_AXIS, CURVE or MAP
ApplicationDataType is or is not compatible to specific Implementation-
[constr_1066]
DataType
ApplicationDataType is or is not compatible to specific Implementation-
[constr_1067]
DataType
Compatibility of VariableDataPrototypes or ParameterDataPrototypes
[constr_1068]
typed by primitive data types
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1069]
AssemblySwConnectors
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1070]
DelegationSwConnectors
compatibility of compatibility of ParameterDataPrototype and VariableDat-
[constr_1071]
aPrototype
4
Number Heading
[constr_1094] Usage of symbol of RunnableEntity
[constr_1095] Values of nDataSets vs. reliability
[constr_1096] SwcModeSwitchEvent and WaitPoint
[constr_1097] RunnableEntity that has a WaitPoint
[constr_1098] Mode switch and mode disabling
[constr_1099] Data type of inter-runnable variables
[constr_1100] Unconnected RPortPrototype typed by a DataInterface
[constr_1101] Mode-related communication
[constr_1102] ApplicationError in the scope of one SwComponentType
[constr_1103] NonqueuedReceiverComSpec and enableUpdate
[constr_1104] Trigger sink and trigger source
[constr_1105] Value of arraySize
[constr_1106] Structure shall have at least one element
[constr_1107] Union shall have at least one element
[constr_1108] Value of ApplicationError.errorCode
Mapping of SwComponentPrototypes typed by a SensorActuatorSwCompo-
[constr_1109]
nentType
[constr_1110] Value of category in EndToEndDescription
[constr_1111] Constraints of dataId in PROFILE_01
[constr_1112] Constraints of dataIdMode in PROFILE_01
[constr_1113] Existence of attributes in PROFILE_01
[constr_1114] Constraints of crcOffset in PROFILE_01
[constr_1115] Constraints of counterOffset in PROFILE_01
[constr_1116] Constraints of dataLength in PROFILE_01
[constr_1117] Constraints of maxDeltaCounterInit in PROFILE_01
[constr_1118] Existence of attributes in PROFILE_02
[constr_1119] Constraints of dataLength in PROFILE_02
[constr_1120] Constraints of dataId in PROFILE_02
[constr_1121] Constraints of maxDeltaCounterInit in PROFILE_02
[constr_1122] Existence of attributes in PROFILE_03
[constr_1123] Constraints of dataLength in PROFILE_03
[constr_1124] Constraints of dataId in PROFILE_03
[constr_1125] Constraints of maxDeltaCounterInit in PROFILE_03
[constr_1126] Compatibility of DataConstrs
[constr_2000] Compatibility of ClientServerOperations triggering the same RunnableEntity
4
Number Heading
4
Number Heading
[constr_2526] PortInterfaces need to be compatible to the blueprints
[constr_2527] Blueprints shall live in package of a proper category
[constr_2528] PortPrototypes shall not refer to blueprints of PortInterfaces
[constr_2529] Blueprints of ports and interfaces shall be compatible
[constr_2533] Iteration along output axis is only supported for VALUE and VAL_BLK
[constr_4000] Local communication of mode switches
[constr_4001] Content of ModeRequestTypeMap
[constr_4002] Unambiguous mapping of modes to data types
[constr_4003] Semantics of SwcModeSwitchEvent
[constr_4004] Context of SenderReceiverAnnotation
[constr_4005] Context of ClientServerAnnotation
[constr_4006] Context of ParameterPortAnnotation
[constr_4007] Context of ModePortAnnotation
[constr_4008] Context of TriggerPortAnnotation
[constr_4009] Context of NvDataPortAnnotation
[constr_4010] Context of DelegatedPortAnnotation
[constr_4011] ComSpec and ModeSwitchedAckEvent
[constr_4012] Timeout of ModeSwitchedAckEvent
[constr_4035] ValueSpecification shall fit into data type
Table C.1: Added Constraints in R4.0.1
N/A
Number Heading
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1061] Compatibility of data types with category STRUCTURE
Number Heading
[constr_1127] ServiceSwComponentType shall not have ServiceNeeds
Queue length of ClientServerOperations associated with the same
[constr_1128]
RunnableEntity
[constr_1129] swImplPolicy and NonqueuedReceiverComSpec
[constr_1130] swImplPolicy and NonqueuedReceiverComSpec
[constr_1131] swImplPolicy and NonqueuedSenderComSpec
[constr_1132] swImplPolicy and NonqueuedSenderComSpec
[constr_1133] Identical CompuScale Symbolic Names shall have the same range
[constr_1134] Allowed structure of TEXTTABLE
[constr_1135] Limit of vt in BITFIELD_TEXTTABLE
[constr_1136] Compatibility of introduction of blueprint and blueprinted element
[constr_1137] Applicability of ParameterInterface
[constr_1138] assignedPort and DiagEventDebounceMonitorInternal
assignedPort of DiagEventDebounceMonitorInternal shall refer to an
[constr_1139]
RPortPrototype
[constr_2034] SwAddrMethod referenced by RunnableEntitys or BswSchedulableEntitys
[constr_2035] swImplPolicy for VariableDataPrototype in SenderReceiverInterface
[constr_2036] swImplPolicy for VariableDataPrototype in NvDataInterface
[constr_2037] swImplPolicy for VariableDataPrototype in the role ramBlock
Number Heading
[constr_1099] Data type of inter-runnable variables
Table C.4: Deleted Constraints in R4.0.2
Number Heading
[constr_1006] applicable data categorys
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1014] Supported value encodings for SwBaseType
[constr_1015] Prioritization of SwDataDefProps
[constr_1043] PortInterface vs. ComSpec
[constr_1051] Compatibility of SwDataDefProps
[constr_1053] Compatibility of PhysicalDimensions
[constr_1063] Compatibility of data types with category BOOLEAN
[constr_1110] Value of category in EndToEndDescription
[constr_1113] Existence of attributes in PROFILE_01
[constr_1118] Existence of attributes in PROFILE_02
[constr_1134] Allowed structure of TEXTTABLE
[constr_2000] Compatibility of ClientServerOperations triggering the same RunnableEntity
[constr_2027] SwcServiceDependency shall be defined for service ports only
Table C.5: Changed Constraints in R4.0.3
Number Heading
[constr_1140] Combination of invalidValue with the attribute handleInvalid
[constr_1141] Applicability of the scope attribute
[constr_1142] category of CompuMethod shall not be extended
[constr_1143] category of AutosarDataType shall not be extended
SensorActuatorSwComponentType, EcuAbstractionSwComponentType, and
[constr_1144]
ComplexDeviceDriverSwComponentType may only reference a HwType
5
4
Number Heading
[constr_1145] Finding the symbol for the representation of a CompuScale in C code
[constr_1146] Applicability of a symbol for a CompuScale in C code
[constr_1147] Standardized values for the attribute category of meta-class PortGroup
PortInterfaces of PortPrototypes used to connect to NvBlockSwCompo-
[constr_1148]
nentTypes
[constr_1149] PortPrototypes used for NV data management
[constr_1150] Usage of valueType for PortDefinedArgumentValue
[constr_1151] Applicability of PortInterfaceMapping
category of ApplicationArrayElement and AutosarDataType referenced in
[constr_1151]
the role type shall be kept in sync
[constr_1153] Applicability of compatibility requirements for CompuScales
4
Number Heading
[constr_1177] Allowed category for SwPointerTargetProps
Existence of attributes of SwDataDefProps in the context of Implementation-
[constr_1178]
DataType
[constr_1179] Existence of ModeDeclaration.value within a ModeDeclarationGroup
[constr_1180] Existence of ModeDeclarationGroup.onTransitionValue
Numerical values used in ModeDeclaration.value and ModeDeclara-
[constr_1181]
tionGroup.onTransitionValue
[constr_1182] Allowed values for InternalTriggeringPoint.swImplPolicy
EndToEndProtectionVariablePrototypes aggregated by EndToEndProtec-
[constr_1183]
tion
Consistency of rootDataPrototype and base in the context of Application-
[constr_1184]
CompositeElementInPortInterfaceInstanceRef
[constr_2052] Values of swArraysize and the number of values provided by swValuesPhys shall
be consistent.
Consistency between role IUMPRNumerator and ObdRatioServiceNeeds.con-
[constr_2053]
nectionType
[constr_2544] Limits need to be consistent
[constr_2545] invalidValue shall fit in the specified ranges
[constr_2548] Data constraint of value axis shall match
[constr_2549] Units of input axis shall be consistent
[constr_2550] Units of value axis shall be consistent
[constr_2551] SwCalprmAxis.baseType shall be ignored
[constr_2561] Application of DataConstrRule.constrLevel
Table C.6: Added Constraints in R4.0.3
Number Heading
[TPS_SWCT_01000] Usage of attribute symbol of the symbolProps
[TPS_SWCT_01001] Prefix symbols generated for the RunnableEntity
[TPS_SWCT_01002] SwComponentTypes may only interact by means of their PortPrototypes
Inconsistencies regarding the value of serviceKind and the actual imple-
[TPS_SWCT_01003]
mentation of the PortInterface
[TPS_SWCT_01004] Default value if serviceKind is not defined
[TPS_SWCT_01005] Usage of SwcServiceDependencys for vendor-specific services
arraySize of ImplementationDataType shall be used to define the size
[TPS_SWCT_01006]
of the array
[TPS_SWCT_01007] Semantics of array index
Definition of positive integer values that are directly taken over by the RTE
[TPS_SWCT_01008] generator for creating the programmatic representations of the ModeDecla-
ration
The numerical values used to define the values of ModeDeclaration.value
[TPS_SWCT_01009] and ModeDeclarationGroup.onTransitionValue can be arbitrarily de-
fined
[TPS_SWCT_01010] categorys for the definition of a ModeDeclarationGroup
[TPS_SWCT_01011] Default category of a ModeDeclarationGroup
[TPS_SWCT_01012] AtomicSwComponentType reads the current ECU mode (fixed variant)
[TPS_SWCT_01013] AtomicSwComponentType shall keep the ECU alive (fixed variant)
[TPS_SWCT_01014] AtomicSwComponentType wants to select a shutdown target (fixed variant)
[TPS_SWCT_01015] AtomicSwComponentType wants to select a boot target (fixed variant)
AtomicSwComponentType wants to select a shutdown target (flexible vari-
[TPS_SWCT_01016]
ant)
[TPS_SWCT_01017] AtomicSwComponentType wants to select a boot target (flexible variant)
[TPS_SWCT_01018] AtomicSwComponentType wants to use an alarm clock (flexible variant)
[TPS_SWCT_01019] AtomicSwComponentType reads the current ComM mode
AtomicSwComponentType requests a ComM mode. It may also check later
[TPS_SWCT_01020]
whether the requested ComM mode has become effective
AtomicSwComponentType acts as a mode manager that influences the ECU
[TPS_SWCT_01021]
state
[TPS_SWCT_01022] Queued processing of internal trigger
[TPS_SWCT_01023] Mapping of elements of composite data types
Combination of ApplicationCompositeDataType and nested Implemen-
[TPS_SWCT_01024]
tationDataType
[TPS_SWCT_01025] The role of PortPrototypes in the AUTOSAR architecture
[TPS_SWCT_01026] The role of PortInterfaces in the AUTOSAR architecture
[TPS_SWCT_01027] Different flavors of PortInterfaces
[TPS_SWCT_01028] AtomicSwComponentType implements a Diagnostic Monitor
5
4
Number Heading
[TPS_SWCT_01029] AtomicSwComponentType implements a Diagnostic Monitor
[TPS_SWCT_01030] RunnableEntity
[TPS_SWCT_01031] ExclusiveArea
[TPS_SWCT_01032] CompositionSwComponentType
[TPS_SWCT_01033] Nested definition of CompositionSwComponentTypes
[TPS_SWCT_01034] CompositionSwComponentTypes do not have any binary footprint
[TPS_SWCT_01035] CompositionSwComponentType aggregates SwComponentPrototypes
[TPS_SWCT_01036] SwComponentPrototype implements a specific role
[TPS_SWCT_01037] arbitrary numbers of SwComponentPrototypes can be created
Support for Variant Handling in the in Software Component Tem-
[TPS_SWCT_01038]
plate
[TPS_SWCT_01039] Purpose of variant handling
[TPS_SWCT_01040] SwConnector exists depending on a PostBuild condition
API functions of not existing SwConnector are still part of the software-
[TPS_SWCT_01041]
component’s implementation
[TPS_SWCT_01042] Four types of locations in the meta-model which may exhibit variability
ApplicationSwComponentTypes are independent from actual ECU Hard-
[TPS_SWCT_01043]
ware
[TPS_SWCT_01044] ServiceNeeds
Actual values of ECU configuration parameters fulfill the requirements given by
[TPS_SWCT_01045]
the ServiceNeeds
[TPS_SWCT_01046] ServiceNeeds are defined in the scope of the SwcInternalBehavior
Reference from the software representation of a sensor/actuator to the actual
[TPS_SWCT_01047]
hardware element
SensorActuatorSwComponentType may use the I/O hardware abstraction
[TPS_SWCT_01048]
directly
[TPS_SWCT_01049] Two ways to use the ExclusiveAreas
[TPS_SWCT_01050] RunnableEntity always runs inside an ExclusiveArea
[TPS_SWCT_01051] RunnableEntity explicitly enters and leaves a specific ExclusiveArea
[TPS_SWCT_01052] Inter-runnable variable
[TPS_SWCT_01053] Relationship of interchanged data with RunnableEntitys
[TPS_SWCT_01054] Semantics of the explicitInterRunnableVariable
[TPS_SWCT_01055] Semantics of implicitInterRunnableVariable
[TPS_SWCT_01056] Physical dimension
[TPS_SWCT_01057] Unit references one physical dimension
[TPS_SWCT_01058] UnitGroup
[TPS_SWCT_01059] Exponent for each of the seven fundamental dimensions
[TPS_SWCT_01060] Negative exponents
[TPS_SWCT_01061] Conversion of units
[TPS_SWCT_01062] Documentation of software-components
5
4
Number Heading
[TPS_SWCT_01063] PortGroup
[TPS_SWCT_01064] PortGroups have to be defined on the VFB level
[TPS_SWCT_01065] PortPrototype may belong to more than one PortGroups
[TPS_SWCT_01066] PortGroups can be associated with certain ServiceNeeds
[TPS_SWCT_01067] Initial mode
[TPS_SWCT_01068] Units can be grouped with the help of UnitGroup
[TPS_SWCT_01069] DataInterface is defined as abstract base class
[TPS_SWCT_01070] PortInterface acts as a type for a PortPrototype
[TPS_SWCT_01071] ModeDeclaration
[TPS_SWCT_01072] ApplicationDataType and ImplementationDataType
[TPS_SWCT_01073] Composite ApplicationDataType
[TPS_SWCT_01074] Composite ImplementationDataType
[TPS_SWCT_01075] SwcInternalBehavior
Number of elements of a specific ApplicationArrayDataType might vary
[TPS_SWCT_01076]
at run-time
[TPS_SWCT_01077] Configure the response to mode changes
[TPS_SWCT_01078] Configurable array size
[TPS_SWCT_01079] SwConnector
[TPS_SWCT_01080] Delegation ports
[TPS_SWCT_01081] Implications of being a delegation port
[TPS_SWCT_01082] AssemblySwConnector
[TPS_SWCT_01083] DelegationSwConnector
Outer PortPrototype is referenced by multiple DelegationSwConnec-
[TPS_SWCT_01084]
tors
[TPS_SWCT_01085] Variation on the behavior level
[TPS_SWCT_01086] Request mode change
[TPS_SWCT_01087] Propagation of mode information
[TPS_SWCT_01088] ComSpecs defined by CompositionSwComponentTypes
[TPS_SWCT_01089] end-to-end communication protection
[TPS_SWCT_01090] EndToEndProtection
[TPS_SWCT_01091] Two cases for end-to-end protection
[TPS_SWCT_01092] EndToEndProtectionSet
[TPS_SWCT_01093] Definition of end-to-end protection is splitable
[TPS_SWCT_01094] category of EndToEndDescription
[TPS_SWCT_01095] category set to NONE
[TPS_SWCT_01096] PortGroup
[TPS_SWCT_01097] CompositionSwComponentType cannot have RunnableEntitys
[TPS_SWCT_01098] Only AtomicSwComponentType can have RunnableEntitys
[TPS_SWCT_01099] PortInterfaceMapping
5
4
Number Heading
[TPS_SWCT_01100] Precedence of PortInterfaceMapping
[TPS_SWCT_01101] Unmapped elements of PortInterfaces
[TPS_SWCT_01102] VariableAndParameterInterfaceMapping
[TPS_SWCT_01103] Mapping between different kinds of PortInterfaces
[TPS_SWCT_01104] Possible mappings are restricted by the swImplPolicy
[TPS_SWCT_01105] ClientServerInterfaceMapping
[TPS_SWCT_01106] ClientServerOperation
[TPS_SWCT_01107] swMinAxisPoints and swMaxAxisPoints represent variation points
[TPS_SWCT_01108] Added value of an AtomicSwComponentType
[TPS_SWCT_01109] Adding the SwcInternalBehavior in a later process step
[TPS_SWCT_01110] Symbolic name of a software-component
[TPS_SWCT_01111] PortPrototypes need an additional model artifact, the PortInterface
[TPS_SWCT_01112] PortPrototypes are either require- or provide-ports.
[TPS_SWCT_01113] Connecting two PortPrototypes
[TPS_SWCT_01114] SenderReceiverInterface
[TPS_SWCT_01115] invalidationPolicy
[TPS_SWCT_01116] swImplPolicy
[TPS_SWCT_01117] Communication patterns for sender-receiver communication
[TPS_SWCT_01118] ClientServerInterface
[TPS_SWCT_01119] Direction of ArgumentDataPrototypes
[TPS_SWCT_01120] Client needs to provide ArgumentDataPrototypes
[TPS_SWCT_01121] Pass correct data type
[TPS_SWCT_01122] Synchronous call of ClientServerOperation
[TPS_SWCT_01123] No default values for ArgumentDataPrototypes
Definition of ArgumentDataPrototypes within the context of a
[TPS_SWCT_01124]
ClientServerOperation is ordered
[TPS_SWCT_01125] serverArgumentImplPolicy
[TPS_SWCT_01126] Access to partial networking via BswM
[TPS_SWCT_01127] Byte arrary with variable size
[TPS_SWCT_01128] SwRecordLayout needed
[TPS_SWCT_01129] Express diagnostic capabilities
Measurement and calibration access to model elements is defined by swCal-
[TPS_SWCT_01130]
ibrationAccess
[TPS_SWCT_01131] AtomicSwComponentType accepts a request to restart an entire function
[TPS_SWCT_01132] AtomicSwComponentType provides information about operating cycles
[TPS_SWCT_01133] AtomicSwComponentType provides information about aging cycles
[TPS_SWCT_01134] AtomicSwComponentType enables storage of DTCs in general
[TPS_SWCT_01135] AtomicSwComponentType enables storage of subsequent DTCs
[TPS_SWCT_01136] AtomicSwComponentType retrieves information from the fault storage
5
4
Number Heading
[TPS_SWCT_01137] Dem provides information that the fault storage overflows
[TPS_SWCT_01138] AtomicSwComponentType suppresses the storage of DTCs within the Dem
[TPS_SWCT_01139] AtomicSwComponentType informs the Dem that the PTO is active
AtomicSwComponentType needs information about specific DTC without be-
[TPS_SWCT_01140]
ing a diagnostic monitor
AtomicSwComponentType may have RPortPrototypes typed by an Nv-
[TPS_SWCT_01141]
DataInterface
[TPS_SWCT_01142] non-volatile data are provided by a specialized AtomicSwComponentType
Non-volatile data represented by an NvBlockComponent can be read and writ-
[TPS_SWCT_01143]
ten
[TPS_SWCT_01144] NvBlockDescriptor specifies the properties of exactly one NvBlock
ramBlock and the romBlock are described by a VariableDataPrototype
[TPS_SWCT_01145]
and a ParameterDataPrototype
[TPS_SWCT_01146] romBlock is optional
[TPS_SWCT_01147] No romBlock is configured
[TPS_SWCT_01148] NvBlockDataMapping
[TPS_SWCT_01149] RoleBasedPortAssignment of NvBlockDescriptor
[TPS_SWCT_01150] InternalBehavior of a NvBlockSwComponentType
[TPS_SWCT_01151] RunnableEntitys do not have further attributes
[TPS_SWCT_01152] InternalBehavior does not have further attributes
[TPS_SWCT_01153] IncludedModeDeclarationGroupSet
[TPS_SWCT_01154] Attribute prefix of IncludedModeDeclarationGroupSet
[TPS_SWCT_01155] IncludedDataTypeSet
[TPS_SWCT_01156] Required if the AutosarDataType is not used for any DataPrototype
[TPS_SWCT_01157] Attribute literalPrefix of IncludedDataTypeSet
[TPS_SWCT_01158] Three cases for PortInterfaceMapping
Mapping is described separately from the SwConnector as reusable AREle-
[TPS_SWCT_01159]
ment
[TPS_SWCT_01160] ModeInterfaceMapping
[TPS_SWCT_01161] TriggerInterfaceMapping
[TPS_SWCT_01162] Conditional existence of TextTableMapping
[TPS_SWCT_01163] Conversion from firstValue to secondValue
[TPS_SWCT_01164] Conversion from secondValue to firstValue
[TPS_SWCT_01165] Invertible mapping
[TPS_SWCT_01166] Non-invertible mapping
[TPS_SWCT_01167] Validity of ModeInterfaceMapping
[TPS_SWCT_01168] Linear conversion factor can be calculated
[TPS_SWCT_01169] Support for partial networking
[TPS_SWCT_01170] Purpose of Virtual Function Cluster
[TPS_SWCT_01171] Purpose of a control port
5
4
Number Heading
[TPS_SWCT_01172] Requesting and releasing partial networks
[TPS_SWCT_01173] Control port shall not become a part of the PortGroup
[TPS_SWCT_01174] Status port shall not become a member of the PortGroup
[TPS_SWCT_01175] Actively query the status of a partial network
[TPS_SWCT_01176] last-is-best semantics for sender-receiver communication
[TPS_SWCT_01177] Assignment of constant values
[TPS_SWCT_01178] Specialized subclasses of ValueSpecification
[TPS_SWCT_01179] Compound Primitive Data Type
[TPS_SWCT_01180] Maximum possible size of Compound Primitive Data Type
Bound model specifies a primitive which is smaller than the maximum defined
[TPS_SWCT_01181]
by the range of the involved SwSystemconst
[TPS_SWCT_01182] Conceptual levels for the definition of initial values
Actual value of an initValue shall be interpreted according to the Autosar-
[TPS_SWCT_01183]
DataType
[TPS_SWCT_01184] ApplicationPrimitiveDataTypes with category VALUE
[TPS_SWCT_01185] initValues for Compound Primitive Data Types
[TPS_SWCT_01186] ConstantSpecificationMapping
ConstantSpecificationMappingSet referenced by the InternalBe-
[TPS_SWCT_01187]
havior
[TPS_SWCT_01188] Definition of calibration data sets through RTE-generator and compiler
[TPS_SWCT_01189] DataTypeMap
[TPS_SWCT_01190] ModeRequestTypeMap
mapped ApplicationDataType and ImplementationDataType shall be
[TPS_SWCT_01191]
compatible
[TPS_SWCT_01192] Meta-classes that have an association to a DataTypeMappingSet
Mappings between application and implementation types do not necessarily
[TPS_SWCT_01193]
have to form a 1:1 relation
[TPS_SWCT_01194] Symbolic name of an ImplementationDataType
[TPS_SWCT_01195] Mapping of composite element to primitive DataPrototype
[TPS_SWCT_01196] Semantics of an external trigger event communication
[TPS_SWCT_01197] TriggerInterface
[TPS_SWCT_01198] Period for periodic triggering
[TPS_SWCT_01199] Queued processing of Triggers
[TPS_SWCT_01200] ModeDeclarationGroupPrototype per ModeSwitchInterface
CompositionSwComponentType requires and provides the modes that are
[TPS_SWCT_01201]
required or provided by its contained SwComponentPrototypes
ApplicationDataType defines a subset of the values used in the Mod-
[TPS_SWCT_01202]
eDeclarationGroup
[TPS_SWCT_01203] PortPrototype may own port annotations
[TPS_SWCT_01204] GeneralAnnotation
[TPS_SWCT_01205] Typical annotations for sender/receiver communication
5
4
Number Heading
[TPS_SWCT_01206] Min and Max annotations are valid for a certain amount of time
VariableDataPrototypes use the same application-level Sender-
[TPS_SWCT_01207]
ReceiverAnnotation
[TPS_SWCT_01208] Grouping for SenderReceiverAnnotation
[TPS_SWCT_01209] ClientServerAnnotation
[TPS_SWCT_01210] IoHwAbstractionServerAnnotation
[TPS_SWCT_01211] Assign several annotations to ArgumentDataPrototype
[TPS_SWCT_01212] ParameterPortAnnotation
[TPS_SWCT_01213] ModePortAnnotation
[TPS_SWCT_01214] TriggerPortAnnotation
[TPS_SWCT_01215] NvDataPortAnnotation
[TPS_SWCT_01216] DelegatedPortAnnotation
[TPS_SWCT_01217] Semantics of DelegatedPortAnnotation.signalFan
[TPS_SWCT_01218] Big picture of ComSpec
[TPS_SWCT_01219] ComSpec for queued and non-queued sender-receiver communication
initValue defines an initial value that shall be taken if the corresponding
[TPS_SWCT_01220]
dataElement has not yet been received
[TPS_SWCT_01221] DataFilter
[TPS_SWCT_01222] Applicability of DataFilter
networkRepresentation defines how a specific dataElement is repre-
[TPS_SWCT_01223]
sented on a communication bus
CompuMethods of dataElement and the networkRepresentation are
[TPS_SWCT_01224]
used for conversion purposes
RunnableEntity implements the functionality of two or more
[TPS_SWCT_01225]
ClientServerOperations
initValue on the level of a ComSpec is relevant for connections to the cor-
[TPS_SWCT_01226]
responding PortPrototype
[TPS_SWCT_01227] Unconnected RPortPrototype typed by NvDataInterface
[TPS_SWCT_01228] NvProvideComSpec
[TPS_SWCT_01229] Three different levels of abstraction regarding the definition of data types
[TPS_SWCT_01230] Application Data Level
Application level may impose strong requirements on the design of the corre-
[TPS_SWCT_01231]
sponding implementation level
[TPS_SWCT_01232] Implementation Data Level
[TPS_SWCT_01233] Use case for the Implementation Data Level
[TPS_SWCT_01234] Base Level
Mapping of data defined on the Application level to the Implementation and
[TPS_SWCT_01235]
Base Type level
[TPS_SWCT_01236] Big picture of data types
[TPS_SWCT_01237] SwDataDefProps
[TPS_SWCT_01238] Attribute category used in the context of AutosarDataType
5
4
Number Heading
[TPS_SWCT_01239] default value for attribute category used in the context of AutosarDataType
[TPS_SWCT_01240] Subclasses of ApplicationDataType
[TPS_SWCT_01241] Applicable categorys for subclasses ApplicationDataType
[TPS_SWCT_01242] category characterizes the nature of a data type on application level
[TPS_SWCT_01243] Definition of enumeration types
[TPS_SWCT_01244] Data types for calibration parameters are also described as primitive types
[TPS_SWCT_01245] SwDataDefProps control the structure of calibration parameters
[TPS_SWCT_01246] SwRecordLayout may be required for A2L generation
[TPS_SWCT_01247] ApplicationArrayDataType and ApplicationRecordDataType
[TPS_SWCT_01248] Nested definition of ImplementationDataType
[TPS_SWCT_01249] ApplicationRecordDataType
ImplementationDataType has been introduced to optimize the formal sup-
[TPS_SWCT_01250]
port for data type handling on the implementation level
Limited set of values for category are applicable for Implementation-
[TPS_SWCT_01251]
DataType
ImplementationDataType can express concepts not available on applica-
[TPS_SWCT_01252]
tion level
Rules apply for the usage of the attribute ImplementationDataType.type-
[TPS_SWCT_01253]
Emitter
[TPS_SWCT_01254] ImplementationDataType with array semantics
Indicate whether the array is supposed to have a fixed size or whether the
[TPS_SWCT_01255]
actual size might change during run-time
[TPS_SWCT_01256] Definition of multi-dimensional array data types
ImplementationDataType or the aggregated Implementation-
[TPS_SWCT_01257]
DataTypeElements do not form closed sets
[TPS_SWCT_01258] Definition of a pointer to data
[TPS_SWCT_01259] Definition of a pointer to a function
[TPS_SWCT_01260] SwBaseType
[TPS_SWCT_01261] Use case for SwBaseType
[TPS_SWCT_01262] memAlignment and byteOrder are platform specific
[TPS_SWCT_01263] Further use cases for SwBaseType
[TPS_SWCT_01264] Data prototypes implement a role of a data type
[TPS_SWCT_01265] DataPrototype aggregates an own set of SwDataDefProps
[TPS_SWCT_01266] Three non-abstract classes derived from AutosarDataPrototype
[TPS_SWCT_01267] DataPrototype can be aggregated in different roles
Definition of initValue for a VariableDataPrototype or a Parameter-
[TPS_SWCT_01268]
DataPrototype
[TPS_SWCT_01269] In PortInterfaces, initial values defined for DataPrototypes are ignored
[TPS_SWCT_01270] AutosarVariableRef
[TPS_SWCT_01271] AutosarParameterRef
[TPS_SWCT_01272] Semantics of swComparisonVariable
5
4
Number Heading
[TPS_SWCT_01273] Precedence rules for the application of SwDataDefProps
[TPS_SWCT_01274] SwDataDefProps used to support calibration and measurement
[TPS_SWCT_01275] values of the attribute swImplPolicy are restricted depending on the context
[TPS_SWCT_01276] Computation methods
Computation methods are used for the conversion of internal values into their
[TPS_SWCT_01277]
physical representation and vice versa
[TPS_SWCT_01278] CompuMethods can also be used to assign symbolic names to internal values
[TPS_SWCT_01279] Preferred conversion direction depends on the use case
[TPS_SWCT_01280] CompuMethod applied to values outside of its limits
[TPS_SWCT_01281] Unit associated with a PhysicalDimension
[TPS_SWCT_01283] Rational function
[TPS_SWCT_01284] CompuScale might require a representation in the generated RTE C code
[TPS_SWCT_01285] Physical dimension
[TPS_SWCT_01286] DataConstr
[TPS_SWCT_01287] Standard limits and extended limits in the ASAM-MCD2 (ASAP2) specification
[TPS_SWCT_01288] Interpretation of PhysConstrs and InternalConstrs by tools
[TPS_SWCT_01289] Semantics of Limit
[TPS_SWCT_01290] SwAddrMethod
[TPS_SWCT_01291] Association of MemorySection with SwAddrMethod
[TPS_SWCT_01292] Usage of SwAddrMethod in the context of a DataPrototype
[TPS_SWCT_01293] RTE Generator has to derive the Memory Allocation Keyword
[TPS_SWCT_01294] Missing SwDataDefProps.swAddrMethod
[TPS_SWCT_01295] SwRecordLayout
Different approaches of ASAM MCD-2MC and AUTOSAR with respect to
[TPS_SWCT_01296]
SwRecordLayout
Compliance of ApplicationDataTypes or ImplementationDataTypes
[TPS_SWCT_01297]
to swDataDefProps
Computing SwRecordLayout from ImplementationDataTypes is not pos-
[TPS_SWCT_01298]
sible
[TPS_SWCT_01299] Relation of swRecordLayoutGroup to subElement
[TPS_SWCT_01300] Relationship between record layouts and interpolation routines
[TPS_SWCT_01301] Importance of initial values
[TPS_SWCT_01302] Semantics of minimumStartInterval
[TPS_SWCT_01303] symbol attribute describes the RunnableEntity’s entry point
[TPS_SWCT_01304] Cat. 1A and 1B RunnableEntitys will eventually terminate
[TPS_SWCT_01305] RunnableEntity as one that cannot be invoked concurrently
Software-component description itself does not put any bounds on the number
[TPS_SWCT_01306]
of concurrent invocations of a RunnableEntity
[TPS_SWCT_01307] supportsMultipleInstantiation vs. canBeInvokedConcurrently
5
4
Number Heading
Combination of supportsMultipleInstantiation=false and can-
[TPS_SWCT_01308]
BeInvokedConcurrently=false
[TPS_SWCT_01309] signature of a RunnableEntity depends on the connected RTEEvent
[TPS_SWCT_01310] Categories of RunnableEntitys
[TPS_SWCT_01311] Name of an operation argument
[TPS_SWCT_01312] RunnableEntity has a mapping to BswModuleEntry
[TPS_SWCT_01313] Conditions for a transition from suspended to to be started
[TPS_SWCT_01314] RTEEvent
[TPS_SWCT_01315] Interaction of RunnableEntity with RTEEvent
[TPS_SWCT_01316] Abstract base class RTEEvent
[TPS_SWCT_01317] RTE triggers RunnableEntity in response to occurring RTEEvent
[TPS_SWCT_01318] RunnableEntity and WaitPoint
RTEEvent can be used to trigger WaitPoints in different RunnableEn-
[TPS_SWCT_01319]
titys
[TPS_SWCT_01320] RunnableEntitys of category 2
[TPS_SWCT_01321] Communication among RunnableEntitys
[TPS_SWCT_01322] Interaction patterns for the application of the sender-receiver paradigm
[TPS_SWCT_01323] Read and write access to a dataElement
[TPS_SWCT_01324] Mode switches need to be completed in finite time
Read and write access is only applicable for RunnableEntitys of category
[TPS_SWCT_01325]
1
[TPS_SWCT_01326] Constrain the scope of a specific communication
[TPS_SWCT_01327] RTE generator can omit the creation of checks at run-time
[TPS_SWCT_01328] Default value of attribute scope
Access to specific data is implemented by means of aggregating the meta-
[TPS_SWCT_01329]
class VariableAccess in specific roles
[TPS_SWCT_01330] RunnableEntity can also have dataSendPoints
[TPS_SWCT_01331] dataWriteAccess vs. dataSendPoint
[TPS_SWCT_01332] dataReceivePointByValue vs. dataReceivePointByArgument
dataReceivePointByValue/dataReceivePointByArgument vs.
[TPS_SWCT_01333]
dataReadAccess
RunnableEntitys of category 1 may have dataReceivePointByValues/
[TPS_SWCT_01334]
dataReceivePointByArguments
Combine dataReceivePointByValue or dataReceivePointByArgu-
[TPS_SWCT_01335]
ment with a WaitPoint
dataSendPoint also allows for the definition of a DataSendCompletedE-
[TPS_SWCT_01336]
vent
[TPS_SWCT_01337] DataReceivedEvent
[TPS_SWCT_01338] DataReceiveErrorEvent
[TPS_SWCT_01339] RTE activates RunnableEntity in response to DataReceiveErrorEvent
[TPS_SWCT_01340] DataReceiveErrorEvent cannot be combined with a WaitPoint
5
4
Number Heading
DataReceiveErrorEvent is directly associated with the corresponding
[TPS_SWCT_01341]
VariableDataPrototype
[TPS_SWCT_01342] Invocation of a server operation
[TPS_SWCT_01343] Synchronous vs. asynchronous invocation
[TPS_SWCT_01344] Consistency of values of timeout
[TPS_SWCT_01345] Synchronous operation invocation
[TPS_SWCT_01346] Asynchronous operation invocation
[TPS_SWCT_01347] Blocking access to operation result in an asynchronous operation invocation
[TPS_SWCT_01348] Trigger source
[TPS_SWCT_01349] Trigger sink
[TPS_SWCT_01350] Calibration Parameters shared among several SwComponentTypes
[TPS_SWCT_01351] Access to a ParameterDataPrototype
[TPS_SWCT_01352] Requested mode is just sent and received as an ordinary data value
[TPS_SWCT_01353] RunnableEntitys react on a mode request via a corresponding RTEEvent
[TPS_SWCT_01354] PortAPIOption
[TPS_SWCT_01355] enableTakeAddress = true
indirectAPI option switches the generation of the RTE’s indirect API func-
[TPS_SWCT_01356]
tionality
Definition of implicit values that are passed by the RTE to the server’s entry
[TPS_SWCT_01357]
point
[TPS_SWCT_01358] Values are hidden from the client components
[TPS_SWCT_01359] Private memory per instance
[TPS_SWCT_01360] Arbitrary number of per-instance memory blocks
[TPS_SWCT_01361] attribute supportsMultipleInstantiation == false
[TPS_SWCT_01362] Initialization of PerInstanceMemory
[TPS_SWCT_01363] PerInstanceMemory typed by ’C’ Data Types
[TPS_SWCT_01364] Initial value of a PerInstanceMemory typed by ’C’ Data Types
[TPS_SWCT_01365] PerInstanceMemory typed by AUTOSAR Data Types
[TPS_SWCT_01366] Initial value of a PerInstanceMemory typed by AUTOSAR Data Types
[TPS_SWCT_01367] Typed by AUTOSAR data type vs. typed by C data type
[TPS_SWCT_01368] Describe static and constant memory
[TPS_SWCT_01369] Static and constant memory is not instantiated by the RTE
[TPS_SWCT_01370] VariationPointProxy
[TPS_SWCT_01371] VariationPointProxy vs. VariationPoint
[TPS_SWCT_01372] bindingTime = preCompileTime
[TPS_SWCT_01373] RTE generator shall evaluate the SwSystemconstDependentFormula
[TPS_SWCT_01374] Implementation of AutosarParameterRef
[TPS_SWCT_01375] Implementation of AutosarVariableRef
[TPS_SWCT_01376] Software-components need to be capable of reacting to state changes
5
4
Number Heading
Two mechanisms to define how SwcInternalBehavior should interact with
[TPS_SWCT_01377]
the mode management
AtomicSwComponentType can define an SwcModeSwitchEvent to execute
[TPS_SWCT_01378]
RunnableEntity
AtomicSwComponentType can indicate whether an RTEEvent that starts an
[TPS_SWCT_01379]
associated RunnableEntity is disabled in a certain mode
[TPS_SWCT_01380] Mode management behavior on the sender side
[TPS_SWCT_01381] Read the currently active mode
[TPS_SWCT_01382] Mode switch requests are handled asynchronously by the RTE
[TPS_SWCT_01383] ModeSwitchPoint
[TPS_SWCT_01384] Execution of initialization code for software-components
[TPS_SWCT_01385] Execution of initialization code for software-components
[TPS_SWCT_01386] Initialization by mode management
[TPS_SWCT_01387] Finalization by mode management
Initial modes of AtomicSwComponentTypes are defined by the ini-
[TPS_SWCT_01388]
tialMode
[TPS_SWCT_01389] I/O Hardware Abstraction interfaces MCAL drivers
[TPS_SWCT_01390] I/O Hardware Abstraction might have sub-structures
I/O Hardware Abstraction abstracts from the location of peripheral I/O
[TPS_SWCT_01391]
devices
Mapping between the EcuAbstractionSwComponentType and the corre-
[TPS_SWCT_01392]
sponding BswModuleDescription
[TPS_SWCT_01393] Complex Driver
Complex Driver is represented by the ComplexDeviceDriverSwCompo-
[TPS_SWCT_01394]
nentType
ComplexDeviceDriverSwComponentType has dependencies to ECU
[TPS_SWCT_01395]
Hardware
Mapping between the ComplexDeviceDriverSwComponentType and the
[TPS_SWCT_01396]
corresponding BswModuleDescription
Hybrid concept between Basic Software Modules and a SwComponent-
[TPS_SWCT_01397]
Type
[TPS_SWCT_01398] Communication patterns for AUTOSAR services
Dependency is modeled by aggregating required and provided PortProto-
[TPS_SWCT_01399]
types
PortInterface selected from the set of standardized Service Inter-
[TPS_SWCT_01400]
faces
[TPS_SWCT_01401] Form a top-level RootSwCompositionPrototype
[TPS_SWCT_01402] Mapping of all AtomicSwComponentType instances to EcuInstances
[TPS_SWCT_01403] Impact of AUTOSAR services on the methodology
[TPS_SWCT_01404] Creation of the EcuExtract
[TPS_SWCT_01405] Creation of the ServiceSwComponentTypes
Creation of SwComponentPrototype typed by a ServiceSwComponent-
[TPS_SWCT_01406]
Type
5
4
Number Heading
[TPS_SWCT_01407] Creation of InternalBehavior typed by a ServiceSwComponentType
[TPS_SWCT_01408] Creation of SwcBswMapping
[TPS_SWCT_01409] Update of PortDefinedArgumentValues
Dcm and Dem can directly access dataElements in PPortPrototypes typed
[TPS_SWCT_01410]
by a SenderReceiverInterface
[TPS_SWCT_01411] Use cases for a ServiceSwComponentType to express ServiceNeeds
[TPS_SWCT_01412] ServiceSwComponentType shall be added in ECU Configuration phase
[TPS_SWCT_01413] Local communication with services
Mode manager needs to communicate with application software components
[TPS_SWCT_01414]
located on other ECUs
[TPS_SWCT_01415] Interfaces of ServiceProxySwComponentType
Difference between a ServiceProxySwComponentType and an Applica-
[TPS_SWCT_01416]
tionSwComponentType
Define calibration parameters common to all SwComponentPrototypes of
[TPS_SWCT_01417]
the same SwComponentType
[TPS_SWCT_01418] Ways to define a calibration parameter
ParameterSwComponentType shall never aggregate a SwcInternalBe-
[TPS_SWCT_01419]
havior
SwComponentType requiring access to shared calibration parameters needs
[TPS_SWCT_01420]
RPortPrototype typed by a ParameterInterface
ParameterInterface is not restricted to parameters which can actually can
[TPS_SWCT_01421]
be calibrated
[TPS_SWCT_01422] Delegation of PortPrototypes typed by a ParameterInterface
[TPS_SWCT_01423] ParameterDataPrototype aggregated in the role constantMemory
ParameterDataPrototype aggregated in the role perInstanceParame-
[TPS_SWCT_01424]
ter
AtomicSwComponentType provides one callback per event if diagnostic
[TPS_SWCT_01425]
event data change
AtomicSwComponentType provides callback if any diagnostic event data
[TPS_SWCT_01426]
and/or status changed
AtomicSwComponentType provides data for diagnostic purposes via
[TPS_SWCT_01427]
ClientServerInterface
ServiceSwComponentType representing the Dem provides a PPortProto-
[TPS_SWCT_01428]
type for the Dcm
[TPS_SWCT_01429] [constr_1135] only applies for BITFIELD_TEXTTABLE
Conversion specification from internal to physical values as well as the reverse
[TPS_SWCT_01430]
conversion
[TPS_SWCT_01431] Finding the symbol for the representation of a CompuScale in C code
Keep the invalidValue transparent to the sending and receiving software
[TPS_SWCT_01432]
components
[TPS_SWCT_01433] Invalid values outside the range limits
[TPS_SWCT_01434] Sender and receiver have knowledge of invalid value
[TPS_SWCT_01435] Invalid values outside the range limits
5
4
Number Heading
[TPS_SWCT_01436] Different receivers require different handling of data invalidation
[TPS_SWCT_01437] invalidValue can also be specified without setting a compuMethod
[TPS_SWCT_01438] Handling of invalidation in the sending RTE
[TPS_SWCT_01439] Handling of invalidation in the receiving RTE
[TPS_SWCT_01440] Measurement is not limited to primitive objects
[TPS_SWCT_01441] Nature of a TYPE_REFERENCE
ImplementationDataType of category TYPE_REFERENCE does not de-
[TPS_SWCT_01442]
fine own properties
ImplementationDataType of category TYPE_REFERENCE overwrites
[TPS_SWCT_01443]
properties of refined ImplementationDataType
[TPS_SWCT_01444] Size of SwBaseType is specified in bits
[TPS_SWCT_01445] Applicability of SwDataDefProps for DataPrototypes
References to a DataPrototype may or may not imply the necessity for using
[TPS_SWCT_01446]
an instanceRef
Applicable binding times for model elements in the scope of the Software
[TPS_SWCT_01447]
Component Template
[TPS_SWCT_01448] Pre-defined values for the category of VariationPointProxy
[TPS_SWCT_02000] Default value for attribute swImplPolicy
Values of SwAxisCont with the category COM_AXIS, RES_AXIS are for dis-
[TPS_SWCT_02001]
play only
AtomicSwComponentType offers a PPortPrototypes typed by
[TPS_SWCT_02002] ClientServerInterface to read/write current value via diagnostic ser-
vices
AtomicSwComponentType offers PortPrototypes typed by Sender-
[TPS_SWCT_02003]
ReceiverInterfaces to read/write current values via diagnostic services
AtomicSwComponentType offers a PortPrototype typed by a
[TPS_SWCT_02004] ClientServerInterface to start/stop or request routine results of diag-
nostic routines
AtomicSwComponentType offers PortPrototypes typed by
[TPS_SWCT_02005]
ClientServerInterfaces to adjust the IO signal via diagnostic services
AtomicSwComponentType offers sender receiver ports to adjust the IO signal
[TPS_SWCT_02006]
via diagnostic services
AtomicSwComponentType implements a OBD system monitor with In-Use-
[TPS_SWCT_02007]
Monitor Performance Ratio
AtomicSwComponentType offers a server port to read/write current value via
[TPS_SWCT_02008]
OBD services
AtomicSwComponentType offers sender receiver ports to read/write current
[TPS_SWCT_02009]
values via OBD services
AtomicSwComponentType offers a server port to read vehicle information
[TPS_SWCT_02010]
values via OBD services
AtomicSwComponentType offers a server port to read DTR value via OBD
[TPS_SWCT_02011]
services
AtomicSwComponentType offers a server port for request control of on-
[TPS_SWCT_02012]
board system, test or component via OBD services
5
4
Number Heading
AtomicSwComponentType offers a server port to get protocol, session and
[TPS_SWCT_02013]
security information or to request a Reset to Default Session
AtomicSwComponentType supports Response On Event (ROE) via diagnos-
[TPS_SWCT_02014]
tic services
AtomicSwComponentType verifies the access to security level via diagnostic
[TPS_SWCT_02015]
services
AtomicSwComponentType requires information on the status of the protocol
[TPS_SWCT_02016]
communication and may disallow a protocol
AtomicSwComponentType requires the notification about a Service Request
[TPS_SWCT_02017]
via diagnostic services
[TPS_SWCT_02018] Setup for AtomicSwComponentType which contains a Supervised Entity
Setup for AtomicSwComponentType which requires Global Supervision Sta-
[TPS_SWCT_02019]
tus notification
[TPS_SWCT_02020] AtomicSwComponentType uses the hash calculation of the Crypto Service
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02021]
calculation of the Crypto Service
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02022]
verification of the Crypto Service
AtomicSwComponentType uses the generation of random seed of the Crypto
[TPS_SWCT_02023]
Service
AtomicSwComponentType uses the generation of random numbers of the
[TPS_SWCT_02024]
Crypto Service
AtomicSwComponentType uses the symmetrical block encryption of the
[TPS_SWCT_02025]
Crypto Service
AtomicSwComponentType uses the symmetrical block decryption of the
[TPS_SWCT_02026]
Crypto Service
AtomicSwComponentType uses the symmetrical encryption of the Crypto
[TPS_SWCT_02027]
Service
AtomicSwComponentType uses the symmetrical decryption of the Crypto
[TPS_SWCT_02028]
Service
AtomicSwComponentType uses the asymmetrical encryption of the Crypto
[TPS_SWCT_02029]
Service
AtomicSwComponentType uses the asymmetrical decryption of the Crypto
[TPS_SWCT_02030]
Service
AtomicSwComponentType uses the signature generation of the Crypto Ser-
[TPS_SWCT_02031]
vice
AtomicSwComponentType uses the signature verification of the Crypto Ser-
[TPS_SWCT_02032]
vice
AtomicSwComponentType uses the checksum calculation of the Crypto Ser-
[TPS_SWCT_02033]
vice
[TPS_SWCT_02034] AtomicSwComponentType uses the key derivation of the Crypto Service
AtomicSwComponentType uses the symmetric key derivation of the Crypto
[TPS_SWCT_02035]
Service
AtomicSwComponentType uses the key exchange interface for public value
[TPS_SWCT_02036]
calculation of the Crypto Service
5
4
Number Heading
AtomicSwComponentType uses the key exchange interface for secret value
[TPS_SWCT_02037]
calculation of the Crypto Service
AtomicSwComponentType uses the key exchange interface to calculate sym-
[TPS_SWCT_02038]
metric key with the Crypto Service
AtomicSwComponentType uses the symmetrical key extraction of the Crypto
[TPS_SWCT_02039]
Service
AtomicSwComponentType uses the symmetrical key wrapping of the Crypto
[TPS_SWCT_02040]
Service to export a symmetrical key structure with a symmetric key
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02041]
Crypto Service to export a symmetrical key structure with a asymmetric key
AtomicSwComponentType uses the asymmetrical public key extraction of the
[TPS_SWCT_02042]
Crypto Service
AtomicSwComponentType uses the asymmetrical private key extraction of
[TPS_SWCT_02043]
the Crypto Service
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02044] Crypto Service to export a (asymmetric) private key structure with a symmetri-
cal wrapping key
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02045] Crypto Service to export a (asymmetric) private key structure with a asym-
metrical wrapping key
Table C.7: Added Specification Items in 4.0.3
Number Heading
Specification of Units in CompuMethods (the text is still there but it does no longer
[constr_1023]
represent a constraint)
[constr_1062] Compatibility of data types with category BIT
[constr_1122] Existence of attributes in PROFILE_03
[constr_1123] Constraints of dataLength in PROFILE_03
[constr_1124] Constraints of dataId in PROFILE_03
[constr_1125] Constraints of maxDeltaCounterInit in PROFILE_03
[constr_1127] ServiceSwComponentType shall not have ServiceNeeds
[constr_1136] Compatibility of introduction of blueprint and blueprinted element
The following constraints are moved to [1]
[constr_2500] PortInterfaces shall be of same kind
[constr_2526] PortInterfaces need to be compatible to the blueprints
[constr_2527] Blueprints shall live in package of a proper category
[constr_2528] PortPrototypes shall not refer to blueprints of PortInterfaces
[constr_2529] Blueprints of ports and interfaces shall be compatible
5
4
Number Heading
[constr_4001] Content of ModeRequestTypeMap
Table C.8: Deleted Constraints in R4.0.3
N/A
Number Heading
[constr_1012] Value of category is FIXED_LENGTH
[constr_1013] Value of category is VARIABLE_LENGTH
Restriction of invalidValue for ImplementationDataType and Implementa-
[constr_1016]
tionDataTypeElement
[constr_1026] Compatibility of Units
[constr_1047] Compatibility of ApplicationPrimitiveDataTypes
[constr_1048] Compatibility of ApplicationRecordDataTypes
[constr_1049] Compatibility of ApplicationArrayDataTypes
[constr_1050] Compatibility of ImplementationDataTypes
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
4
Number Heading
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1069]
AssemblySwConnectors
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1070]
DelegationSwConnectors
Number Heading
[constr_1191] Value of Limit shall yield a numerical value
[constr_1192] Compatibility of “IDENTICAL” to “RAT_FUNC” or “LINEAR”
4
Number Heading
Supported connections by AssemblySwConnector for PortPrototypes typed by
[constr_1204]
a ClientServerInterface, ModeSwitchInterface, or TriggerInterface
Supported connections by DelegationSwConnector for PortPrototypes typed
[constr_1205] by a ClientServerInterface, ModeSwitchInterface, or TriggerInter-
face
Mapping of ModeDeclarations of mode user to ModeDeclaration of mode man-
[constr_1209]
ager
Mapping of ModeDeclarations of mode user to all ModeDeclarations of mode
[constr_1210]
manager
[constr_1211] Constraints of maxNoNewOrRepeatedData in PROFILE_01
[constr_1212] Constraints of syncCounterInit in PROFILE_01
[constr_1213] Constraints of maxNoNewOrRepeatedData in PROFILE_02
[constr_1214] Constraints of syncCounterInit in PROFILE_02
Interpretation of attribute maxNoNewOrRepeatedData owned by EndToEndDe-
[constr_1215]
scription in PROFILE_01
Interpretation of attribute syncCounterInit owned by EndToEndDescription in
[constr_1216]
PROFILE_01
Interpretation of attribute maxNoNewOrRepeatedData owned by EndToEndDe-
[constr_1217]
scription in PROFILE_02
Interpretation of attribute syncCounterInit owned by EndToEndDescription in
[constr_1218]
PROFILE_02
[constr_1219] Invalidation depends on the value of swImplPolicy
[constr_1220] Compatibility of SwBaseType
[constr_1221] DataPrototype is typed by an ApplicationPrimitiveDataType
4
Number Heading
Scope of mapped ApplicationErrors in the context of a ClientServerOpera-
[constr_1238]
tionMapping
[constr_1239] RuleBasedValueSpecification shall not exceed the number of values required
Consistency of ArgumentDataPrototypes within the context of a ClientServer-
[constr_1240]
OperationMapping
[constr_1241] Compound Primitive Data Types and invalidValue
[constr_1242] Restriction of invalidValue for ApplicationPrimitiveDataType
[constr_1243] NumericalOrText shall either define vf or vt
[constr_1244] DataPrototypes used in application software shall not be typed by C enums
Consideration of ModeTransitions for the compatibility of ModeDeclara-
[constr_1245]
tionGroups
Consistency of firstMode and secondMode in the scope of one ModeDeclara-
[constr_1246]
tionMappingSet
Consistency of ModeDeclarationMappingSet with respect to the referenced
[constr_1247]
firstModeGroup and secondModeGroup
Compatibility of PortPrototypes of different DataInterfaces in the context of a
[constr_1248]
PassThroughSwConnector
4
Number Heading
ArrayValueSpecification.elements shall be identical to the number of Appli-
[constr_1271]
cationRecordDataType.element
ArrayValueSpecification.elements shall be identical to the number of
[constr_1272]
subElements of ImplementationDataType of category STRUCTURE
ArrayValueSpecification.elements shall be identical to the value of Appli-
[constr_1273]
cationArrayDataType.element.maxNumberOfElements
ArrayValueSpecification.elements shall be identical to the value of Imple-
[constr_1274]
mentationDataType.subElement.arraySize of category ARRAY
[constr_2054] Valid targets of rptSystem
[constr_2055] Valid targets of byPassPoint and rptHook reference
Please note that [constr_2533] has been retagged to [constr_1264] to fix a duplicate
constraint ID.
Number Heading
[TPS_SWCT_01000] Usage of attribute symbol of the symbolProps
[TPS_SWCT_01001] Prefix symbols generated for the RunnableEntity
[TPS_SWCT_01085] Variation on the behavior level
[TPS_SWCT_01112] Semantics of PortPrototypes
[TPS_SWCT_01113] Connecting two PortPrototypes
SwRecordLayout needed for ApplicationPrimitiveDataType of cat-
[TPS_SWCT_01128]
egory STRING
[TPS_SWCT_01179] Compound Primitive Data Type
[TPS_SWCT_01368] Describe static and constant memory
Table C.11: Changed Specification Items in R4.1.1
Number Heading
[TPS_SWCT_01448] Pre-defined values for the category of VariationPointProxy
[TPS_SWCT_01449] Semantics of a ModeDeclarationGroupPrototypeMapping
[TPS_SWCT_01450] Semantics of a ModeTransition
[TPS_SWCT_01451] Relations between ModeTransition and ModeDeclaration
Applicability of networkRepresentation for ApplicationComposite-
[TPS_SWCT_01452]
DataType
[TPS_SWCT_01454] PRPortPrototype can own both RPortComSpecs and PPortComSpecs
[TPS_SWCT_01455] Duplicate existence of initValue in the context of a PRPortPrototype
[TPS_SWCT_01456] Predefined values for MemorySection.option and SwAddrMethod.option
[TPS_SWCT_01457] ExclusiveAreaNestingOrder
[TPS_SWCT_01458] Indicate that the locking behavior is fully described for RunnableEntity
[TPS_SWCT_01459] Locking behavior is not described for this RunnableEntity
Relation of SynchronousServerCallPoint to ExclusiveAreaNestin-
[TPS_SWCT_01460]
gOrder
[TPS_SWCT_01461] Existence of ImplementationDataType
ModeDeclarationMapping defines the explicit correlation of ModeDecla-
[TPS_SWCT_01462]
rations
ModeDeclarationGroupPrototypeMapping.modeDeclarationMap-
[TPS_SWCT_01463]
pingSet defines the applicable set of ModeDeclarationMappings
ModeDeclaration of a mode user is mapped to exactly one ModeDeclara-
[TPS_SWCT_01464]
tion of a mode manager
ModeDeclaration of a mode user is mapped to several ModeDeclara-
[TPS_SWCT_01465]
tions of a mode manager
ConsistencyNeeds applied on RunnableEntitys that do not use implicit
[TPS_SWCT_01466]
communication
ImplementationDataType references an SwBaseType with a string encod-
[TPS_SWCT_01467]
ing
[TPS_SWCT_01469] RTE API for retrieving the current activation reason
[TPS_SWCT_01470] RunnableEntityGroup
[TPS_SWCT_01471] DataPrototypeGroup
Receiving SwComponentType owns a DataPrototypeGroup in the role
[TPS_SWCT_01472]
regRequiresStability
Receiving SwComponentType owns a RunnableEntityGroup in the role
[TPS_SWCT_01473]
regRequiresStability
Receiving SwComponentType owns a RunnableEntityGroup in the role
[TPS_SWCT_01474] regRequiresStability and also owns one or several DataPrototype-
Groups in the role regRequiresStability
Sending SwComponentType owns a DataPrototypeGroup in the role re-
[TPS_SWCT_01475]
gRequiresStability
Sender and receiver of the same implicitly communicated VariableDat-
[TPS_SWCT_01476]
aPrototypes are associated with the same RunnableEntityGroup
5
4
Number Heading
[TPS_SWCT_01477] Integral Primitive Types
Array size is defined as an attribute of the ImplementationDataTypeEle-
[TPS_SWCT_01478]
ment
[TPS_SWCT_01479] Applicability of ConsistencyNeeds
[TPS_SWCT_01480] Stability and/or coherence is not required
[TPS_SWCT_01481] The meaning of the term stability with respect to ConsistencyNeeds
[TPS_SWCT_01482] The meaning of the term coherence with respect to ConsistencyNeeds
[TPS_SWCT_01483] Use static and constant memory to support Measurement and Calibration
[TPS_SWCT_01484] Meaning of ApplicationRuleBasedValueSpecification
[TPS_SWCT_01485] RuleBasedValueSpecification shall initialize first elements in an array
ApplicationPrimitiveDataType of category STRING may have in-
[TPS_SWCT_01486]
validValue
Correspondence of invalidValue for ApplicationPrimitiveDataType
[TPS_SWCT_01487]
and ImplementationDataType
ApplicationPrimitiveDataType shall be interpreted as a string of a par-
[TPS_SWCT_01488]
ticular encoding
[TPS_SWCT_01489] Standardized values of SwRecordLayoutV.swRecordLayoutVProp
AUTOSAR supports ApplicationErrors only for ClientServerInter-
[TPS_SWCT_01490]
faces
[TPS_SWCT_01491] AUTOSAR system does not need to explicitly describe infrastructure errors
[TPS_SWCT_01492] Default values for factorSiToUnit and offsetSiToUnit
[TPS_SWCT_01493] The number of RuleArguments.arguments shall not exceed the array size
A RuleBasedValueSpecification of rule FILL_UNITIL_END shall fill
[TPS_SWCT_01494] the value of the last RuleArguments.argument until the last element of the
array
[TPS_SWCT_01495] Standardized value of RuleBasedValueSpecification.category
[TPS_SWCT_01496] General precedence rule for attributes of SwDataDefProps
[TPS_SWCT_01497] Precedence of the unit of value axis
[TPS_SWCT_01498] Precedence of the DataConstr of value axis
[TPS_SWCT_01499] Precedence of the CompuMethod of value axis
[TPS_SWCT_01500] Precedence of the display format of value axis
[TPS_SWCT_01501] Precedence of the calibration access of value axis
[TPS_SWCT_01502] Precedence of the Unit of the input axis
[TPS_SWCT_01503] Precedence of the DataConstr of the input axis
[TPS_SWCT_01504] Precedence of the display format of the input axis
[TPS_SWCT_01505] Precedence of calibration access along structure hierarchies in complex types
[TPS_SWCT_01506] Precedence of the calibration access of input axis
[TPS_SWCT_01507] The role of PassThroughSwConnector
[TPS_SWCT_01508] Scope of end-to-end protection
[TPS_SWCT_01509] Implicit communication behavior
[TPS_SWCT_01510] The role of pretended networking
5
4
Number Heading
[TPS_SWCT_01511] Configuration option is encoded into ModeDeclaration
[TPS_SWCT_01512] Request change of Pretended Networking mode
[TPS_SWCT_01513] React on the change of Pretended Networking mode
[TPS_SWCT_01514] Duplicate existence of initValue in the context of a PRPortPrototype
PPortInCompositionInstanceRef shall be used for attaching Delega-
[TPS_SWCT_01515]
tionSwConnector to an inner PRPortPrototype
[TPS_SWCT_01516] PortInterface describes the static structure of information interchange
[TPS_SWCT_01517] ClientServerOperation cannot be passed as a reference
[TPS_SWCT_01518] Priority of initial value definition with respect to conceptual levels
[TPS_SWCT_01519] RTE executes certain RunnableEntity periodically
Implication of the existence of possibleError on compatibility of
[TPS_SWCT_01520]
ClientServerOperations
Use AutosarVariableRef.localVariable for referencing inter-runnable
[TPS_SWCT_01521]
variables
No initial value is specified for implicitInterRunnableVariable or ex-
[TPS_SWCT_01522]
plicitInterRunnableVariable
[TPS_SWCT_01523] Internal trigger event
[TPS_SWCT_01524] Usage of IoHwAbstractionServerAnnotation
[TPS_SWCT_01525] InitEvent references a RunnableEntity in the role startOnEvent
[TPS_SWCT_01528] Meaning of NumericalRuleBasedValueSpecification
[TPS_SWCT_01529] Default value for EndToEndDescription.dataIdNibbleOffset
[TPS_SWCT_01530] Error behavior of mode manager and mode user
[TPS_SWCT_01531] The semantics of ModeErrorReactionPolicyEnum
[TPS_SWCT_01532] The role of ModeErrorBehavior.defaultMode
ModeDeclarationGroup.initialMode shall be assumed in the absence
[TPS_SWCT_01533]
of ModeDeclarationGroup.modeManagerErrorBehavior
ModeDeclarationGroup.initialMode shall be assumed in the absence
[TPS_SWCT_01534]
of ModeDeclarationGroup.modeUserErrorBehavior
[TPS_SWCT_01535] Mode manager reacts on mode error
Coherent behavior of all mode users in case of errors in the mode switch com-
[TPS_SWCT_01536]
munication
[TPS_SWCT_01541] Preferential selection of modeUserErrorBehavior
[TPS_SWCT_01542] Preferential selection of modeManagerErrorBehavior
[TPS_SWCT_01543] PortInterfaceMapping overrides all other compatibility rules
prefix used for the actual name of the used PortInterface for the routing
[TPS_SWCT_01544]
activation
ModeDeclaration of a mode user that is not mapped to a ModeDeclara-
[TPS_SWCT_01545]
tion of a mode manager
[TPS_SWCT_01546] Notification when an external tester is attached or activated
[TPS_SWCT_01547] Ability to set and reset the Warning Indicator Status bit
[TPS_SWCT_02046] byPassPoint specifies the rapid prototyping capability
5
4
Number Heading
[TPS_SWCT_02047] RptHook specifies the link to rapid prototyping algorithm
[TPS_SWCT_02048] Implicit SwComponentPrototype selection for Rapid Prototyping Scenario
[TPS_SWCT_02049] Implicit RunnableEntity selection for Rapid Prototyping Scenario
[TPS_SWCT_02050] Explicit access point selection for Rapid Prototyping Scenario
[TPS_SWCT_02051] Explicit DataPrototype selection for Rapid Prototyping Scenario
[TPS_SWCT_02052] Definition of Rapid Prototyping Scenario is splittable
Values of RuleBasedAxisCont with the category COM_AXIS, RES_AXIS
[TPS_SWCT_02053]
are for display only
[TPS_SWCT_02507] Instantiation-specific RTEEvents
Table C.12: Added Specification Items in 4.1.1
Number Heading
[constr_1239] RuleBasedValueSpecification shall not exceed the number of values required
[constr_1145] Finding the symbol for the representation of a CompuScale in C code
[constr_2533] Iteration along output axis is only supported for VALUE and VAL_BLK
Table C.13: Deleted Constraints in R4.1.1
Please note that [constr_2533] has been retagged to [constr_1264] to fix a duplicate
constraint ID.
Number Heading
[TPS_SWCT_01210] IoHwAbstractionServerAnnotation
Table C.14: Deleted Specification Items in R4.1.1
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1015] Prioritization of SwDataDefProps
[constr_1043] PortInterface vs. ComSpec
[constr_1058] ImplementationDataType has category FUNCTION_REFERENCE
[constr_1102] ApplicationError in the scope of one SwComponentType
[constr_1146] Applicability of a symbol for a CompuScale in C code
[constr_1163] Compatibility of CompuMethods
[constr_1133] Identical CompuScale Symbolic Names shall have the same range
Applicable categorys for attribute ImplementationDataType.swDataDef-
[constr_1158]
Props.compuMethod
DataPrototype is typed by an ImplementationDataType that references a
[constr_1225]
CompuMethod of category TEXTTABLE or BITFIELD_TEXTTABLE
[constr_2013] Compatibility of ImplementationDataTypes for NvBlockDataMapping
[constr_2051] Mandatory information of a SwValueCont
Table C.15: Changed Constraints in R4.1.2
Number Heading
SwDataDefProps.swImplPolicy of a VariableDataPrototype referenced by
[constr_1277]
a VariableAccess aggregated in the role dataReceivePointByValue
[constr_1278] PhysConstrs references a Unit
Unmapped elements of ApplicationCompositeDataTypes or Implementa-
[constr_1279]
tionDataTypes and the attribute swImplPolicy
[constr_1280] Unmapped dataElement on the receiver side shall have an initValue
[constr_1281] invalidValue shall be inside the scope of the compuMethod
Restriction concerning the usage of RuleBasedValueSpecification or a Ref-
[constr_1282]
erenceValueSpecification for the specification of an invalidValue
[constr_1283] invalidValue is outside the scope of the compuMethod
[constr_1284] Limitation of the use of TextValueSpecification
[constr_1285] Applicability of roles vs. PortPrototypes
5
4
Number Heading
serverArgumentImplPolicy and ArgumentDataPrototype typed by primitive
[constr_1286]
data types
Compatibility of SenderReceiverInterfaces with respect to invalidation-
[constr_1287]
Policy
Allowed Attributes vs. category for DataPrototypes typed by Implementation-
[constr_1288]
DataTypes
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
[constr_1290] Limitation on the number of PPortComSpecs in the context of one PPortPrototype
[constr_1291] Limitation on the number of RPortComSpecs in the context of one PPortPrototype
Limitation on the number of RPortComSpecs/PPortComSpecs in the context of one
[constr_1292]
PRPortPrototype
[constr_1293] Existence of DiagnosticEventNeeds.dtcNumber
[constr_1294] Existence of DiagnosticEventInfoNeeds.dtcNumber
[constr_1295] PortInterfaces and category DATA_REFERENCE
DataPrototypes used as explicitInterRunnableVariable or implicitIn-
[constr_1296]
terRunnableVariable and category DATA_REFERENCE
Table C.16: Added Constraints in R4.1.2
Number Heading
ImplementationDataType.subElement.arraySize shall be used to de-
[TPS_SWCT_01006]
fine the size of the array
[TPS_SWCT_01175] Actively query the status of a partial network
[TPS_SWCT_01219] ComSpec for queued and non-queued sender-receiver communication
[TPS_SWCT_01154] Attribute prefix of IncludedModeDeclarationGroupSet
AtomicSwComponentType offers a server port to read DTR value via OBD
[TPS_SWCT_02011]
services
Table C.17: Changed Specification Items in R4.1.2
Number Heading
[TPS_SWCT_01549] Definition of linear data scaling
[TPS_SWCT_01550] Definition of reciprocal linear data scaling
[TPS_SWCT_01551] Mapping of elements on the sender side to elements on the receiver side
5
4
Number Heading
[TPS_SWCT_01552] Software-component acts as a mode manager
[TPS_SWCT_01553] Software-component acts as a mode user
[TPS_SWCT_01554] Software-component acts as a mode requester
[TPS_SWCT_01555] ModeSwitchedAckEvent is triggered by the RTE regardless
[TPS_SWCT_01556] Rule for setting RoleBasedPortAssignment.role
dataWriteAccess also allows for the definition of a DataWriteComplet-
[TPS_SWCT_01557]
edEvent
[TPS_SWCT_01558] DataWriteCompletedEvent cannot be combined with a WaitPoint
[TPS_SWCT_01559] Default value for attribute SwDataDefProps.swCalibrationAccess
[TPS_SWCT_01560] Supported categorys of CompuMethods for data conversion
[TPS_SWCT_01561] Application of data conversion to composite AutosarDataTypes
[TPS_SWCT_01562] Specification of values of an enumeration
[TPS_SWCT_01563] Applicable values for nativeDeclaration
[TPS_SWCT_01564] Non-recursive definition of a primitive data type
[TPS_SWCT_01565] Recursive definition of a primitive data type
Define literals for an MCD system in the context of a FlatIn-
[TPS_SWCT_01566]
stanceDescriptor
[TPS_SWCT_01567] Default behavior for invalidationPolicy
Consideration of RPortComSpec or PPortComSpec depending on the own-
[TPS_SWCT_01568]
ership
[TPS_SWCT_01569] Definition of CompuScale Symbolic Name
DataTypeMap is mandatory in the presence of ApplicationPrimitive-
[TPS_SWCT_01570]
DataType.swDataDefProps.swRecordLayout
Table C.18: Added Specification Items in 4.1.2
Number Heading
[constr_1042] Definition of a linear data scaling
[constr_1094] Usage of symbol of RunnableEntity
[constr_2025] Uniqueness of symbol attributes (This constraint has been relocated to [10])
[constr_2032] transmissionAcknowledge requires a DataSendCompletedEvent
[constr_4011] ComSpec and ModeSwitchedAckEvent
Table C.19: Deleted Constraints in R4.1.2
Number Heading
[TPS_SWCT_01327] RTE generator can omit the creation of checks at run-time
Table C.20: Deleted Specification Items in R4.1.2
Number Heading
[TPS_SWCT_01573] A PRPortPrototype is never considered unconnected
[TPS_SWCT_01574] PerInstanceMemory.typeDefinition shall not contain a function pointer
Table C.21: Added Traceabless in 4.1.3
Number Heading
The numerical values used to define the values of ModeDeclaration.value
[TPS_SWCT_01009] and ModeDeclarationGroup.onTransitionValue can be arbitrarily de-
fined
[TPS_SWCT_01049] Two ways to use the ExclusiveAreas
Table C.22: Changed Traceables in R4.1.3
Number Heading
Define calibration parameters common to all SwComponentPrototypes of
[TPS_SWCT_01417]
the same SwComponentType
ParameterSwComponentType shall never aggregate a SwcInternalBe-
[TPS_SWCT_01419]
havior
AtomicSwComponentType offers sender receiver ports to adjust the IO signal
[TPS_SWCT_02006]
via diagnostic services
Table C.23: Deleted Traceables in R4.1.3
Number Heading
[constr_1297] Applicability of serverArgumentImplPolicy set to [useArrayBaseType]
Existence of attributes if category of a ModeDeclarationGroup is set to EX-
[constr_1298]
PLICIT_ORDER
Existence of attributes if category of a ModeDeclarationGroup is set to other
[constr_1299]
than EXPLICIT_ORDER
Table C.24: Added Constraints in R4.1.3
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1230] ApplicationDataType that qualifies for Integral Primitive Type
Table C.25: Changed Constraints in R4.1.3
Number Heading
[constr_1179] Existence of ModeDeclaration.value within a ModeDeclarationGroup
[constr_1180] Existence of ModeDeclarationGroup.onTransitionValue
Table C.26: Deleted Constraints in R4.1.3
Number Heading
Application Mode Manager interacts with both BswM and other Application-
[TPS_SWCT_01572]
SwComponentTypes
AtomicSwComponentType requires the notification about a Service Request
[TPS_SWCT_01577]
via diagnostic services with manufacturer characteristics
5
4
Number Heading
AtomicSwComponentType requires the notification about a Service Request
[TPS_SWCT_01578]
via diagnostic services with supplier characteristics
Dcm can directly access dataElements in PPortPrototypes typed by a
[TPS_SWCT_01579]
SenderReceiverInterface
Dem can directly access dataElements in PPortPrototypes typed by a
[TPS_SWCT_01580]
SenderReceiverInterface
[TPS_SWCT_01581] Communication patterns for mode-related communication
[TPS_SWCT_01582] Semantics of DiagnosticEventNeeds.deferringFid
[TPS_SWCT_01583] Completeness of TextTableMapping is not a requirement
InternalBehavior of a NvBlockSwComponentType for implementing a
[TPS_SWCT_01584]
writing strategy
[TPS_SWCT_01585] Relevance of NvBlockDescriptor.timingEvent.period
[TPS_SWCT_01586] Writing strategies for nv data
[TPS_SWCT_01587] The cyclic writing of nv data requires the existence of a TimingEvent
[TPS_SWCT_01588] DataReceivedEvent for storing nv data immediately
[TPS_SWCT_01589] Implementation of emergency storing of nv data
[TPS_SWCT_01590] Combination of writing strategies for nv data is possible
[TPS_SWCT_01591] Existence of attribute DiagnosticEventNeeds.reportBehavior
Communication among RunnableEntitys of different instances of the same
[TPS_SWCT_01592]
AtomicSwComponentType
Semantics of attribute ReceiverComSpec.transformationCom-
[TPS_SWCT_01593]
SpecProps
[TPS_SWCT_01594] Semantics of TransformationComSpecProps
[TPS_SWCT_01595] Semantics of attribute ClientComSpec.transformationComSpecProps
[TPS_SWCT_01596] Semantics of attribute ServerComSpec.transformationComSpecProps
[TPS_SWCT_01597] PortPrototype-specific data transformation configuration
[TPS_SWCT_01598] More than one user-defined transformer is used within one transformer chain
[TPS_SWCT_01599] PortPrototype-specific configuration for custom transformers
PortPrototype-specific configuration for data transformers related to end-
[TPS_SWCT_01600]
to-end protection
[TPS_SWCT_01601] Size Indicator shall be updated by software-component
[TPS_SWCT_01602] Size Indicator shall be read by the software-component
[TPS_SWCT_01603] Variable size array with Size Indicator
[TPS_SWCT_01604] Enable Size Indicator
[TPS_SWCT_01605] Semantics of ApplicationArrayElement.arraySizeHandling
[TPS_SWCT_01606] Internal structure of mapped ImplementationDataType
[TPS_SWCT_01607] Profiles for internal structure of mapped ImplementationDataType
[TPS_SWCT_01608] Custom profiles for internal structure of mapped ImplementationDataType
A RuleBasedValueSpecification of rule FILL_UNTIL_MAX_SIZE
[TPS_SWCT_01609] shall fill the value of the last RuleArguments.argument until the number of
elements specified in maxSizeToFill
5
4
Number Heading
Modeling of a Variable-Size Array Data Type with Size Indicator
[TPS_SWCT_01610]
enabled
[TPS_SWCT_01611] Enable Size Indicator
[TPS_SWCT_01612] arraySizeHandling specifies how the size is determined
[TPS_SWCT_01613] Internal structure of mapped ImplementationDataType
[TPS_SWCT_01614] Profiles for internal structure of mapped ImplementationDataType
[TPS_SWCT_01615] Custom profiles for internal structure of mapped ImplementationDataType
[TPS_SWCT_01616] Semantics of TransformerHardErrorEvent
Structure of an ImplementationDataType that represents a variable-sized
[TPS_SWCT_01617]
array data type
Size Indicator for dynamicArraySizeProfile set to VSA_LINEAR,
[TPS_SWCT_01618]
VSA_SQUARE, or VSA_FULLY_FLEXIBLE
Size Indicator for dynamicArraySizeProfile set to VSA_RECTANGU-
[TPS_SWCT_01619]
LAR
Size Indicator for dynamicArraySizeProfile set to VSA_RECTANGU-
[TPS_SWCT_01620]
LAR
[TPS_SWCT_01621] Payload for dynamicArraySizeProfile
Modeling of a Variable-Size Array Data Type only with Implementa-
[TPS_SWCT_01622]
tionDataType
Justification for the existence of attributes ApplicationArrayDataType.
[TPS_SWCT_01623] dynamicArraySizeProfile and ApplicationArrayElement.array-
SizeHandling
[TPS_SWCT_01624] Hard error occurs during the execution of a transformer chain
Sending SwComponentType owns a DataPrototypeGroup in the role dp-
[TPS_SWCT_01625]
gRequiresCoherency and also RunnableEntityGroups
[TPS_SWCT_01626] Error notification of data transformer errors
Suffix used for the resulting name of the PortInterface for the Security
[TPS_SWCT_01627]
Access
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01628]
vices
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01629]
vices
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01630]
vices
Suffix used for the resulting name of the PortInterface for the Infotype
[TPS_SWCT_01631]
Services
Suffix used for the resulting name of the PortInterface for the Routine
[TPS_SWCT_01632]
Services
Suffix used for the resulting name of the PortInterface for the Request
[TPS_SWCT_01633]
Control Services
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01634]
vices
[TPS_SWCT_01635] Naming conventions may support the effectiveness of SymbolProps
5
4
Number Heading
Definition of profiles for the definition of Variable-Size Array Data
[TPS_SWCT_01636]
Types
Table C.27: Added Traceabless in 4.2.1
Number Heading
[TPS_SWCT_01044] ServiceNeeds
[TPS_SWCT_01053] Relationship of interchanged data with RunnableEntitys
AtomicSwComponentType may have AbstractRequiredPortProto-
[TPS_SWCT_01141]
types typed by an NvDataInterface
InternalBehavior of a NvBlockSwComponentType to enable access to
[TPS_SWCT_01150]
the NVRAM Block management API
[TPS_SWCT_01162] Existence of TextTableMapping
[TPS_SWCT_01180] Maximum possible size of Compound Primitive Data Type
Unconnected AbstractRequiredPortPrototype typed by NvDataIn-
[TPS_SWCT_01227]
terface
[TPS_SWCT_01228] NvProvideComSpec
[TPS_SWCT_01239] default value for attribute category used in the context of SwSystemconst
[TPS_SWCT_01274] SwDataDefProps used to support calibration and measurement
[TPS_SWCT_01321] Communication among RunnableEntitys
[TPS_SWCT_01330] RunnableEntity can also have dataSendPoints
Combine dataReceivePointByValue or dataReceivePointByArgu-
[TPS_SWCT_01335]
ment with a WaitPoint
[TPS_SWCT_01348] Trigger source
[TPS_SWCT_01385] Execution of finalization code for software-components
[TPS_SWCT_01456] Predefined values for MemorySection.option and SwAddrMethod.option
Sending SwComponentType owns a DataPrototypeGroup in the role dp-
[TPS_SWCT_01475]
gRequiresCoherency
A RuleBasedValueSpecification of rule FILL_UNTIL_END shall fill the
[TPS_SWCT_01494]
value of the last RuleArguments.argument until the last element of the array
[TPS_SWCT_01495] Standardized value of RuleBasedValueSpecification.rule
[TPS_SWCT_01549] Definition of linear data scaling
[TPS_SWCT_01560] Supported categorys of CompuMethods for data conversion
[TPS_SWCT_02501] Setup for Nvm Use Case: Permanent RAM Block
[TPS_SWCT_02502] Setup for Nvm Use Case: Temporary RAM Block
Setup for NVM Use Case: Software-Components using Nv Data provided by
[TPS_SWCT_02503]
NvBlockSwComponentType
5
4
Number Heading
Setup for Nvm Use Case: RAM Block with explicit synchronization using Mirror
[TPS_SWCT_02504]
Interfaces
Table C.28: Changed Traceables in R4.2.1
Number Heading
Id Heading
[TPS_SWCT_01131] AtomicSwComponentType accepts a request to restart an entire function
[TPS_SWCT_01386] Initialization by mode management
[TPS_SWCT_01387] Finalization by mode management
Dcm and Dem can directly access dataElements in PPortPrototypes typed
[TPS_SWCT_01410]
by a SenderReceiverInterface
[TPS_SWCT_01438] Handling of invalidation in the sending RTE
[TPS_SWCT_01439] Handling of invalidation in the receiving RTE
AtomicSwComponentType requires the notification about a Service Request
[TPS_SWCT_02017]
via diagnostic services
Table C.29: Deleted Traceables in R4.2.1
Number Heading
Primitive DataPrototype on the provider side shall not be mapped to element of a
[constr_1300]
composite data type on the requester side
Existence of RoleBasedDataTypeAssignment.role vs. RoleBasedDataAs-
[constr_1301]
signment.role
[constr_1302] Restriction of data invalidation
Applicability of TextTableMapping depending on the value of CompuMethod.cat-
[constr_1303]
egory
[constr_1304] Existence of attribute bitfieldTextTableMaskFirst
[constr_1305] Existence of attribute bitfieldTextTableMaskSecond
Limitation of TextTableMapping for CompuMethods that have the value of cate-
[constr_1306]
gory set to BITFIELD_TEXTTABLE
[constr_1307] Consistency of values and masks in TextTableMapping
[constr_1308] Existence of NvBlockNeeds.cyclicWritingPeriod
[constr_1309] Existence of NvBlockDescriptor.timingEvent
[constr_1310] Existence of attributes of meta-class NvBlockNeeds
5
4
Number Heading
Appearance of safety-related possible values of MemorySection.option or SwAd-
[constr_1311]
drMethod.option according to [TPS_SWCT_01456]
[constr_1312] PortPrototypes typed by a ParameterInterface
[constr_1313] Completeness of TextTableMapping for the values of a given bit mask on the
sender side
[constr_1314] Profile VSA_LINEAR for ApplicationArrayDataType
[constr_1315] Profile VSA_SQUARE for ApplicationArrayDataType
[constr_1316] Profile VSA_RECTANGULAR for ApplicationArrayDataType
[constr_1317] Profile VSA_FULLY_FLEXIBLE for ApplicationArrayDataType
[constr_1318] Profile VSA_LINEAR for ImplementationDataType
[constr_1319] Profile VSA_SQUARE for ImplementationDataType
[constr_1320] Profile VSA_RECTANGULAR for ImplementationDataType
[constr_1321] Profile VSA_FULLY_FLEXIBLE for ImplementationDataType
[constr_1322] Size Indicator for undefined dynamicArraySizeProfile
[constr_1323] Applicability of attribute ReceiverComSpec.usesEndToEndProtection
[constr_1363] Existence of attributes of DiagnosticValueNeeds
[constr_1364] Existence of attributes of DiagnosticIoControlNeeds
[constr_1375] Existence of attributes of CompuMethod and related meta-classes
Table C.30: Added Constraints in R4.2.1
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1014] Supported value encodings for SwBaseType
[constr_1015] Prioritization of SwDataDefProps
[constr_1037] Client shall not be connected to multiple servers
4
Number Heading
Allowed Attributes vs. category for DataPrototypes typed by Implementation-
[constr_1288]
DataTypes
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
[constr_2009] Supported kinds of PortPrototypes of a NvBlockSwComponentType
[constr_2015] Limitation of SwcInternalBehavior of a NvBlockSwComponentType
[constr_2019] ServiceSwComponentType shall have service ports only
Number Heading
[constr_1189] Allowed targets of externalReplacement
[constr_1293] Existence of DiagnosticEventNeeds.dtcNumber
[constr_1294] Existence of DiagnosticEventInfoNeeds.dtcNumber
[constr_2551] SwCalprmAxis.baseType shall be ignored
Table C.32: Deleted Constraints in R4.2.1
Number Heading
Initial value for a specific implicitInterRunnableVariable or explic-
[TPS_SWCT_01637]
itInterRunnableVariable
[TPS_SWCT_01638] Existence of SwConnector between two PRPortPrototypes
AtomicSwComponentType offers a PPortPrototype typed by
ClientServerInterface to read/write current value via diagnostic ser-
[TPS_SWCT_01639]
vices where the applicable DID is passed as an argument to the access
functions
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01640]
vices
Definition of an “old-world” dynamic-size array data type by means of an Ap-
[TPS_SWCT_01641]
plicationArrayDataType
5
4
Number Heading
Definition of an “old-world” dynamic-size array data type by means of an Im-
[TPS_SWCT_01642]
plementationDataType
Definition of a “new-world” variable-size array data type by means of an Ap-
[TPS_SWCT_01644]
plicationArrayDataType
Definition of a “new-world” variable-size array data type by means of an Im-
[TPS_SWCT_01645]
plementationDataType
[TPS_SWCT_01646] Sending invalidValue without invalidation applied by RTE/Com
Size Indicator for dynamicArraySizeProfile set to VSA_LIN-
[TPS_SWCT_01647] EAR, VSA_SQUARE, or VSA_FULLY_FLEXIBLE if only Implementation-
DataType is present
Size Indicator for dynamicArraySizeProfile set to VSA_RECTANGU-
[TPS_SWCT_01648]
LAR if only ImplementationDataType is present
Payload for dynamicArraySizeProfile if only Implementation-
[TPS_SWCT_01649]
DataType is present
[TPS_SWCT_01650] Structure of the VSA ImplementationDataType
[TPS_SWCT_01651] UTF-16BE
[TPS_SWCT_01652] UTF-16LE
[TPS_SWCT_01653] UTF-16-encoded strings are not allowed to start with a BOM
AtomicSwComponentType offers PortPrototypes typed by Sender-
[TPS_SWCT_01654]
ReceiverInterfaces to adjust the IO signal via diagnostic services
Reference from DiagnosticIoControlNeeds to DiagnosticValue-
[TPS_SWCT_01655]
Needs
Suffix used for the resulting name of the PortInterface for IOControlRe-
[TPS_SWCT_01656]
quest and IOControlResponse
NamingRule for RPortPrototype referenced by a RoleBasedPortAs-
[TPS_SWCT_01657]
signment with attribute role set to “IOControlRequest”
NamingRule for PPortPrototype referenced by a RoleBasedPortAs-
[TPS_SWCT_01658]
signment with attribute role set to “IOControlResponse”
[TPS_SWCT_01659] Mapping of VariableDataPrototype to a NvBlockDescriptor
Table C.33: Added Traceabless in 4.2.2
Number Heading
[TPS_SWCT_01133] AtomicSwComponentType provides information about aging cycles
[TPS_SWCT_01158] Three cases for PortInterfaceMapping
[TPS_SWCT_01179] Compound Primitive Data Type
[TPS_SWCT_01244] Data types for calibration parameters are also described as primitive types
[TPS_SWCT_01370] VariationPointProxy
5
4
Number Heading
Finding the symbol for the representation of a CompuScale with a point-range
[TPS_SWCT_01431]
in C code
Keep the invalidValue transparent to the sending and receiving software
[TPS_SWCT_01432]
components
[TPS_SWCT_01434] Sender and receiver have knowledge of invalid value
Modeling of a Variable-Size Array Data Type with Size Indicator
[TPS_SWCT_01610]
enabled
[TPS_SWCT_01616] Semantics of TransformerHardErrorEvent
Structure of an ImplementationDataType that represents a variable-sized
[TPS_SWCT_01617]
array data type
[TPS_SWCT_01624] Hard error occurs during the execution of a transformer chain
Values of SwAxisCont with the category, COM_AXIS, RES_AXIS are for
[TPS_SWCT_02001]
display only
Values of RuleBasedAxisCont with the category COM_AXIS, RES_AXIS
[TPS_SWCT_02053]
are for display only
Table C.34: Changed Traceables in R4.2.2
Number Heading
Combination of supportsMultipleInstantiation=false and can-
[TPS_SWCT_01308]
BeInvokedConcurrently=false
[TPS_SWCT_01433] Invalid values outside the range limits
[TPS_SWCT_01435] Invalid values outside the range limits
[TPS_SWCT_01603] Variable size array with Size Indicator
[TPS_SWCT_01611] Enable Size Indicator
Table C.35: Deleted Traceables in R4.2.2
Number Heading
Appearance of core-related possible values of MemorySection.option or SwAd-
[constr_1381]
drMethod.option according to [TPS_SWCT_01456]
Mutually exclusive existence of attributes SwVariableRefProxy.autosarVari-
[constr_1382]
able vs. SwVariableRefProxy.mcDataInstanceVar
Existence of CompuMethod and DataConstr for ImplementationDataTypes of
[constr_1383]
category TYPE_REFERENCE
5
4
Number Heading
Definition of invalidValue for DataPrototype typed by ApplicationPrimi-
[constr_1384] tiveDataType of category CURVE, MAP, CUBOID, CUBE_4, CUBE_5, COM_AXIS,
RES_AXIS, and VAL_BLK
[constr_1385] DataPrototype is typed by an ImplementationDataType
PortDefinedArgumentValue shall only be defined for AbstractProvided-
[constr_1386]
PortPrototype
[constr_1388] VariationPointProxy of category VALUE shall not mix “pre-build” and “post-
build” use-cases
Restriction regarding the value of category of VariationPointProxy.imple-
[constr_1389]
mentationDataType
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1040] Conversion of SenderReceiverInterfaces
[constr_1045] Supported value encodings for SwBaseType in the context of PortInterfaces
5
4
Number Heading
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
Compatibility of data types with category COM_AXIS, RES_AXIS, CURVE, MAP,
[constr_1064]
CUBOID, CUBE_4, or CUBE_5
[constr_1066] Forbidden mappings to ImplementationDataType
[constr_1075] Compatibility of ModeDeclarationGroups
[constr_1164] Number of arguments owned by a RunnableEntity
[constr_1234] Value of RunnableEntity.symbol
[constr_1318] Profile VSA_LINEAR for ImplementationDataType
[constr_1319] Profile VSA_SQUARE for ImplementationDataType
[constr_1320] Profile VSA_RECTANGULAR for ImplementationDataType
[constr_1321] Profile VSA_FULLY_FLEXIBLE for ImplementationDataType
[constr_1322] Size Indicator for undefined dynamicArraySizeProfile
[constr_2051] Mandatory information of a SwValueCont
[constr_2058] Mandatory information of a RuleBasedValueCont
Table C.37: Changed Constraints in R4.2.2
Number Heading
[constr_1002] End-to-end protection does not support n:1 communication
ApplicationDataType is or is not compatible to specific Implementation-
[constr_1067]
DataType
Number Heading
[TPS_SWCT_01660] Values of SwcServiceDependency.category reserved by the standard
[TPS_SWCT_01661] Default value of SwcServiceDependency.category
Applicability of DataTypeMappingSets inside an NvBlockSwComponent-
[TPS_SWCT_01662]
Type
5
4
Number Heading
dataReadAccess vs. dataReceivePointByValue or dataReceive-
[TPS_SWCT_01663]
PointByArgument
[TPS_SWCT_01664] BswM acts as a mode requester towards an application mode manager
[TPS_SWCT_01665] Usage of SwcModeSwitchEvent for triggering a write procedure of nv data
[TPS_SWCT_01666] Semantics of ModeSwitchEventTriggeredActivity.role
[TPS_SWCT_01667] Avoidance of overlapping of directly adjacent intervals within CompuMethods
[TPS_SWCT_01668] SecOc Use Case: obtain the verification status of secure communication
SecOc Use Case: software component retires from secure communication for
[TPS_SWCT_01672]
a given period
[TPS_SWCT_01673] Application Software Component sends requests using the J1939Rm
[TPS_SWCT_01674] Application Software Component accepts requests using the J1939Rm
Recommendations for attributes of NvBlockNeeds or for NvBlockDescrip-
[TPS_SWCT_01675]
tor
[TPS_SWCT_01676] Preferred approach to checking the compatibility of input value and axis
[TPS_SWCT_01677] Fall-back approach to checking the compatibility of input value and axis
StbM use Case: Application software component accesses the Synchronized
[TPS_SWCT_01678]
Time-Base Manager
StbM use Case: Synchronized Time-Base Manager notifies application soft-
[TPS_SWCT_01679]
ware component
Dem Use Case: Atomic Software-Component implements a Hardware Shut-
[TPS_SWCT_01680]
down
[TPS_SWCT_01681] Context path in ArVariableInImplementationDataInstanceRef
The meaning of E2E-related attributes in a ReceiverComSpec if a
[TPS_SWCT_01682] TransformationComSpecProps of type EndToEndTransformation-
ComSpecProps is defined.
[TPS_SWCT_01683] Specification of an array of input variable for an array of axes
[TPS_SWCT_01684] Specification of a single input variable for an array of axes
Specification of an array of group axes for an array of category CURVE, MAP,
[TPS_SWCT_01685]
CUBOID, CUBE_4, or CUBE_5
Specification of a single group axis for an array of elements of category
[TPS_SWCT_01686]
CURVE, MAP, CUBOID, CUBE_4, or CUBE_5
[TPS_SWCT_01687] Support of locked communication buffers
[TPS_SWCT_01688] initValue should exist in an RPortPrototype
[TPS_SWCT_01689] Relation between SwcServiceDependencys and PortPrototypes
AtomicSwComponentType offers a PPortPrototype typed by
[TPS_SWCT_01690] ClientServerInterface to read/write and IOCtrl current value via di-
agnostic services
Suffix used for the resulting name of the PortInterface for the Data Ser-
[TPS_SWCT_01691]
vices
[TPS_SWCT_01692] Meaning of CompositeRuleBasedValueSpecification
[TPS_SWCT_01693] Usage of VendorSpecificServiceNeeds
5
4
Number Heading
Setup for Default Error Tracer Service use Case: development errors or run-
[TPS_SWCT_01694]
time error
[TPS_SWCT_01695] Relation between ValueSpecification and the definition of CompuScales
[TPS_SWCT_01696] CompuScale Value Symbolic Name
Supported development approach for software-components that interact with
[TPS_SWCT_01697]
AUTOSAR services
[TPS_SWCT_01698] Attributes that are subject to development approach
[TPS_SWCT_01699] Usage of ApplicationArrayElement.indexDataType
[TPS_SWCT_01700] Definition of unions that can be transmitted over a communication network
[TPS_SWCT_01701] Wrapped Union Data Type
[TPS_SWCT_01702] Initialization of the “payload” of a Wrapped Union Data Type
Setup for AtomicSwComponentType which sets or gets the Global Supervi-
[TPS_SWCT_01703]
sion Status
[TPS_SWCT_01704] Definition of supervised entity
[TPS_SWCT_01705] Definition of Checkpoints
AtomicSwComponentType supports DiagnosticSessionControl to get in-
[TPS_SWCT_01706]
formed about the diagnostic session
AtomicSwComponentType supports EcuReset service via diagnostic ser-
[TPS_SWCT_01707]
vices
AtomicSwComponentType supports EcuReset ModeRapidPowerShutDown
[TPS_SWCT_01708]
service via diagnostic services
AtomicSwComponentType supports CommunicationControl service via di-
[TPS_SWCT_01709]
agnostic services
Suffix used for the resulting name of the PortInterface for the Communi-
[TPS_SWCT_01710]
cation Control
AtomicSwComponentType supports ControlDTCSetting service via diagnos-
[TPS_SWCT_01711]
tic services
AtomicSwComponentType supports SecurityAccess to get informed about
[TPS_SWCT_01712]
the security level
[TPS_SWCT_01713] ExclusiveArea is entered and exited by a common set of APIs
[TPS_SWCT_01714] ExclusiveArea is entered and exited by an individual set of APIs
[TPS_SWCT_01715] Software-Component wants to be triggered on Monitor Status Changes
[TPS_SWCT_01716] SecOc Use Case: deliver freshness to SecOC I
[TPS_SWCT_01717] SecOc Use Case: deliver freshness to SecOC II
[TPS_SWCT_01718] SecOc Use Case: deliver freshness to SecOC III
[TPS_SWCT_01719] Selection of applicable RptProfiles
[TPS_SWCT_01720] Preparation Levels
[TPS_SWCT_01721] References from RptContainer
[TPS_SWCT_01722] Semantics of RP Service Point
[TPS_SWCT_01723] Semantics of RP Service Function
[TPS_SWCT_01724] Semantics of RapidPrototypingScenario
[TPS_SWCT_01725] AtomicSwComponentType uses the secure counter of the Crypto Service
5
4
Number Heading
[TPS_SWCT_01726] AtomicSwComponentType uses the key management of the Crypto Service
Suffix used for the resulting name of the PortInterface for crypto PortIn-
[TPS_SWCT_01727]
terfaces
V2xFac Use Case: Application software component provides Vehicle specific
[TPS_SWCT_01728]
data to the V2X-Stack for CAM transmission
V2xFac Use Case: V2xFac notifies application software component about re-
[TPS_SWCT_01729]
ceived messages
V2xFac Use Case: Application software component triggers transmission of
[TPS_SWCT_01730]
DENM message
V2xM Use Case: Application software component provides Vehicle specific
[TPS_SWCT_01731]
data to the V2X-Stack for Position and Time information
V2xM Use Case: Application software component needs V2X specific data
[TPS_SWCT_01732]
from the V2X Manager
V2xM Use Case: Application software component has soft-control over
[TPS_SWCT_01733]
Pseudonym-Change within V2X Manager
V2xM Use Case: Application software component has the ability to do
[TPS_SWCT_01734]
Verification-on-Demand
V2xM Use Case: Application software component do location based calcula-
[TPS_SWCT_01735]
tions
Table C.39: Added Traceabless in 4.3.0
Number Heading
[TPS_SWCT_01005] Usage of SwcServiceDependencys for vendor-specific services
[TPS_SWCT_01054] Semantics of the explicitInterRunnableVariable
[TPS_SWCT_01134] AtomicSwComponentType enables reporting of DTCs in general
[TPS_SWCT_01158] Cases for PortInterfaceMapping
[TPS_SWCT_01173] Control port shall not become a part of the PortGroup
[TPS_SWCT_01174] Status port shall not become a member of the PortGroup
[TPS_SWCT_01182] Conceptual levels for the definition of initial values
[TPS_SWCT_01275] values of the attribute swImplPolicy are restricted depending on the context
[TPS_SWCT_01331] dataWriteAccess vs. dataSendPoint
[TPS_SWCT_01355] enableTakeAddress = true
ModeDeclarationGroupPrototypeMapping.modeDeclarationMap-
[TPS_SWCT_01463]
pingSet defines the applicable set of ModeDeclarationMappings
The number of RuleBasedValueSpecification.arguments shall not ex-
[TPS_SWCT_01493]
ceed the array size
A RuleBasedValueSpecification of rule FILL_UNTIL_END shall fill the
[TPS_SWCT_01494] value of the last RuleBasedValueSpecification.arguments until the last
element of the array
5
4
Number Heading
[TPS_SWCT_01552] Software-component acts as a mode manager
[TPS_SWCT_01553] Software-component acts as a mode user
[TPS_SWCT_01554] Software-component acts as a mode requester
[TPS_SWCT_01569] Definition of CompuScale Code Symbolic Name
[TPS_SWCT_01586] Writing strategies for nv data
A RuleBasedValueSpecification of rule FILL_UNTIL_MAX_SIZE
[TPS_SWCT_01609] shall fill the value of the last RuleBasedValueSpecification.arguments
until the number of elements specified in maxSizeToFill
[TPS_SWCT_01635] Naming conventions may support the effectiveness of SymbolProps
Values of SwAxisCont with the category COM_AXIS, RES_AXIS are for dis-
[TPS_SWCT_02001]
play only
AtomicSwComponentType supports Response On Event (ROE) via diagnos-
[TPS_SWCT_02014]
tic services
[TPS_SWCT_02020] AtomicSwComponentType uses the hash calculation of the Crypto Service
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02021]
calculation of the Crypto Service
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02022]
verification of the Crypto Service
AtomicSwComponentType uses the generation of random numbers of the
[TPS_SWCT_02024]
Crypto Service
AtomicSwComponentType uses the Authenticated Encryption with Associ-
[TPS_SWCT_02025]
ated Data (AEAD) of the Crypto Service
AtomicSwComponentType uses the Authenticated Encryption with Associ-
[TPS_SWCT_02026]
ated Data (AEAD) of the Crypto Service
[TPS_SWCT_02027] AtomicSwComponentType uses the encryption of the Crypto Service
[TPS_SWCT_02028] AtomicSwComponentType uses the decryption of the Crypto Service
AtomicSwComponentType uses the signature generation of the Crypto Ser-
[TPS_SWCT_02031]
vice
AtomicSwComponentType uses the signature verification of the Crypto Ser-
[TPS_SWCT_02032]
vice
Values of RuleBasedAxisCont with the category COM_AXIS, RES_AXIS
[TPS_SWCT_02053]
are for display only
Setup for NVM Use Case: Software-Components using Nv Data provided by
[TPS_SWCT_02503]
NvBlockSwComponentType
Setup for Dlt use Case: Application software component accesses the Dlt mod-
[TPS_SWCT_02506]
ule
Table C.40: Changed Traceables in R4.3.0
Number Heading
[TPS_SWCT_01279] Preferred conversion direction depends on the use case
ServiceSwComponentType representing the Dem provides a PPortProto-
[TPS_SWCT_01428]
type for the Dcm
[TPS_SWCT_02018] Setup for AtomicSwComponentType which contains a Supervised Entity
AtomicSwComponentType uses the generation of random seed of the Crypto
[TPS_SWCT_02023]
Service
AtomicSwComponentType uses the asymmetrical encryption of the Crypto
[TPS_SWCT_02029]
Service
AtomicSwComponentType uses the asymmetrical decryption of the Crypto
[TPS_SWCT_02030]
Service
AtomicSwComponentType uses the checksum calculation of the Crypto Ser-
[TPS_SWCT_02033]
vice
[TPS_SWCT_02034] AtomicSwComponentType uses the key derivation of the Crypto Service
AtomicSwComponentType uses the symmetric key derivation of the Crypto
[TPS_SWCT_02035]
Service
AtomicSwComponentType uses the key exchange interface for public value
[TPS_SWCT_02036]
calculation of the Crypto Service
AtomicSwComponentType uses the key exchange interface for secret value
[TPS_SWCT_02037]
calculation of the Crypto Service
AtomicSwComponentType uses the key exchange interface to calculate sym-
[TPS_SWCT_02038]
metric key with the Crypto Service
AtomicSwComponentType uses the symmetrical key extraction of the Crypto
[TPS_SWCT_02039]
Service
AtomicSwComponentType uses the symmetrical key wrapping of the Crypto
[TPS_SWCT_02040]
Service to export a symmetrical key structure with a symmetric key
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02041]
Crypto Service to export a symmetrical key structure with a asymmetric key
AtomicSwComponentType uses the asymmetrical public key extraction of the
[TPS_SWCT_02042]
Crypto Service
AtomicSwComponentType uses the asymmetrical private key extraction of
[TPS_SWCT_02043]
the Crypto Service
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02044] Crypto Service to export a (asymmetric) private key structure with a symmetri-
cal wrapping key
AtomicSwComponentType uses the asymmetrical key wrapping of the
[TPS_SWCT_02045] Crypto Service to export a (asymmetric) private key structure with a asym-
metrical wrapping key
Table C.41: Deleted Traceables in R4.3.0
Number Heading
Definition of SwDataDefProps.dataConstr depending on the capabilities of the
[constr_1407]
data type
Definition of SwDataDefProps.displayFormat depending on the capabilities of the
[constr_1408]
data type
Definition of SwDataDefProps.dataConstr depending on the capabilities of the
[constr_1409]
element data type
Definition of SwDataDefProps.displayFormat depending on the capabilities of the
[constr_1410]
element data type
Definition of SwDataDefProps.stepSize depending on the capabilities of the data
[constr_1413]
type
Definition of SwDataDefProps.stepSize depending on the capabilities of the ele-
[constr_1414]
ment data type
[constr_1415] Supported values of ModeSwitchEventTriggeredActivity.role
[constr_1416] Existence of ApplicationArrayElement.maxNumberOfElements
Invalid connection between NvBlockSwComponentType and other AtomicSwCom-
[constr_1417]
ponentType (I)
Invalid connection between NvBlockSwComponentType and other AtomicSwCom-
[constr_1418]
ponentType (II)
[constr_1420] Existence of SwAxisIndividual.inputVariableType
[constr_1422] Value of category is VOID
Completeness of references ArVariableInImplementationDataInstanceRef.
[constr_1423]
contextDataPrototype
Existence of ArVariableInImplementationDataInstanceRef.contextDat-
[constr_1424]
aPrototype
Definition of swCalprmAxisSet.swCalprmAxis/ SwAxisIndividual.swVari-
[constr_1425]
ableRef depending on the capabilities of the data type
[constr_1426] Consistency of array sizes for axes and input variable array
Definition of swCalprmAxisSet.swCalprmAxis/ SwAxisGrouped.swCalprmRef
[constr_1427]
depending on the capabilities of the data type
Consistency of array sizes for arrays of elements of category CURVE, MAP, CUBOID,
[constr_1428]
CUBE_4, or CUBE_5 arrays and used group axes arrays
[constr_1429] Access to data within PortPrototypes from within RunnableEntitys
[constr_1430] Access to local data from within RunnableEntitys
[constr_1431] Access to parameters from within RunnableEntitys
[constr_1432] Multiplicity of CommunicationBufferLocking
[constr_1433] Transient faults are not applicable to software-components
[constr_1434] CompuScales shall not have identical CompuScale Value Symbolic Names
DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType
[constr_1436]
is set to requestCallbackTypeSupplier
DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType
[constr_1437]
is set to requestCallbackTypeManufacturer
5
4
Number Heading
ApplicationArrayElement.indexDataType needs to refer to a CompuMethod
[constr_1438]
of category TEXTTABLE
[constr_1439] Requirements on ApplicationArrayElement if attribute indexDataType exists
Size of the CompuMethod of category TEXTTABLE referenced by Application-
[constr_1440]
ArrayElement.indexDataType
category TYPE_REFERENCE shall not be used for modeling the “payload” of a
[constr_1442]
Wrapped Union Data Type
[constr_1443] category UNION shall not be used for ImplementationDataType
[constr_1444] Limited applicability of Wrapped Union Data Type
[constr_1445] Initialization of the Member Selector of a Wrapped Union Data Type
[constr_1446] No definition of invalidValue for a Wrapped Union Data Type
[constr_1468] Limitation on the number of SwcExclusiveAreaPolicys
[constr_1469] Applicability of constraints depending on the existence of a data transformation
Table C.42: Added Constraints in R4.3.0
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1011] category of SwBaseType
[constr_1014] Supported value encodings for SwBaseType
[constr_1015] Prioritization of SwDataDefProps
[constr_1024] Stepwise definition of CompuMethods
[constr_1045] Supported value encodings for SwBaseType in the context of PortInterfaces
[constr_1105] Value of arraySize
Consistency of ArgumentDataPrototypes within the context of a ClientServer-
[constr_1240]
OperationMapping
RecordValueSpecification.fields shall be identical to the number of Appli-
[constr_1271]
cationRecordDataType.elements
RecordValueSpecification.fields shall be identical to the number of subEle-
[constr_1272]
ments of ImplementationDataType of category STRUCTURE
[constr_1284] Limitation of the use of TextValueSpecification
Allowed Attributes vs. category for DataPrototypes typed by Implementation-
[constr_1288]
DataTypes
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
[constr_1302] Restriction of data invalidation
5
4
Number Heading
[constr_1375] Existence of attributes of CompuMethod and related meta-classes
[constr_1400] Reference to a specific DataTransformation
Number Heading
[constr_1019] Compatibility of input value and axis
[constr_1021] A CompuMethod shall specify instructions for both directions
[constr_1133] Identical CompuScale Symbolic Names shall have the same range
[constr_1201] initValue shall exist in an RPortPrototype
[constr_1323] Applicability of attribute ReceiverComSpec.usesEndToEndProtection
Table C.44: Deleted Constraints in R4.3.0
Number Heading
[TPS_SWCT_01736] Default values for Unit.physicalDimension
[TPS_SWCT_01737] Default values for physical exponents
[TPS_SWCT_01738] Context path in ArParameterInImplementationDataInstanceRef
Function Inhibition Manager Use Case: react on suppressed or unavailable
[TPS_SWCT_01739]
events
StbM use Case: Process time snapshot obtained from global time slave for
[TPS_SWCT_01740]
diagnostics purposes
Suffix used for the resulting name of the PortInterface for measurement
[TPS_SWCT_01741]
notification
[TPS_SWCT_01742] StbM use Case: Software-component represents a global time master
5
4
Number Heading
Suffix used for the resulting name of the PortInterface for the global time
[TPS_SWCT_01743]
master role
[TPS_SWCT_01744] StbM use Case: Software-component represents a global time slave
Suffix used for the resulting name of the PortInterface for the global time
[TPS_SWCT_01745]
slave role
Atomic Software-Component provides the further action byte to the DoIP Ser-
[TPS_SWCT_01746]
vice Component
[TPS_SWCT_01747] Value of category for fix axis
[TPS_SWCT_01748] Sub-categories of fix axes
[TPS_SWCT_01749] Semantics of SwAxisGeneric.swAxisType in the definition of a fix axis
Semantics of SwAxisGeneric.swGenericAxisParam in the definition of a
[TPS_SWCT_01750]
fix axis
Table C.45: Added Traceables in R4.3.1
Number Heading
Mappings between application and implementation types do not necessarily
[TPS_SWCT_01193]
have to form a 1:1 relation
[TPS_SWCT_01222] Applicability of DataFilter
RunnableEntity implements the functionality of more than one
[TPS_SWCT_01225]
ClientServerOperations
[TPS_SWCT_01288] Interpretation of PhysConstrs and InternalConstrs by tools
[TPS_SWCT_01444] Size of SwBaseType is specified in bits
[TPS_SWCT_01560] Supported categorys of CompuMethods for data conversion
Recommendations for attributes of NvBlockNeeds or for NvBlockDe-
[TPS_SWCT_01675]
scriptor
[TPS_SWCT_01678] StbM use Case: start timer and potentially get notified about its expiration
StbM use Case: Software-Components wants to get notifications of status
[TPS_SWCT_01679]
changes
[TPS_SWCT_01714] ExclusiveArea is entered and exited by an individual set of APIs
Setup for Dlt use Case: Application software component accesses the Dlt
[TPS_SWCT_02506]
module
Table C.46: Changed Traceables in R4.3.1
Number Heading
AUTOSAR supports ApplicationErrors only for ClientServerInter-
[TPS_SWCT_01490]
faces
Table C.47: Deleted Traceables in R4.3.1
Number Heading
Existence of ImplementationDataTypeSubElementRef.implementation-
[constr_1515] DataTypeElement as opposed to ImplementationDataTypeSubElementRef.
parameterImplementationDataTypeElement
Completeness of references ArParameterInImplementationDataIn-
[constr_1516]
stanceRef.contextDataPrototype
Existence of ArParameterInImplementationDataInstanceRef.context-
[constr_1517]
DataPrototype
Number Heading
Mapping of ApplicationDataTypes in the scope of single AtomicSwCompo-
[constr_1004]
nentTypes
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
5
4
Number Heading
[constr_1011] category of SwBaseType
[constr_1012] Value of category is FIXED_LENGTH
[constr_1015] Prioritization of SwDataDefProps
[constr_1038] Reference to ApplicationError
[constr_1044] Applicability of DataFilter
[constr_1090] WaitPoint and RunnableEntity
[constr_1102] ApplicationError in the scope of one SwComponentType
[constr_1126] Compatibility of DataConstrs
[constr_1220] Compatibility of SwBaseType
[constr_1229] category of ImplementationDataType boils down to VALUE
Allowed Attributes vs. category for DataPrototypes typed by Implementa-
[constr_1288]
tionDataTypes
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
[constr_1422] Value of category is VOID
[constr_2027] SwcServiceDependency shall be defined for service ports only
[constr_2043] swImplPolicy for ParameterDataPrototype in the role romBlock
[constr_2044] swImplPolicy for ParameterDataPrototype in the role sharedParameter
Number Heading
[constr_1013] Value of category is VARIABLE_LENGTH
DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType
[constr_1436]
is set to requestCallbackTypeSupplier
DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType
[constr_1437]
is set to requestCallbackTypeManufacturer
Table C.50: Deleted Constraints in R4.3.1
Number Heading
The meaning of E2E-related attributes in a SenderComSpec if a
[TPS_SWCT_01751] TransformationComSpecProps of type EndToEndTransformation-
ComSpecProps is defined
[TPS_SWCT_01752] Initialization of a variable-size array
[TPS_SWCT_01753] Application of compatibility rules for ReceiverComSpec.replaceWith
[TPS_SWCT_01754] initValue defined in the context of a ComSpec
Duplicate existence of initValue in the context of a PRPortPrototype
[TPS_SWCT_01755]
typed by an NvDataInterface
[TPS_SWCT_01756] Semantics of SwDataDefProps.displayPresentation
[TPS_SWCT_01757] Not-applicable scenario for presentationContinuous
[TPS_SWCT_01758] Applicable value range of SwDataDefProps.displayPresentation
[TPS_SWCT_01759] Use cases for unions
Defining the dimension of an ApplicationPrimitiveDataType of cat-
[TPS_SWCT_01760]
egory VAL_BLK
[TPS_SWCT_01761] Physical limits of pure textual conversions
[TPS_SWCT_01762] Physical limits of mixed textual conversions
[TPS_SWCT_01763] HtssM Service Use Case: Query results of hardware tests
V2xFac Use Case: Application software component shall be able to process
[TPS_SWCT_01764]
the MAP (topology) Extended Message
Dem Service Use Case: In-Use-Monitoring Performance Ratio Denominator
[TPS_SWCT_01765]
interface
Software-component computes the PIDs, and pushes them to Dem for stor-
[TPS_SWCT_01766]
age and reporting to Dcm
Software-component located on an OBD master ECU reads the PID 21, and
[TPS_SWCT_01767]
and sends the value around via “regular” sender-receiver communication
Semantics of DataPrototypeMapping.secondToFirstDataTransfor-
[TPS_SWCT_01768]
mation
[TPS_SWCT_01769] Dcm Use Case: Upload and download of data
V2xFac Use Case: Application software component processes Infrastructure
[TPS_SWCT_01770]
to Vehicle Information Message
[TPS_SWCT_01771] Definition of optional elements on the level of ApplicationDataType
Semantics of attribute ImplementationDataType.isStructWithOp-
[TPS_SWCT_01772]
tionalElement
Definition of Optional Element Structure on the level of Implemen-
[TPS_SWCT_01773]
tationDataType
[TPS_SWCT_01774] Modeling of ImplementationDataType with optional elements
[TPS_SWCT_01775] Structured data types with optional elements
5
4
Number Heading
AtomicSwComponentType uses the API of the Crypto Service to set a key
[TPS_SWCT_01776]
valid
AtomicSwComponentType uses the API of the Crypto Service to create a
[TPS_SWCT_01777]
random seed
AtomicSwComponentType uses the API of the Crypto Service to generate
[TPS_SWCT_01778]
a key
AtomicSwComponentType uses the API of the Crypto Service to derive a
[TPS_SWCT_01779]
key
AtomicSwComponentType uses the API of the Crypto Service to execute
[TPS_SWCT_01780]
calculation of the public value for key exchange
AtomicSwComponentType uses the API of the Crypto Service to execute
[TPS_SWCT_01781]
calculation of shared secret for key exchange
AtomicSwComponentType uses the API of the Crypto Service to execute
[TPS_SWCT_01782]
certificate parsing
AtomicSwComponentType uses the API of the Crypto Service to execute
[TPS_SWCT_01783]
certificate verification
SecOc Use Case: enable the sending of Pdus even if computation of the
[TPS_SWCT_01784]
MAC is not possible
Initial value for ImplementationDataType of category STRUCTURE
[TPS_SWCT_01785]
where attribute isStructWithOptionalElement set to the value True
Initial value for the ImplementationDataTypeElement where the short-
[TPS_SWCT_01786]
Name is set to the value availabilityBitfield
[TPS_SWCT_01787] Initialization of not-available ImplementationDataTypeElement
V2xFac Use Case: Application software component processes Signal Phase
[TPS_SWCT_01788]
And Timing Extended Message
AtomicSwComponentType implements a Diagnostic Monitor that provides
[TPS_SWCT_01789]
monitor data, debouncing by Dem
AtomicSwComponentType implements a Diagnostic Monitor that provides
[TPS_SWCT_01790]
monitor data, debouncing by software-component
[TPS_SWCT_01791] AtomicSwComponentType acts as a "file server" to a diagnostic tester
Table C.51: Added Traceables in R4.4.0
Number Heading
[TPS_SWCT_01016] AtomicSwComponentType wants to select a shutdown target
[TPS_SWCT_01017] AtomicSwComponentType wants to select a boot target
[TPS_SWCT_01018] AtomicSwComponentType wants to use an alarm clock
[TPS_SWCT_01028] AtomicSwComponentType implements a Diagnostic Monitor
[TPS_SWCT_01029] AtomicSwComponentType implements a Diagnostic Monitor
5
4
Number Heading
[TPS_SWCT_01132] AtomicSwComponentType provides information about operating cycles
[TPS_SWCT_01136] AtomicSwComponentType retrieves information of the lamp status
[TPS_SWCT_01180] Maximum possible size of Compound Primitive Data Type
values of the attribute swImplPolicy are restricted depending on the con-
[TPS_SWCT_01275]
text
[TPS_SWCT_01374] Implementation of AutosarParameterRef
[TPS_SWCT_01375] Implementation of AutosarVariableRef
[TPS_SWCT_01398] Communication patterns for AUTOSAR services
[TPS_SWCT_01405] Creation of the ServiceSwComponentTypes
AtomicSwComponentType provides callback if any diagnostic event data
[TPS_SWCT_01426]
and/or status changed
Predefined values for MemorySection.option and SwAddrMethod.op-
[TPS_SWCT_01456]
tion
[TPS_SWCT_01678] StbM use Case: start timer and potentially get notified about its expiration
[TPS_SWCT_01698] Attributes that are subject to development approach
AtomicSwComponentType supports DiagnosticSessionControl to get in-
[TPS_SWCT_01706]
formed about the diagnostic session
AtomicSwComponentType supports EcuReset service via diagnostic ser-
[TPS_SWCT_01707]
vices
AtomicSwComponentType supports EcuReset ModeRapidPowerShut-
[TPS_SWCT_01708]
Down service via diagnostic services
AtomicSwComponentType supports CommunicationControl service via di-
[TPS_SWCT_01709]
agnostic services
AtomicSwComponentType supports ControlDTCSetting service via diag-
[TPS_SWCT_01711]
nostic services
AtomicSwComponentType supports SecurityAccess to get informed about
[TPS_SWCT_01712]
the security level
[TPS_SWCT_01715] Software-Component wants to be triggered on Monitor Status Changes
Suffix used for the resulting name of the PortInterface for crypto Port-
[TPS_SWCT_01727]
Interfaces
V2xFac Use Case: Application software component provides Vehicle specific
[TPS_SWCT_01728]
data to the V2X-Stack for CAM transmission
V2xFac Use Case: V2xFac notifies application software component about
[TPS_SWCT_01729]
received messages
V2xFac Use Case: Application software component triggers transmission of
[TPS_SWCT_01730]
DENM message
[TPS_SWCT_02000] Default value for attribute swImplPolicy
AtomicSwComponentType supports Response On Event (ROE) via diag-
[TPS_SWCT_02014]
nostic services
[TPS_SWCT_02020] AtomicSwComponentType uses the hash calculation of the Crypto Service
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02021]
calculation of the Crypto Service
5
4
Number Heading
AtomicSwComponentType uses the message authentication code (MAC)
[TPS_SWCT_02022]
verification of the Crypto Service
AtomicSwComponentType uses the generation of random numbers of the
[TPS_SWCT_02024]
Crypto Service
AtomicSwComponentType uses the Authenticated Encryption with Associ-
[TPS_SWCT_02025]
ated Data (AEAD) of the Crypto Service
AtomicSwComponentType uses the Authenticated Encryption with Associ-
[TPS_SWCT_02026]
ated Data (AEAD) of the Crypto Service
[TPS_SWCT_02027] AtomicSwComponentType uses the encryption of the Crypto Service
[TPS_SWCT_02028] AtomicSwComponentType uses the decryption of the Crypto Service
AtomicSwComponentType uses the signature generation of the Crypto Ser-
[TPS_SWCT_02031]
vice
AtomicSwComponentType uses the signature verification of the Crypto Ser-
[TPS_SWCT_02032]
vice
Setup for Dlt use Case: Application software component accesses the Dlt
[TPS_SWCT_02506]
module
Table C.52: Changed Traceables in R4.4.0
Number Heading
[TPS_SWCT_01012] AtomicSwComponentType reads the current ECU mode (fixed variant)
[TPS_SWCT_01013] AtomicSwComponentType shall keep the ECU alive (fixed variant)
[TPS_SWCT_01014] AtomicSwComponentType wants to select a shutdown target (fixed variant)
[TPS_SWCT_01015] AtomicSwComponentType wants to select a boot target (fixed variant)
[TPS_SWCT_01125] serverArgumentImplPolicy
[TPS_SWCT_01133] AtomicSwComponentType provides information about aging cycles
NamingRule for PPortPrototype referenced by a RoleBasedPortAs-
[TPS_SWCT_01658]
signment with attribute role set to “IOControlResponse”
Suffix used for the resulting name of the PortInterface for the Communi-
[TPS_SWCT_01710]
cation Control
[TPS_SWCT_01725] AtomicSwComponentType uses the secure counter of the Crypto Service
Table C.53: Deleted Traceables in R4.4.0
Number Heading
PortInterfaceMapping for DataPrototype typed by Compound Primitive
[constr_1583]
Data Type
Definition of SwDataDefProps.displayPresentation depending on the capa-
[constr_1592]
bilities of the data type
Number Heading
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
5
4
Number Heading
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1015] Prioritization of SwDataDefProps
[constr_1024] Stepwise definition of CompuMethods
[constr_1048] Compatibility of ApplicationRecordDataTypes
[constr_1050] Compatibility of ImplementationDataTypes
Rules for the initialization of ApplicationArrayDataType by means of Array-
[constr_1273]
ValueSpecification
Rules for the initialization of array-shaped ImplementationDataType by means
[constr_1274]
of ArrayValueSpecification
Allowed Attributes vs. category for DataPrototypes typed by Implementa-
[constr_1288]
tionDataTypes
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
[constr_1400] Reference to a specific DataTransformation
[constr_1444] Limited applicability of Wrapped Union Data Type
[constr_1519] Existence of attributes vs. category of ApplicationValueSpecification
Compatibility of ClientServerOperations triggering the same RunnableEn-
[constr_2000]
tity
Table C.55: Changed Constraints in R4.4.0
Number Heading
[constr_1032] DelegationSwConnector can only connect PortPrototypes of the same kind
[constr_1297] Applicability of serverArgumentImplPolicy set to useArrayBaseType
[constr_1443] category UNION shall not be used for ImplementationDataType
Existence of ImplementationDataTypeSubElementRef.implementation-
[constr_1515] DataTypeElement as opposed to ImplementationDataTypeSubElementRef.
parameterImplementationDataTypeElement
Table C.56: Deleted Constraints in R4.4.0
Number Heading
Initialization of a DataPrototype associated with a CompuMethod of cat-
[TPS_SWCT_01792]
egory BITFIELD_TEXTTABLE
Initialization of a variable-size array typed by an Implementation-
[TPS_SWCT_01793]
DataType
Initialization of a variable-size array typed by an ApplicationArray-
[TPS_SWCT_01794]
DataType
Further specification to facilitate the association of writing strategies to the
[TPS_SWCT_01795]
corresponding RunnableEntity
Prioritization of SwDataDefProps.dataConstr for a DataPrototype of
[TPS_SWCT_01796]
category ARRAY
Prioritization of SwDataDefProps.displayFormat for a DataPrototype
[TPS_SWCT_01797]
of category ARRAY
Prioritization of SwDataDefProps.stepSize for a DataPrototype of
[TPS_SWCT_01798]
category ARRAY
[TPS_SWCT_01799] Mapping of bitfields between NvBlockDescriptor and PortPrototype
[TPS_SWCT_01801] Support for Meta-Data
[TPS_SWCT_01802] Definition of meta-data in the context of a SenderReceiverInterface
[TPS_SWCT_01803] MetaDataItems define the same value of attribute length
Standardized values of attribute MetaDataItem.metaDataItemType.
[TPS_SWCT_01804]
value
Semantics of the aggregation NvBlockSwComponentType.bulkNv-
[TPS_SWCT_01805]
DataDescriptor
Simultaneous aggregation of NvBlockSwComponentType.bulkNv-
[TPS_SWCT_01806] DataDescriptor and NvBlockSwComponentType.nvBlockDescrip-
tor
[TPS_SWCT_01807] Application of NvBlockDataMapping on BulkNvDataDescriptor
[TPS_SWCT_03500] Status forwarding to data transformer
[TPS_SWCT_03501] Applicability of status forwarding to data transformer
Table C.57: Added Traceables in R19-11
Number Heading
[TPS_SWCT_01029] AtomicSwComponentType implements a Diagnostic Monitor
[TPS_SWCT_01030] RunnableEntity
[TPS_SWCT_01132] AtomicSwComponentType provides information about operating cycles
[TPS_SWCT_01148] NvBlockDataMapping
[TPS_SWCT_01182] Conceptual levels for the definition of initial values
initValue defines an initial value that shall be taken if the corresponding
[TPS_SWCT_01220]
dataElement has not yet been received
[TPS_SWCT_01243] Definition of enumeration types
[TPS_SWCT_01309] signature of a RunnableEntity depends on the connected RTEEvent
[TPS_SWCT_01310] Categories of RunnableEntitys
AtomicSwComponentType offers PortPrototypes typed by Sender-
[TPS_SWCT_01654]
ReceiverInterfaces to adjust the IO signal via diagnostic services
Suffix used for the resulting name of the PortInterface for DataSer-
[TPS_SWCT_01656]
vices, IOControlRequest, and IOControlResponse
AtomicSwComponentType implements a Diagnostic Monitor that provides
[TPS_SWCT_01789]
monitor data, debouncing by Dem
AtomicSwComponentType implements a Diagnostic Monitor that provides
[TPS_SWCT_01790]
monitor data, debouncing by software-component
Table C.58: Changed Traceables in R19-11
Number Heading
[TPS_SWCT_01344] Consistency of values of timeout
[TPS_SWCT_01429] [constr_1135] only applies for BITFIELD_TEXTTABLE
[TPS_SWCT_01752] Initialization of a variable-size array
Table C.59: Deleted Traceables in R19-11
Number Heading
Existence of attribute RoleBasedDataAssignment.usedDataElement.local-
[constr_1679] Variable for RoleBasedDataAssignment.role = signalBasedDiagnos-
tics
5
4
Number Heading
Existence of attribute RoleBasedDataAssignment.usedDataElement.local-
[constr_1680] Variable for RoleBasedDataAssignment.role = AppModeRequestInter-
face
Existence of attribute RoleBasedDataAssignment.usedDataElement.local-
[constr_1681]
Variable for RoleBasedDataAssignment.role = VerificationStatus
Existence of attribute RoleBasedDataAssignment.usedDataElement.local-
[constr_1682]
Variable for RoleBasedDataAssignment.role = V2xFacVdp
Existence of attribute RoleBasedDataAssignment.usedDataEle-
[constr_1683] ment.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationCam
Existence of attribute RoleBasedDataAssignment.usedDataEle-
[constr_1684] ment.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationMapem
Existence of attribute RoleBasedDataAssignment.usedDataEle-
[constr_1685] ment.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationIvim
Existence of attribute RoleBasedDataAssignment.usedDataEle-
[constr_1686] ment.localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationSpatem
[constr_1694] Allowed target of SwDataDefProps.implementationDataType
[constr_1706] Definition of initial value for data transmission
[constr_1712] Existence of attribute ArrayValueSpecification.intendedPartialIni-
tializationCount
NvBlockDescriptor.writingStrategyRole.usedDataElement shall refer to
[constr_1713]
AutosarDataPrototype
AutosarDataPrototype shall only be referenced by a single NvBlockDescrip-
[constr_1714]
tor.writingStrategyRole
[constr_1715] Possible values of attribute NvBlockDescriptor.writingStrategyRole.role
Number Heading
[constr_1051] Compatibility of SwDataDefProps
[constr_1059] Compatibility of data types with category VALUE
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
[constr_1061] Compatibility of data types with category STRUCTURE
[constr_1063] Compatibility of data types with category BOOLEAN
Compatibility of data types with category COM_AXIS, RES_AXIS, CURVE, MAP,
[constr_1064]
CUBOID, CUBE_4, or CUBE_5
[constr_1078] Compatibility of ClientServerOperations
[constr_1137] Applicability of ParameterInterface
Rules for the initialization of ApplicationArrayDataType by means of Array-
[constr_1273]
ValueSpecification
Rules for the initialization of array-shaped ImplementationDataType by means
[constr_1274]
of ArrayValueSpecification
[constr_1607] Only Wrapped Union Data Types in PortInterface
Compatibility of ApplicationRecordDataType and Implementation-
[constr_1662]
DataType that both represent an Optional Element Structure
Compatibility of ClientServerOperations triggering the same RunnableEn-
[constr_2000]
tity
[constr_2013] Compatibility of ImplementationDataTypes for NvBlockDataMapping
Table C.61: Changed Constraints in R19-11
none
Number Heading
Dem Service Use Case: software-component checks whether an event is
[TPS_SWCT_01808]
suppressed
J1939Dcm wants to retrieve calibration verification numbers from an applica-
[TPS_SWCT_01809]
tion software-component
5
4
Number Heading
Software-component analyzes predictions about the time synchronization
[TPS_SWCT_01810]
process
[TPS_SWCT_01811] AtomicSwComponentType reads the current PNC ComM mode
Conditional relevance of attribute EndToEndTransformationCom-
[TPS_SWCT_01812]
SpecProps.disableEndToEndStateMachine
[TPS_SWCT_01813] Software-Component wants check a certificate on KeyM
[TPS_SWCT_01814] AtomicSwComponentType wants to retrieve a certificate from KeyM
AtomicSwComponentType wants to retrieve elements of a certificate from
[TPS_SWCT_01815]
KeyM
AtomicSwComponentType wants to check the existence of a certificate from
[TPS_SWCT_01816]
KeyM
[TPS_SWCT_01817] AtomicSwComponentType wants to store a (derived) key in KeyM
AtomicSwComponentType wants to store a container with encrypted keys
[TPS_SWCT_01818]
(e.g. She-keys) in KeyM
AtomicSwComponentType wants to verify if cryptographic operation was ex-
[TPS_SWCT_01819]
ecuted using a specific key
[TPS_SWCT_01820] Existence of attribute SenderComSpec.handleOutOfRange
Semantics of attribute NotAvailableValueSpecification.default-
[TPS_SWCT_01821]
Pattern
Application of attribute NotAvailableValueSpecification.default-
[TPS_SWCT_01822]
Pattern happens only during initialization
Definition of ValueSpecification for an ApplicationRecord-
[TPS_SWCT_01823]
DataType with unavailable optional elements
[TPS_SWCT_01826] Application Software Component reports security event
Suffix used for the resulting name of the PortInterface for the IdsM Ser-
[TPS_SWCT_01827]
vices
Application Software Component reports security event using Smart Sensor
[TPS_SWCT_01828]
API
Suffix used for the resulting name of the PortInterface for the IdsM Ser-
[TPS_SWCT_01829]
vices
[TPS_SWCT_01830] Application Software Component provides time stamp to IdsM
Table C.62: Added Traceables in R20-11
Number Heading
[TPS_SWCT_01004] Specific default value if serviceKind is not defined
[TPS_SWCT_01078] Configurable array size
[TPS_SWCT_01178] Specialized subclasses of ValueSpecification
[TPS_SWCT_01221] DataFilter
5
4
Number Heading
[TPS_SWCT_01495] Standardized value of RuleBasedValueSpecification.rule
Definition of an “old-world” dynamic-size array data type by means of an
[TPS_SWCT_01642]
ImplementationDataType
[TPS_SWCT_01673] Application Software Component sends requests using the J1939Rm
[TPS_SWCT_01674] Application Software Component accepts requests using the J1939Rm
AtomicSwComponentType offers PortPrototypes typed by Sender-
[TPS_SWCT_02003] ReceiverInterfaces or NvDataInterfaces to read/write current values
via diagnostic services
[TPS_SWCT_02052] Definition of Rapid Prototyping Scenario is splittable
Table C.63: Changed Traceables in R20-11
Number Heading
[TPS_SWCT_01039] Purpose of variant handling
[TPS_SWCT_01510] The role of pretended networking
[TPS_SWCT_01511] Configuration option is encoded into ModeDeclaration
[TPS_SWCT_01512] Request change of Pretended Networking mode
[TPS_SWCT_01513] React on the change of Pretended Networking mode
Table C.64: Deleted Traceables in R20-11
Number Heading
[constr_1754] Aggregation of NumericalRuleBasedValueSpecification
[constr_1755] Aggregation of CompositeRuleBasedValueSpecification
[constr_1771] Existence of SwValueCont.unit
[constr_1773] Value of attribute dataSendPoint.returnValueProvision
[constr_1774] Value of attribute dataReceivePointByArgument.returnValueProvision
[constr_1775] Value of attribute serverCallPoint.returnValueProvision
[constr_1776] Value of attribute asynchronousServerCallResultPoint.returnValuePro-
vision
[constr_1777] Value of attribute externalTriggeringPoint.returnValueProvision
[constr_1778] Value of attribute modeSwitchPoint.returnValueProvision
[constr_1779] Scope of the definition of an AbstractRuleBasedValueSpecification
[constr_1783] Existence of attribute ImplementationDataTypeElement.arrayImplPolicy
5
4
Number Heading
[constr_1860] Multiplicity of DelegationSwConnector.innerPort
[constr_1861] Multiplicity of DelegationSwConnector.outerPort
[constr_1862] Multiplicity of PassThroughSwConnector.requiredOuterPort
[constr_1863] Multiplicity of PassThroughSwConnector.providedOuterPort
[constr_1864] Multiplicity of InstantiationRTEEventProps.refinedEvent
[constr_1865] Existence of InvalidationPolicy.dataElement
[constr_1866] Existence of MetaDataItem.length
[constr_1867] Existence of MetaDataItem.metaDataItemType
[constr_1868] Existence of MetaDataItemSet.dataElement
[constr_1869] Existence of attribute ArgumentDataPrototype.direction
[constr_1870] Existence of attribute ApplicationError.errorCode
[constr_1871] Existence of attribute ModeRequestTypeMap.implementationDataType
[constr_1872] Existence of attribute ModeRequestTypeMap.modeGroup
[constr_1873] Existence of DataPrototypeMapping.firstDataPrototype
[constr_1874] Existence of DataPrototypeMapping.secondDataPrototype
[constr_1875] Existence of reference ClientServerOperationMapping.firstOperation
[constr_1876] Existence of reference ClientServerOperationMapping.secondOperation
Existence of reference ModeDeclarationGroupPrototypeMapping.first-
[constr_1877]
ModeGroup
Existence of reference ModeDeclarationGroupPrototypeMapping.second-
[constr_1878]
ModeGroup
[constr_1879] Existence of reference ModeDeclarationMapping.firstMode
[constr_1880] Existence of reference ModeDeclarationMapping.secondMode
[constr_1881] Existence of reference TriggerMapping.firstTrigger
[constr_1882] Existence of reference TriggerMapping.secondTrigger
Existence of ApplicationCompositeDataTypeSubElementRef.applica-
[constr_1883]
tionCompositeElement
[constr_1884] Existence of attribute TextTableMapping.identicalMapping
[constr_1885] Existence of attribute TextTableMapping.mappingDirection
[constr_1886] Existence of attribute TextTableValuePair.firstValue
[constr_1887] Existence of attribute TextTableValuePair.secondValue
Existence of attribute DataTransformation.executeDespiteDataUnavail-
[constr_1888]
ability
[constr_1889] Existence of attribute QueuedReceiverComSpec.queueLength
[constr_1890] Existence of attribute DataFilter.dataFilterType
[constr_1891] Existence of attribute NonqueuedReceiverComSpec.initValue
[constr_1892] Existence of attribute TransmissionAcknowledgementRequest.timeout
[constr_1893] Existence of attribute ServerComSpec.queueLength
[constr_1894] Existence of attribute ModeSwitchSenderComSpec.queueLength
[constr_1895] Existence of attribute ModeSwitchSenderComSpec.modeGroup
5
4
Number Heading
[constr_1896] Existence of attribute ModeSwitchReceiverComSpec.modeGroup
[constr_1897] Existence of reference ParameterProvideComSpec.parameter
[constr_1898] Existence of reference ParameterRequireComSpec.parameter
[constr_1899] Existence of reference NvRequireComSpec.variable
[constr_1900] Existence of reference NvProvideComSpec.variable
[constr_1901] Existence of attribute EndToEndDescription.category
[constr_1902] Existence of attribute EndToEndProtection.endToEndProfile
[constr_1903] Existence of reference DataTypeMap.applicationDataType
[constr_1904] Existence of reference DataTypeMap.implementationDataType
[constr_1905] Existence of attribute SwTextProps.arraySizeSemantics
[constr_1906] Existence of attribute SwTextProps.swMaxTextSize
[constr_1907] Existence of attribute ApplicationArrayDataType.element
[constr_1908] Existence of attribute ApplicationRecordDataType.element
[constr_1909] Existence of attribute ImplementationProps.symbol
[constr_1910] Existence of attribute BaseType.baseTypeDefinition
Existence of ArVariableInImplementationDataInstanceRef.targetDat-
[constr_1911]
aPrototype
Existence of reference ArParameterInImplementationDataInstanceRef.
[constr_1912]
targetDataPrototype
[constr_1913] Existence of attribute CompuRationalCoeffs.compuDenominator
[constr_1914] Existence of attribute CompuRationalCoeffs.compuNumerator
4
Number Heading
[constr_1932] Existence of ConstantSpecificationMapping.implConstant
[constr_1933] Existence of CalibrationParameterValue.initializedParameter
[constr_1934] Existence of attribute SwcInternalBehavior.handleTerminationAn-
dRestart
[constr_1935] Existence of attribute SwcInternalBehavior.supportsMultipleInstantia-
tion
[constr_1936] Existence of attribute RunnableEntity.symbol
[constr_1937] Existence of attribute TimingEvent.period
[constr_1938] Existence of attribute RunnableEntityArgument.symbol
[constr_1939] Existence of attribute ExecutableEntityActivationReason.bitPosition
[constr_1940] Existence of attribute AsynchronousServerCallReturnsEvent.eventSource
[constr_1941] Existence of attribute DataSendCompletedEvent.eventSource
[constr_1942] Existence of attribute DataWriteCompletedEvent.eventSource
[constr_1943] Existence of attribute DataReceivedEvent.data
[constr_1944] Existence of attribute DataReceiveErrorEvent.data
[constr_1945] Existence of attribute OperationInvokedEvent.operation
[constr_1946] Existence of attribute SwcModeSwitchEvent.activation
[constr_1947] Existence of reference SwcModeSwitchEvent.mode
[constr_1948] Existence of attribute ModeSwitchedAckEvent.eventSource
[constr_1949] Existence of attribute ExternalTriggerOccurredEvent.trigger
[constr_1950] Existence of attribute InternalTriggerOccurredEvent.eventSource
[constr_1951] Existence of attribute WaitPoint.timeout
[constr_1952] Existence of reference WaitPoint.trigger
[constr_1953] Existence of attribute SwcExclusiveAreaPolicy.apiPrinciple
[constr_1954] Existence of attribute VariableAccess.accessedVariable
[constr_1955] Existence of attribute ServerCallPoint.operation
[constr_1956] Existence of attribute ServerCallPoint.timeout
[constr_1957] Existence of attribute AsynchronousServerCallResultPoint.asyn-
chronousServerCallPoint
[constr_1958] Existence of attribute ParameterAccess.accessedParameter
[constr_1959] Existence of attribute InstantiationDataDefProps.swDataDefProps
[constr_1960] Existence of attribute PortAPIOption.port
[constr_1961] Existence of attribute PortDefinedArgumentValue.value
[constr_1962] Existence of attribute PortDefinedArgumentValue.valueType
Existence of attribute CommunicationBufferLocking.supportBufferLock-
[constr_1963]
ing
[constr_1964] Existence of attribute PerInstanceMemory.type
[constr_1965] Existence of attribute PerInstanceMemory.typeDefinition
[constr_1966] Existence of attribute Implementation.swVersion
[constr_1967] Existence of attribute Implementation.vendorId
[constr_1968] Existence of attribute Implementation.codeDescriptor
5
4
Number Heading
[constr_1969] Existence of attribute SwcImplementation.behavior
[constr_1970] Existence of attribute PerInstanceMemorySize.alignment
[constr_1971] Existence of attribute PerInstanceMemorySize.perInstanceMemory
[constr_1972] Existence of attribute PerInstanceMemorySize.size
[constr_1973] Existence of attribute ModeDeclarationGroup.initialMode
[constr_1974] Existence of attribute ModeDeclarationGroup.modeDeclaration
[constr_1975] Existence of attribute ModeTransition.enteredMode
[constr_1976] Existence of attribute ModeTransition.exitedMode
[constr_1977] Existence of attribute ModeErrorBehavior.errorReactionPolicy
[constr_1978] Existence of attribute SwcModeManagerErrorEvent.modeGroup
[constr_1979] Existence of the reference SwcBswMapping.bswBehavior
[constr_1980] Existence of the reference SwcBswMapping.swcBehavior
[constr_1981] Existence of attribute NvBlockDescriptor.nvBlockNeeds
[constr_1982] Existence of attribute ModeSwitchEventTriggeredActivity.role
4
Number Heading
Number Heading
[constr_1051] Compatibility of SwDataDefProps
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
[constr_1066] Forbidden mappings to ImplementationDataType
[constr_1197] Existence of compositeNetworkRepresentation shall be comprehensive
[constr_1224] DataPrototype is typed by an ApplicationArrayDataType
Allowed Attributes vs. category for DataPrototypes typed by Application-
[constr_1289]
DataTypes
DataPrototypes used as explicitInterRunnableVariable or implicit-
[constr_1296]
InterRunnableVariable and category DATA_REFERENCE
[constr_1393] Existence of RuleBasedValueCont.unit
[constr_1397] Existence of attributes of TransformerHardErrorEvent
[constr_1422] Value of category is VOID
Restriction to explicit sending semantics for the usage of DataServices in the
[constr_1741] context of a SwcServiceDependency that aggregates DiagnosticValueNeeds
that in turn is referenced by a DiagnosticIoControlNeeds
Compatibility of ClientServerOperations triggering the same RunnableEn-
[constr_2000]
tity
SwAddrMethod referenced by RunnableEntitys, BswCalledEntitys, or
[constr_2034]
BswSchedulableEntitys
none
Number Heading
Dcm can directly access SenderReceiverInterface.dataElements or
[TPS_SWCT_01831]
NvDataInterface.nvDatas in AbstractRequiredPortPrototypes
[TPS_SWCT_01832] SecOc Use Case: Receive notification about an authentication attempt
[TPS_SWCT_01833] Semantics of ServiceDependency.diagnosticRelevance
[TPS_SWCT_01834] invalidValue is inside the scope of the compuMethod
[TPS_SWCT_01835] invalidValue is outside the scope of the compuMethod
[TPS_SWCT_01836] Attributes of CompositeRuleBasedValueSpecification
[TPS_SWCT_01837] Types for record layouts
[TPS_SWCT_01838] ValueSpecification shall fit into data type
[TPS_SWCT_01839] Size of Compound Primitive Data Type is variant
A ParameterSwComponentType references a
[TPS_SWCT_01840]
ConstantSpecificationMappingSet
A NvBlockSwComponentType references a
[TPS_SWCT_01841]
ConstantSpecificationMappingSet
[TPS_SWCT_01842] Applicability of constraints of CompuScales
[TPS_SWCT_01843] Value of PassThroughSwConnector.category
[TPS_SWCT_01844] Optional method arguments
Table C.67: Added Traceables in R21-11
Number Heading
[TPS_SWCT_01049] Two ways to use the ExclusiveAreas
[TPS_SWCT_01195] Mapping of composite element to primitive DataPrototype
Rules apply for the usage of the attribute ImplementationDataType.
[TPS_SWCT_01253]
typeEmitter
[TPS_SWCT_01314] RTEEvent
[TPS_SWCT_01551] Mapping of elements on the “source” end to elements on the “target” end
5
4
Number Heading
Dcm can directly access SenderReceiverInterface.dataElements,
[TPS_SWCT_01579] NvDataInterface.nvDatas, or ParameterInterface.parameters in
AbstractProvidedPortPrototype
Dem can directly access SenderReceiverInterface.dataElements,
[TPS_SWCT_01580] NvDataInterface.nvDatas, or ParameterInterface.parameters in
PPortPrototypes
[TPS_SWCT_01586] Writing strategies for nv data
Further specification to facilitate the association of writing strategies to the
[TPS_SWCT_01795]
corresponding RunnableEntity
[TPS_SWCT_02011] AtomicSwComponentType offers a client port to read DTR value
Table C.68: Changed Traceables in R21-11
Number Heading
[TPS_SWCT_01591] Existence of attribute DiagnosticEventNeeds.reportBehavior
Supported development approach for software-components that interact with
[TPS_SWCT_01697]
AUTOSAR services
[TPS_SWCT_01698] Attributes that are subject to development approach
Table C.69: Deleted Traceables in R21-11
Number Heading
[constr_10032] Restrictions for the usage of ServiceDependency.diagnosticRelevance
[constr_10033] Existence of MemorySection.swAddrmethod
[constr_10034] Existence of MemorySection.alignment
[constr_10040] Value of ApplicationValueSpecification.swAxisCont.category
Value of ApplicationRuleBasedValueSpecification.swAxisCont.
[constr_10041]
category
[constr_10067] Creation of AssemblySwConnector for service communication
[constr_10068] Standardized values for SectionInitializationPolicyType
Allowed multiplicities of SenderComSpec attributes for communication between
[constr_10071]
ApplicationSwComponentType and NvBlockSwComponentType
Allowed multiplicities of SenderComSpec attributes for communication between
[constr_10072]
NvBlockSwComponentType and ApplicationSwComponentType
[constr_10073] Existence of DataReceiveErrorEvent
5
4
Number Heading
Consistency of attribute NvBlockDescriptor.writingStrategy.role set to
[constr_10074]
storeOnChange
Existence of CompositeRuleBasedValueSpecification.argument vs.
[constr_10075]
compoundPrimitiveArgument
[constr_10087] Restriction for the existence of a SubElementMapping
Table C.70: Added Constraints in R21-11
Number Heading
Mapping of ApplicationDataTypes in the scope of single
[constr_1004]
AtomicSwComponentTypes
Compatibility of ImplementationDataTypes mapped to the same
[constr_1005]
ApplicationDataType
[constr_1006] applicable data categories
[constr_1007] Allowed attributes of SwDataDefProps for ApplicationDataTypes
[constr_1009] SwDataDefProps applicable to ImplementationDataTypes
[constr_1010] If nativeDeclaration does not exist
[constr_1011] category of SwBaseType
[constr_1012] Value of category is FIXED_LENGTH
[constr_1014] Supported value encodings for SwBaseType
[constr_1015] Prioritization of SwDataDefProps
Restriction of invalidValue for ImplementationDataType and
[constr_1016]
ImplementationDataTypeElement
[constr_1017] Supported combinations of swImplPolicy and swCalibrationAccess
measurementPoint shall not be referenced by a VariableAccess aggregated
[constr_1018]
by RunnableEntity in the role dataReadAccess
ParameterDataPrototype needs to be of compatible data type as referenced in
[constr_1020]
sharedAxisType
[constr_1022] Limits shall be defined for each direction of CompuMethod
[constr_1024] Stepwise definition of CompuMethods
[constr_1025] Avoid division by zero in rational formula
[constr_1026] Compatibility of Units
[constr_1029] ConstantSpecificationMapping and ConstantSpecification
[constr_1033] Communication scenarios for sender/receiver communication
[constr_1035] Recursive definition of CompositionSwComponentType
[constr_1036] Connect kinds of PortInterfaces
[constr_1037] Client shall not be connected to multiple servers
[constr_1038] Reference to ApplicationError
5
4
Number Heading
[constr_1039] Relevance of swImplPolicy
[constr_1040] Conversion of SenderReceiverInterfaces
[constr_1041] Conversion of ClientServerInterfaces
[constr_1043] PortInterface vs. ComSpec
[constr_1044] Applicability of DataFilter
[constr_1045] Supported value encodings for SwBaseType in the context of PortInterfaces
[constr_1046] Applicability of [constr_1045]
[constr_1047] Compatibility of ApplicationPrimitiveDataTypes
[constr_1048] Compatibility of ApplicationRecordDataTypes
[constr_1049] Compatibility of ApplicationArrayDataTypes
[constr_1050] Compatibility of ImplementationDataTypes
[constr_1051] Compatibility of SwDataDefProps
[constr_1052] Compatibility of Units
[constr_1053] Compatibility of PhysicalDimensions
[constr_1054] No DataConstr available at the provider
[constr_1055] ImplementationDataType has category VALUE
[constr_1056] ImplementationDataType has category TYPE_REFERENCE
[constr_1057] ImplementationDataType has category DATA_REFERENCE
[constr_1058] ImplementationDataType has category FUNCTION_REFERENCE
[constr_1059] Compatibility of data types with category VALUE
[constr_1060] Compatibility of data types with category ARRAY, VAL_BLK
[constr_1061] Compatibility of data types with category STRUCTURE
[constr_1063] Compatibility of data types with category BOOLEAN
Compatibility of data types with category COM_AXIS, RES_AXIS, CURVE, MAP,
[constr_1064]
CUBOID, CUBE_4, or CUBE_5
[constr_1066] Forbidden mappings to ImplementationDataType
Compatibility of VariableDataPrototypes or ParameterDataPrototypes
[constr_1068]
typed by primitive data types
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1069]
AssemblySwConnectors
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1070]
DelegationSwConnectors
[constr_1071] compatibility of ParameterDataPrototype and VariableDataPrototype
Compatibility of ModeSwitchInterfaces in the context of an
[constr_1072]
AssemblySwConnector
Compatibility of ModeSwitchInterfaces in the context of an
[constr_1073]
DelegationSwConnector
[constr_1074] Compatibility of ModeDeclarationGroupPrototypes
[constr_1075] Compatibility of ModeDeclarationGroups
[constr_1076] Compatibility of ArgumentDataPrototypes
5
4
Number Heading
[constr_1077] Compatibility of ApplicationErrors
[constr_1078] Compatibility of ClientServerOperations
Compatibility of ClientServerInterfaces in the context of an
[constr_1079]
AssemblySwConnector
Compatibility of ClientServerInterfaces in the context of an
[constr_1080]
DelegationSwConnector
Compatibility of TriggerInterfaces in the context of an
[constr_1081]
AssemblySwConnector
Compatibility of TriggerInterfaces in the context of an
[constr_1082]
DelegationSwConnector
[constr_1083] Compatibility of Triggers
[constr_1084] delegation of a provided outer PortPrototype
[constr_1086] SwConnector between two specific PortPrototypes
[constr_1087] AssemblySwConnector inside CompositionSwComponentType
[constr_1088] DelegationSwConnector inside CompositionSwComponentType
[constr_1092] ParameterSwComponentType
[constr_1093] Definition of textual strings
[constr_1095] Values of nDataSets vs. reliability
[constr_1096] SwcModeSwitchEvent and WaitPoint
[constr_1097] RunnableEntity that has a WaitPoint
[constr_1098] Mode switch and mode disabling
[constr_1100] Unconnected RPortPrototype typed by a DataInterface
[constr_1101] Mode-related communication
[constr_1102] ApplicationError in the scope of one SwComponentType
[constr_1103] NonqueuedReceiverComSpec and enableUpdate
[constr_1104] Trigger sink and trigger source
[constr_1105] Value of arraySize
[constr_1106] Structure shall have at least one element
[constr_1107] Union shall have at least one element
[constr_1108] Value of ApplicationError.errorCode
Mapping of SwComponentPrototypes typed by a
[constr_1109]
SensorActuatorSwComponentType
[constr_1111] Constraints of dataId in PROFILE_01
[constr_1112] Constraints of dataIdMode in PROFILE_01
[constr_1113] Existence of attributes in PROFILE_01
[constr_1114] Constraints of crcOffset in PROFILE_01
[constr_1115] Constraints of counterOffset in PROFILE_01
[constr_1116] Constraints of dataLength in PROFILE_01
[constr_1117] Constraints of maxDeltaCounterInit in PROFILE_01
[constr_1118] Existence of attributes in PROFILE_02
5
4
Number Heading
[constr_1119] Constraints of dataLength in PROFILE_02
[constr_1120] Constraints of dataId in PROFILE_02
[constr_1121] Constraints of maxDeltaCounterInit in PROFILE_02
[constr_1126] Compatibility of DataConstrs
Queue length of ClientServerOperations associated with the same
[constr_1128]
RunnableEntity
[constr_1129] swImplPolicy and NonqueuedReceiverComSpec
[constr_1130] swImplPolicy and QueuedReceiverComSpec
[constr_1131] swImplPolicy and NonqueuedSenderComSpec
[constr_1132] swImplPolicy and QueuedSenderComSpec
[constr_1134] Allowed structure of TEXTTABLE
[constr_1135] Limit of vt in BITFIELD_TEXTTABLE
[constr_1137] Applicability of ParameterInterface
[constr_1138] assignedPort and DiagEventDebounceMonitorInternal
assignedPort of DiagEventDebounceMonitorInternal shall refer to an
[constr_1139]
RPortPrototype
[constr_1140] Combination of invalidValue with the attribute handleInvalid
[constr_1141] Applicability of the scope attribute
[constr_1142] category of CompuMethod shall not be extended
SensorActuatorSwComponentType, EcuAbstractionSwComponentType,
[constr_1144]
and ComplexDeviceDriverSwComponentType may only reference a HwType
[constr_1146] Applicability of a symbol for a CompuScale in C code
[constr_1147] Standardized values for the attribute category of meta-class PortGroup
PortInterfaces of PortPrototypes used to connect to
[constr_1148]
NvBlockSwComponentTypes
[constr_1149] PortPrototypes used for NV data management
[constr_1150] Usage of valueType for PortDefinedArgumentValue
[constr_1151] Applicability of PortInterfaceMapping
[constr_1153] Applicability of compatibility requirements for CompuScales
4
Number Heading
[constr_1165] Applicability of RunnableEntityArgument
[constr_1166] Restrictions of ModeRequestTypeMap
ImplementationDataTypes used as ModeRequestTypeMap.
[constr_1167]
implementationDataType
[constr_1168] Compatibility of ImplementationDataTypes used in the ModeRequestTypeMap
[constr_1169] Allowed values for Trigger.swImplPolicy
Allowed values of SwCalibrationAccessEnum for
[constr_1172]
ModeDeclarationGroupPrototype
[constr_1173] Applicability of AutosarParameterRef referencing a VariableDataPrototype
PortInterfaces used in the context of CompositionSwComponentTypes
[constr_1174]
cannot refer to AUTOSAR services
[constr_1175] Depending on its category, CompuMethod shall refer to a unit
[constr_1176] Compatibility of CompuScales of category LINEAR and RAT_FUNC
[constr_1177] Allowed targetCategory for SwPointerTargetProps
Existence of attributes of SwDataDefProps in the context of
[constr_1178]
ImplementationDataType
Numerical values used in ModeDeclaration.value and
[constr_1181]
ModeDeclarationGroup.onTransitionValue
[constr_1182] Allowed values for InternalTriggeringPoint.swImplPolicy
EndToEndProtectionVariablePrototypes aggregated by
[constr_1183]
EndToEndProtection
Consistency of rootDataPrototype and base in the context of
[constr_1184]
ApplicationCompositeElementInPortInterfaceInstanceRef
Consistency of data types in the context of
[constr_1185]
ApplicationCompositeElementInPortInterfaceInstanceRef
Consistency of data types in the context of
[constr_1186]
ArVariableInImplementationDataInstanceRef
Compatibility of VariableDataPrototypes or ParameterDataPrototypes
[constr_1187]
typed by composite data types
[constr_1188] Existence of ReceiverComSpec.replaceWith
[constr_1191] Value of Limit shall yield a numerical value
[constr_1192] Compatibility of “IDENTICAL” to “RAT_FUNC” or “LINEAR”
4
Number Heading
Supported connections by DelegationSwConnector for PortPrototypes
[constr_1203]
typed by a SenderReceiverInterface or NvDataInterface
Supported connections by AssemblySwConnector for PortPrototypes typed
[constr_1204] by a ClientServerInterface, ModeSwitchInterface, or
TriggerInterface
Supported connections by DelegationSwConnector for PortPrototypes
[constr_1205] typed by a ClientServerInterface, ModeSwitchInterface, or
TriggerInterface
Mapping of ModeDeclarations of mode user to ModeDeclaration of mode
[constr_1209]
manager
Mapping of ModeDeclarations of mode user to all ModeDeclarations of mode
[constr_1210]
manager
[constr_1211] Constraints of maxNoNewOrRepeatedData in PROFILE_01
[constr_1212] Constraints of syncCounterInit in PROFILE_01
[constr_1213] Constraints of maxNoNewOrRepeatedData in PROFILE_02
[constr_1214] Constraints of syncCounterInit in PROFILE_02
[constr_1219] Invalidation depends on the value of swImplPolicy
[constr_1220] Compatibility of SwBaseType
[constr_1221] DataPrototype is typed by an ApplicationPrimitiveDataType
4
Number Heading
[constr_1241] Compound Primitive Data Types and invalidValue
Restriction of invalidValue for ApplicationPrimitiveDataType of
[constr_1242]
category STRING
[constr_1243] NumericalOrText shall either define vf or vt
[constr_1244] DataPrototypes used in application software shall not be typed by C enums
Consideration of ModeTransitions for the compatibility of
[constr_1245]
ModeDeclarationGroups
Consistency of firstMode and secondMode in the scope of one
[constr_1246]
ModeDeclarationMappingSet
Consistency of ModeDeclarationMappingSet with respect to the referenced
[constr_1247]
firstModeGroup and secondModeGroup
Compatibility of PortPrototypes of different DataInterfaces in the context of
[constr_1248]
a PassThroughSwConnector
Compatibility of ModeSwitchInterfaces in the context of a
[constr_1249]
PassThroughSwConnector
Compatibility of ClientServerInterfaces in the context of a
[constr_1250]
PassThroughSwConnector
Compatibility of PortPrototypes of TriggerInterfaces in the context of a
[constr_1251]
PassThroughSwConnector
[constr_1252] Creation of a loop involving a PassThroughSwConnector is not allowed
[constr_1253] Supported usage of VariationPointProxy
[constr_1254] Definition of a pointer to a pointer
[constr_1255] ApplicationPrimitiveDataTypes of category BOOLEAN and STRING
[constr_1256] Acknowledgement feedback in n:1 writer case
[constr_1257] No WaitPoints allowed
[constr_1258] Value of minimumStartInterval for RunnableEntitys triggered by an
InitEvent
Aggregation of AsynchronousServerCallPoint and
[constr_1259]
AsynchronousServerCallResultPoint
[constr_1260] No mode disabling for InitEvents
[constr_1261] Applicability for EndToEndDescription.dataIdNibbleOffset
[constr_1263] Existence of ModeErrorBehavior.defaultMode
[constr_1264] Iteration along output axis is only supported for VALUE and VAL_BLK
ArgumentDataPrototype.direction shall be preserved in a
[constr_1268]
ClientServerOperationMapping
Number of arguments shall be preserved in a
[constr_1269]
ClientServerOperationMapping
ArgumentDataPrototype shall be mapped only once in a
[constr_1270]
ClientServerOperationMapping
RecordValueSpecification.fields shall be identical to the number of
[constr_1271]
ApplicationRecordDataType.elements
RecordValueSpecification.fields shall be identical to the number of
[constr_1272]
subElements of ImplementationDataType of category STRUCTURE
5
4
Number Heading
Rules for the initialization of ApplicationArrayDataType by means of
[constr_1273]
ArrayValueSpecification
Rules for the initialization of array-shaped ImplementationDataType with a
[constr_1274]
fixed size by means of ArrayValueSpecification
SwDataDefProps.swImplPolicy of a VariableDataPrototype referenced
[constr_1277]
by a VariableAccess aggregated in the role dataReceivePointByValue
[constr_1278] PhysConstrs references a Unit
Unmapped elements of ApplicationCompositeDataTypes or
[constr_1279]
ImplementationDataTypes and the attribute swImplPolicy
[constr_1280] Unmapped dataElement on the “target” end shall have an initValue
Restriction concerning the usage of RuleBasedValueSpecification or a
[constr_1282]
ReferenceValueSpecification for the specification of an invalidValue
[constr_1284] Limitation of the use of TextValueSpecification
[constr_1285] Applicability of roles vs. PortPrototypes
serverArgumentImplPolicy and ArgumentDataPrototype typed by
[constr_1286]
primitive data types
Compatibility of SenderReceiverInterfaces with respect to
[constr_1287]
invalidationPolicy
Allowed Attributes vs. category for DataPrototypes typed by
[constr_1288]
ImplementationDataTypes
Allowed Attributes vs. category for DataPrototypes typed by
[constr_1289]
ApplicationDataTypes
Limitation on the number of PPortComSpecs in the context of one
[constr_1290]
PPortPrototype
Limitation on the number of RPortComSpecs in the context of one
[constr_1291]
PPortPrototype
Limitation on the number of RPortComSpecs/PPortComSpecs in the context of
[constr_1292]
one PRPortPrototype
[constr_1295] PortInterfaces and category DATA_REFERENCE
DataPrototypes used as explicitInterRunnableVariable or
[constr_1296]
implicitInterRunnableVariable and category DATA_REFERENCE
Existence of attributes if category of a ModeDeclarationGroup is set to
[constr_1298]
EXPLICIT_ORDER
Existence of attributes if category of a ModeDeclarationGroup is set to other
[constr_1299]
than EXPLICIT_ORDER
Primitive DataPrototype on the “source” end shall not be mapped to element of a
[constr_1300]
composite data type on the “target” end of the SwConnector
Existence of RoleBasedDataTypeAssignment.role vs.
[constr_1301]
RoleBasedDataAssignment.role
[constr_1302] Restriction of data invalidation
Applicability of TextTableMapping depending on the value of CompuMethod.
[constr_1303]
category
[constr_1304] Existence of attribute bitfieldTextTableMaskFirst
5
4
Number Heading
[constr_1305] Existence of attribute bitfieldTextTableMaskSecond
Limitation of TextTableMapping for CompuMethods that have the value of
[constr_1306]
category set to BITFIELD_TEXTTABLE
[constr_1307] Consistency of values and masks in TextTableMapping
[constr_1308] Existence of NvBlockNeeds.cyclicWritingPeriod
[constr_1309] Existence of NvBlockDescriptor.timingEvent
[constr_1310] Existence of attributes of meta-class NvBlockNeeds
Appearance of safety-related possible values of MemorySection.option or
[constr_1311]
SwAddrMethod.option
[constr_1312] PortPrototypes typed by a ParameterInterface
[constr_1313] Completeness of TextTableMapping for the values of a given bit mask on the
sender side
[constr_1314] Profile VSA_LINEAR for ApplicationArrayDataType
[constr_1315] Profile VSA_SQUARE for ApplicationArrayDataType
[constr_1316] Profile VSA_RECTANGULAR for ApplicationArrayDataType
[constr_1317] Profile VSA_FULLY_FLEXIBLE for ApplicationArrayDataType
[constr_1318] Profile VSA_LINEAR for ImplementationDataType
[constr_1319] Profile VSA_SQUARE for ImplementationDataType
[constr_1320] Profile VSA_RECTANGULAR for ImplementationDataType
[constr_1321] Profile VSA_FULLY_FLEXIBLE for ImplementationDataType
[constr_1322] Size Indicator for undefined dynamicArraySizeProfile
[constr_1363] Existence of attributes of DiagnosticValueNeeds
[constr_1364] Existence of attributes of DiagnosticIoControlNeeds
[constr_1375] Existence of attributes of CompuMethod and related meta-classes
Appearance of core-related possible values of MemorySection.option or
[constr_1381]
SwAddrMethod.option
Mutually exclusive existence of attributes SwVariableRefProxy.
[constr_1382]
autosarVariable vs. SwVariableRefProxy.mcDataInstanceVar
Existence of CompuMethod and DataConstr for ImplementationDataTypes
[constr_1383]
of category TYPE_REFERENCE
Definition of invalidValue for DataPrototype typed by
[constr_1384] ApplicationPrimitiveDataType of category CURVE, MAP, CUBOID,
CUBE_4, CUBE_5, COM_AXIS, RES_AXIS, and VAL_BLK
[constr_1385] DataPrototype is typed by an ImplementationDataType
PortDefinedArgumentValue shall only be defined for
[constr_1386]
AbstractProvidedPortPrototype
VariationPointProxy of category VALUE shall not mix “pre-build” and
[constr_1388]
“post-build” use-cases
Restriction regarding the value of category of VariationPointProxy.
[constr_1389]
implementationDataType
4
Number Heading
Compatibility of Units in the context of assignment using an
[constr_1391]
ApplicationValueSpecification
Compatibility of Units in the context of assignment using an
[constr_1392]
ApplicationRuleBasedValueSpecification
[constr_1393] Existence of RuleBasedValueCont.unit
[constr_1395] NvBlockDataMapping shall be complete
Restriction for the value of attribute category for non-terminating
[constr_1396] ImplementationDataTypeElements taken to model a Variable-Size
Array Data Type
[constr_1397] Existence of attributes of TransformerHardErrorEvent
[constr_1398] Existence of attributes of BaseTypeDirectDefinition
[constr_1399] Standardized values of ModeDeclarationGroup.category
[constr_1400] Reference to a specific DataTransformation
Restrictions on the relation between DataPrototypeMapping and
[constr_1401]
DataTransformation
Applicability of core-related possible values of MemorySection.option or
[constr_1402] SwAddrMethod.option related to SwAddrMethod.
sectionInitializationPolicy
[constr_1403] NvBlockDataMappings to a given nvData shall be unambiguous
All NvDataInterface.nvData of PortPrototypes in the context of a specific
[constr_1404]
SwcServiceDependency shall be mapped to the same NvBlockDescriptor
Definition of SwDataDefProps.dataConstr depending on the capabilities of the
[constr_1407]
data type
Definition of SwDataDefProps.displayFormat depending on the capabilities of
[constr_1408]
the data type
Definition of SwDataDefProps.dataConstr depending on the capabilities of the
[constr_1409]
element data type
Definition of SwDataDefProps.displayFormat depending on the capabilities of
[constr_1410]
the element data type
Definition of SwDataDefProps.stepSize depending on the capabilities of the
[constr_1413]
data type
Definition of SwDataDefProps.stepSize depending on the capabilities of the
[constr_1414]
element data type
[constr_1415] Supported values of ModeSwitchEventTriggeredActivity.role
[constr_1416] Existence of ApplicationArrayElement.maxNumberOfElements
Invalid connection between NvBlockSwComponentType and other
[constr_1417]
AtomicSwComponentType (I)
Invalid connection between NvBlockSwComponentType and other
[constr_1418]
AtomicSwComponentType (II)
[constr_1420] Existence of SwAxisIndividual.inputVariableType
[constr_1422] Value of category is VOID
Completeness of references
[constr_1423]
ArVariableInImplementationDataInstanceRef.contextDataPrototype
5
4
Number Heading
Existence of ArVariableInImplementationDataInstanceRef.
[constr_1424]
contextDataPrototype
Definition of swCalprmAxisSet.swCalprmAxis / SwAxisIndividual.
[constr_1425]
swVariableRef depending on the capabilities of the data type
[constr_1426] Consistency of array sizes for axes and input variable array
Definition of swCalprmAxisSet.swCalprmAxis / SwAxisGrouped.
[constr_1427]
swCalprmRef depending on the capabilities of the data type
Consistency of array sizes for arrays of elements of category CURVE, MAP,
[constr_1428]
CUBOID, CUBE_4, or CUBE_5 arrays and used group axes arrays
[constr_1429] Access to data within PortPrototypes from within RunnableEntitys
[constr_1430] Access to local data from within RunnableEntitys
[constr_1431] Access to parameters from within RunnableEntitys
[constr_1432] Multiplicity of CommunicationBufferLocking
[constr_1433] Transient faults are not applicable to software-components
[constr_1434] CompuScales shall not have identical CompuScale Value Symbolic Names
ApplicationArrayElement.indexDataType needs to refer to a
[constr_1438]
CompuMethod of category TEXTTABLE
4
Number Heading
[constr_1540] Existence of ClientComSpec.operation
[constr_1541] Existence of ServerComSpec.operation
[constr_1544] Modeling of SwAxisGeneric for the definition of a fix axis
[constr_1545] No initialization for fix axis
PortInterfaceMapping for DataPrototype typed by Compound Primitive
[constr_1583]
Data Type
Definition of SwDataDefProps.displayPresentation depending on the
[constr_1592]
capabilities of the data type
Definition of SwDataDefProps.displayPresentation depending on the
[constr_1602]
capabilities of the element
[constr_1607] Only Wrapped Union Data Types in PortInterface
[constr_1608] Existence of rootParameterDataPrototype
[constr_1609] Existence of rootVariableDataPrototype
[constr_1640] No use of Optional Element Structure for interaction with the diagnostic
stack
Compatibility of ApplicationRecordDataType and
[constr_1662] ImplementationDataType that both represent an Optional Element
Structure
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1679] localVariable for RoleBasedDataAssignment.role =
signalBasedDiagnostics
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1680] localVariable for RoleBasedDataAssignment.role =
AppModeRequestInterface
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1681] localVariable for RoleBasedDataAssignment.role =
VerificationStatus
5
4
Number Heading
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1682]
localVariable for RoleBasedDataAssignment.role = V2xFacVdp
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1683] localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationCam
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1684] localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationMapem
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1685] localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationIvim
Existence of attribute RoleBasedDataAssignment.usedDataElement.
[constr_1686] localVariable for RoleBasedDataAssignment.role =
V2xApplRxIndicationSpatem
[constr_1694] Allowed target of SwDataDefProps.implementationDataType
[constr_1706] Definition of initial value for data transmission
[constr_1712] Existence of attribute ArrayValueSpecification.
intendedPartialInitializationCount
NvBlockDescriptor.writingStrategy.usedDataElement shall refer to
[constr_1713]
AutosarDataPrototype
AutosarDataPrototype shall only be referenced by a single
[constr_1714]
NvBlockDescriptor.writingStrategy
[constr_1715] Possible values of attribute NvBlockDescriptor.writingStrategy.role
4
Number Heading
[constr_1774] Value of attribute dataReceivePointByArgument.returnValueProvision
[constr_1775] Value of attribute serverCallPoint.returnValueProvision
[constr_1776] Value of attribute asynchronousServerCallResultPoint.
returnValueProvision
[constr_1777] Value of attribute externalTriggeringPoint.returnValueProvision
[constr_1778] Value of attribute modeSwitchPoint.returnValueProvision
[constr_1779] Scope of the definition of an AbstractRuleBasedValueSpecification
[constr_1783] Existence of attribute ImplementationDataTypeElement.arrayImplPolicy
[constr_1860] Multiplicity of DelegationSwConnector.innerPort
[constr_1861] Multiplicity of DelegationSwConnector.outerPort
[constr_1862] Multiplicity of PassThroughSwConnector.requiredOuterPort
[constr_1863] Multiplicity of PassThroughSwConnector.providedOuterPort
[constr_1864] Multiplicity of InstantiationRTEEventProps.refinedEvent
[constr_1865] Existence of InvalidationPolicy.dataElement
[constr_1866] Existence of MetaDataItem.length
[constr_1867] Existence of MetaDataItem.metaDataItemType
[constr_1868] Existence of MetaDataItemSet.dataElement
[constr_1869] Existence of attribute ArgumentDataPrototype.direction
[constr_1870] Existence of attribute ApplicationError.errorCode
[constr_1871] Existence of attribute ModeRequestTypeMap.implementationDataType
[constr_1872] Existence of attribute ModeRequestTypeMap.modeGroup
Existence of attribute DataTransformation.
[constr_1888]
executeDespiteDataUnavailability
[constr_1889] Existence of attribute QueuedReceiverComSpec.queueLength
[constr_1891] Existence of attribute NonqueuedReceiverComSpec.initValue
[constr_1892] Existence of attribute TransmissionAcknowledgementRequest.timeout
[constr_1895] Existence of attribute ModeSwitchSenderComSpec.modeGroup
[constr_1896] Existence of attribute ModeSwitchReceiverComSpec.modeGroup
[constr_1897] Existence of reference ParameterProvideComSpec.parameter
[constr_1898] Existence of reference ParameterRequireComSpec.parameter
[constr_1899] Existence of reference NvRequireComSpec.variable
[constr_1900] Existence of reference NvProvideComSpec.variable
[constr_1901] Existence of attribute EndToEndDescription.category
[constr_1902] Existence of attribute EndToEndProtection.endToEndProfile
[constr_1903] Existence of reference DataTypeMap.applicationDataType
[constr_1904] Existence of reference DataTypeMap.implementationDataType
[constr_1905] Existence of attribute SwTextProps.arraySizeSemantics
[constr_1906] Existence of attribute SwTextProps.swMaxTextSize
[constr_1909] Existence of attribute ImplementationProps.symbol
[constr_1910] Existence of attribute BaseType.baseTypeDefinition
5
4
Number Heading
Existence of ArVariableInImplementationDataInstanceRef.
[constr_1911]
targetDataPrototype
Existence of reference ArParameterInImplementationDataInstanceRef.
[constr_1912]
targetDataPrototype
[constr_1913] Existence of attribute CompuRationalCoeffs.compuDenominator
[constr_1914] Existence of attribute CompuRationalCoeffs.compuNumerator
Existence of attribute PhysicalDimensionMapping.
[constr_1915]
firstPhysicalDimension
Existence of attribute PhysicalDimensionMapping.
[constr_1916]
secondPhysicalDimension
[constr_1917] Existence of ConstantSpecification.valueSpec
[constr_1918] Existence of RecordValueSpecification.field
[constr_1919] Existence of TextValueSpecification.value
[constr_1920] Existence of NumericalValueSpecification.value
[constr_1921] Existence of ReferenceValueSpecification.referenceValue
[constr_1923] Existence of RuleBasedAxisCont.ruleBasedValues
[constr_1924] Existence of RuleBasedValueCont.ruleBasedValues
[constr_1925] Existence of NumericalRuleBasedValueSpecification.ruleBasedValues
[constr_1926] Existence of RuleBasedValueSpecification.rule
[constr_1927] Existence of RuleBasedValueSpecification.arguments
[constr_1928] Existence of CompositeRuleBasedValueSpecification.rule
[constr_1929] Existence of CompositeRuleBasedValueSpecification.argument
[constr_1930] Existence of ConstantReference.constant
[constr_1931] Existence of ConstantSpecificationMapping.applConstant
[constr_1932] Existence of ConstantSpecificationMapping.implConstant
[constr_1933] Existence of CalibrationParameterValue.initializedParameter
Existence of attribute SwcInternalBehavior.
[constr_1935]
supportsMultipleInstantiation
[constr_1936] Existence of attribute RunnableEntity.symbol
[constr_1938] Existence of attribute RunnableEntityArgument.symbol
[constr_1939] Existence of attribute ExecutableEntityActivationReason.bitPosition
[constr_1940] Existence of attribute AsynchronousServerCallReturnsEvent.eventSource
[constr_1941] Existence of attribute DataSendCompletedEvent.eventSource
[constr_1942] Existence of attribute DataWriteCompletedEvent.eventSource
[constr_1943] Existence of attribute DataReceivedEvent.data
[constr_1944] Existence of attribute DataReceiveErrorEvent.data
[constr_1945] Existence of attribute OperationInvokedEvent.operation
[constr_1952] Existence of reference WaitPoint.trigger
[constr_1954] Existence of attribute VariableAccess.accessedVariable
[constr_1955] Existence of attribute ServerCallPoint.operation
[constr_1956] Existence of attribute ServerCallPoint.timeout
5
4
Number Heading
Existence of attribute AsynchronousServerCallResultPoint.
[constr_1957]
asynchronousServerCallPoint
[constr_1958] Existence of attribute ParameterAccess.accessedParameter
[constr_1959] Existence of attribute InstantiationDataDefProps.swDataDefProps
[constr_1960] Existence of attribute PortAPIOption.port
[constr_1964] Existence of attribute PerInstanceMemory.type
[constr_1965] Existence of attribute PerInstanceMemory.typeDefinition
[constr_1973] Existence of attribute ModeDeclarationGroup.initialMode
[constr_1974] Existence of attribute ModeDeclarationGroup.modeDeclaration
Compatibility of ClientServerOperations triggering the same
[constr_2000]
RunnableEntity
4
Number Heading
[constr_2027] SwcServiceDependency shall be defined for service ports only
[constr_2028] staticMemory is restricted to single instantiation
AsynchronousServerCallResultPoint combined with WaitPoint shall
[constr_2030]
belong to the same RunnableEntity
[constr_2031] Period of TimingEvent shall be greater than 0
[constr_2033] Timeout of DataSendCompletedEvent
SwAddrMethod referenced by RunnableEntitys, BswCalledEntitys, or
[constr_2034]
BswSchedulableEntitys
[constr_2035] swImplPolicy for VariableDataPrototype in SenderReceiverInterface
[constr_2036] swImplPolicy for VariableDataPrototype in NvDataInterface
[constr_2037] swImplPolicy for VariableDataPrototype in the role ramBlock
swImplPolicy for VariableDataPrototype in the role
[constr_2038]
implicitInterRunnableVariable
swImplPolicy for VariableDataPrototype in the role
[constr_2039]
explicitInterRunnableVariable
swImplPolicy for VariableDataPrototype in the role
[constr_2040]
arTypedPerInstanceMemory
[constr_2041] swImplPolicy for VariableDataPrototype in the role staticMemory
[constr_2042] swImplPolicy for ParameterDataPrototype in ParameterInterface
[constr_2043] swImplPolicy for ParameterDataPrototype in the role romBlock
[constr_2044] swImplPolicy for ParameterDataPrototype in the role sharedParameter
swImplPolicy for ParameterDataPrototype in the role
[constr_2045]
perInstanceParameter
[constr_2046] swImplPolicy for ParameterDataPrototype in the role constantMemory
[constr_2047] swImplPolicy for ArgumentDataPrototype
[constr_2048] swImplPolicy for SwServiceArg
[constr_2049] Different ModeDeclarationGroups shall have different shortNames.
[constr_2050] Mandatory information of a SwAxisCont
[constr_2051] Mandatory information of a SwValueCont
4
Number Heading
[constr_2536] Target of an autosarVariable in AutosarVariableRef shall refer to a variable
[constr_2544] Limits need to be consistent
[constr_2545] invalidValue shall fit in the specified ranges
[constr_2548] Data constraint of value axis shall match
[constr_2549] Units of input axis shall be consistent
[constr_2550] Units of value axis shall be consistent
[constr_2561] Application of DataConstrRule.constrLevel
[constr_4002] Unambiguous mapping of modes to data types
[constr_4003] Semantics of SwcModeSwitchEvent
[constr_4004] Context of SenderReceiverAnnotation
[constr_4005] Context of ClientServerAnnotation
[constr_4006] Context of ParameterPortAnnotation
[constr_4007] Context of ModePortAnnotation
[constr_4008] Context of TriggerPortAnnotation
[constr_4009] Context of NvDataPortAnnotation
[constr_4012] Timeout of ModeSwitchedAckEvent
[constr_4082] RunnableEntity.reentrancyLevel shall not be set.
[constr_10005] Existence of attribute NotAvailableValueSpecification.defaultPattern
Number Heading
[constr_1001] Value of dataId shall be unique
[constr_1008] Applicability of categorys STRUCTURE and ARRAY
[constr_1027] Types for record layouts
ParameterSwComponentType references
[constr_1030]
ConstantSpecificationMappingSet
NvBlockSwComponentType references
[constr_1031]
ConstantSpecificationMappingSet
5
4
Number Heading
[constr_1143] category of AutosarDataType shall not be extended
[constr_1157] Applicability of constraints of CompuScales
[constr_1160] Size of Compound Primitive Data Type is variant
[constr_1281] invalidValue is inside the scope of the compuMethod
[constr_1283] invalidValue is outside the scope of the compuMethod
[constr_4000] Local communication of mode switches
[constr_4035] ValueSpecification shall fit into data type
Table C.72: Deleted Constraints in R21-11
D Modeling of InstanceRef
D.1 Introduction
The existence of so-called InstanceRefs is a direct consequence of the usage of the
type-prototype pattern for modeling within AUTOSAR. When referencing a pro-
totype, it is also necessary to include a reference to the prototypes typed by their
corresponding types that in turn aggregate further prototypes to set up the context.
In other words, InstanceRefs are representing structured references that, on the
one hand, consist of references to context prototypes (indicated by a subsetting or
redefinition of atpContextElement) and finally a reference to the applicable target
prototype (indicated by a redefinition of atpTarget).
Note that it is not uncommon to have more than a single context in the modeling of
particular InstanceRefs.
For the reader of specifications, the modeling of InstanceRefs manifests as a UML
dependency stereotyped instanceRef drawn from one meta-class to another.
This is a simplified indication that the source of the dependency implements an In-
stanceRef to the meta-class at the target of the dependency.
Again, in most cases this is everything a reader needs to understand in order to fig-
ure out the modeling. The formal modeling of InstanceRefs is done by creating
subclasses of the abstract meta-class AtpInstanceRef.
Wherever a more detailed understanding of the modeling is advised in the context of
the specific chapter of this document, the modeling of a specific subclass of AtpIn-
stanceRef is explained directly in the context of the corresponding chapter.
In all other cases, a deeper understanding of the modeling of particular subclasses of
AtpInstanceRefs can be obtained from reading this chapter.
Class tables included in this chapter are not fully filled out in the sense that most of the
notes inside the class tables are missing. The primary purpose of these class tables
is to provide information about the intended order in which InstanceRefs are
serialized in M1 AUTOSAR models.
In particular, the information about the order in serialized M1 models can be obtained
from the value of the tag xml.sequenceOffset of each attribute of an InstanceRef
meta-class.
For more information about the general concept of modeling AtpInstanceRef (e.g.
the conceptual background of redefining or subsetting an association from a subclass
of AtpInstanceRef to other meta-classes) please refer to [11].
D.2 Modeling
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
SwComponentType
«atpVariation,atpSplitable»
+port 0..*
«instance... AtpBlueprintable
AtomicSwComponentType
AtpInstanceRef AtpPrototype
PortPrototype
«atpAbstract»
0..1
+abstractTargetDataElement {redefines atpTarget}
AutosarDataPrototype
RPortPrototype PRPortPrototype PPortPrototype
VariableDataPrototype
+ mayBeUnconnected: Boolean [0..1]
+dataElement 0..*
«isOfType»
«isOfType» «isOfType»
SenderReceiverInterface
0..1 0..1
{redefines 0..1 {redefines
+requiredInterface atpType} +providedRequiredInterface {redefines atpType} +providedInterface atpType}
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
DataInterface
PortInterface
4
Class VariableInAtomicSwcInstanceRef (abstract)
contextPort PortPrototype 0..1 ref Stereotypes: atpAbstract
Tags:xml.sequenceOffset=20
Please note the example of how the redefinition of the context association works, i.e.
the association from VariableInAtomicSwcInstanceRef to PortPrototype in
the role contextPort is redefined by the subclass RVariableInAtomicSwcIn-
stanceRef by means of an association to RPortPrototype in the role contextR-
Port.
AtpInstanceRef AtpBlueprintable
+contextPort AtpPrototype
VariableInAtomicSwcInstanceRef
PortPrototype
«atpAbstract»
0..1
{subsets
atpContextElement}
RVariableInAtomicSwcInstanceRef AbstractRequiredPortPrototype
+contextRPort
0..1
+data 0..1 +data 0..1 {redefines contextPort}
«atpAbstract»
RTEEvent
+abstractTargetDataElement
abstractTargetDataElement}
RTEEvent
DataReceiveErrorEvent DataReceivedEvent
+targetDataElement
{redefines atpTarget}
{redefines
«instanceRef»
«instanceRef»
0..1
0..1
The effect of this modeling is that the general relationship to PortPrototype is al-
ready established by VariableInAtomicSwcInstanceRef on an abstract level but
actually it never makes the generated XML Schema because it is redefined by a sub-
class. In other words, the redefinition replaces the original association as far as the
generation algorithm for the XML Schema is concerned.
For clarification, the interpretation of the values of xml.sequenceOffset in this par-
ticular case is that in the generated XML Schema the contextRPort comes first, fol-
lowed by targetDataElement which concludes the definition of the InstanceRef
in the XML Schema.
0..1
{subsets
atpContextElement}
+disabledMode *
0..1
{subsets
«atpSplitable» atpContextElement} +contextModeDeclarationGroupPrototype
AtpPrototype
AbstractEvent
AtpStructureElement ModeDeclarationGroupPrototype
RTEEvent + swCalibrationAccess: SwCalibrationAccessEnum [0..1]
«instanceRef»
0..1
«isOfType»
{redefines 0..1
+disabledMode 0..* atpTarget} +targetModeDeclaration +type {redefines atpType}
AtpStructureElement ARElement
Identifiable AtpBlueprint
ModeDeclaration AtpBlueprintable
+modeDeclaration AtpType
+ value: PositiveInteger [0..1] ModeDeclarationGroup
0..* «atpVariation»
+ onTransitionValue: PositiveInteger [0..1]
+initialMode
0..1
Class RVariableInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , VariableInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextRPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetData VariableDataPrototype 0..1 ref Tags:xml.sequenceOffset=30
Element
Table D.2: RVariableInAtomicSwcInstanceRef
Class RModeInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base AtomicSwComponent 0..1 ref Stereotypes: atpDerived
Type Tags:xml.sequenceOffset=10
contextMode ModeDeclarationGroup 0..1 ref Tags:xml.sequenceOffset=30
Declaration Prototype
GroupPrototype
5
4
Class RModeInAtomicSwcInstanceRef
contextPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetMode ModeDeclaration 0..1 ref Tags:xml.sequenceOffset=40
Declaration
Table D.3: RModeInAtomicSwcInstanceRef
Class InnerPortGroupInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref Stereotypes: atpDerived
ComponentType Tags:xml.sequenceOffset=10
context SwComponent * ref Tags:xml.sequenceOffset=20
(ordered) Prototype
target PortGroup 0..1 ref Links a PortGroup in a composition to another PortGroup,
that is defined in a component which is part of this
CompositionSwComponentType. There shall be at most
one innerGroup per contained SwComponentPrototype.
Tags:xml.sequenceOffset=30
«atpVariation,atpSplitable»
+component 0..*
AtpPrototype ARElement
«isOfType» +type
SwComponentPrototype AtpBlueprint
AtpBlueprintable
0..1 AtpType
{redefines
atpType} SwComponentType
+context 0..*
{ordered,
subsets «atpVariation»
atpContextElement}
+portGroup 0..*
AtpStructureElement
+target Identifiable
PortGroup
0..1
{redefines atpTarget}
+innerGroup
0..*
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
SwComponentType
«atpVariation,atpSplitable»
+port 0..*
«instanceRef» AtpBlueprintable
AtomicSwComponentType
AtpInstanceRef AtpPrototype
PortPrototype
«atpDerived» «atpAbstract»
«atpAbstract»
0..1
{redefines
+target atpTarget}
AtpStructureElement
ExternalTriggeringPoint PPortPrototype PRPortPrototype RPortPrototype
Identifiable +trigger
Trigger «instanceRef»
0..1
+providedRequiredInterface
«isOfType»
+trigger 0..* {redefines atpType}
«isOfType» «isOfType»
0..1 0..1
{redefines {redefines
0..1
AtpInstanceRef AtpBlueprintable
+contextPort AtpPrototype
TriggerInAtomicSwcInstanceRef
«atpAbstract» PortPrototype
0..1
{subsets
atpContextElement}
+contextRPort
RTriggerInAtomicSwcInstanceRef AbstractRequiredPortPrototype
0..1
{subsets contextPort}
«atpAbstract»
+trigger
RTEEvent
0..1 ExternalTriggerOccurredEvent
0..1 0..1
{redefines
{redefines
atpTarget} +target +targetTrigger target}
AtpStructureElement
Identifiable +trigger «instanceRef»
Trigger 0..1
+ swImplPolicy: SwImplPolicyEnum [0..1]
Class RTriggerInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , TriggerInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextRPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetTrigger Trigger 0..1 ref Tags:xml.sequenceOffset=30
AtpInstanceRef AtpBlueprintable
TriggerInAtomicSwcInstanceRef +contextPort AtpPrototype
PortPrototype
«atpAbstract»
0..1
{subsets atpContextElement}
PTriggerInAtomicSwcTypeInstanceRef AbstractProvidedPortPrototype
+contextPPort
«atpAbstract» 0..1
{subsets contextPort}
Class PTriggerInAtomicSwcTypeInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , TriggerInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextPPort AbstractProvidedPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetTrigger Trigger 0..1 ref Tags:xml.sequenceOffset=30
ARElement
«instanceRef» AtomicSwComponentType AtpBlueprint
AtpInstanceRef AtpBlueprintable
AtpType
SwComponentType
+/base 0..1
{redefines atpBase}
«atpDerived» «atpVariation,atpSplitable»
+port 0..*
AtpBlueprintable
OperationInAtomicSwcInstanceRef
+contextPort AtpPrototype
PortPrototype
«atpAbstract»
0..1
{subsets atpContextElement}
«atpAbstract»
AbstractProvidedPortPrototype AbstractRequiredPortPrototype
0..1
{redefines
+targetOperation atpTarget}
AtpStructureElement
RPortPrototype PRPortPrototype PPortPrototype
Identifiable
ClientServerOperation
«isOfType» «isOfType»
+operation 0..* «isOfType»
0..1 0..1
0..1
{redefines {redefines
{redefines
atpType}
«atpVariation» +requiredInterface atpType} +providedRequiredInterface atpType} +providedInterface
ARElement
AtpBlueprint
AtpBlueprintable
ClientServerInterface AtpType
PortInterface
4
Class OperationInAtomicSwcInstanceRef (abstract)
base AtomicSwComponent 0..1 ref Stereotypes: atpDerived
Type Tags:xml.sequenceOffset=10
contextPort PortPrototype 0..1 ref Stereotypes: atpAbstract
Tags:xml.sequenceOffset=20
targetOperation ClientServerOperation 0..1 ref Stereotypes: atpAbstract
Tags:xml.sequenceOffset=30
AtpInstanceRef AtpBlueprintable
OperationInAtomicSwcInstanceRef +contextPort AtpPrototype
«atpAbstract» PortPrototype
0..1
{subsets
atpContextElement}
«atpDerived»
0..1
{redefines
+/base atpBase}
SwComponentType
ROperationInAtomicSwcInstanceRef +contextRPort AbstractRequiredPortPrototype
AtomicSwComponentType
0..1
{subsets contextPort}
+operation 0..1
«atpAbstract»
AbstractAccessPoint
AtpStructureElement
Identifiable
ServerCallPoint
«instanceRef»
0..1 0..1
{redefines {redefines
+operation 0..1 +targetRequiredOperation
+targetOperation atpTarget} targetOperation}
AtpStructureElement
Identifiable
ClientServerOperation
Class ROperationInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , OperationInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextRPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetRequired ClientServerOperation 0..1 ref Tags:xml.sequenceOffset=30
Operation
SwComponentType
AtomicSwComponentType
+/base 0..1
{redefines atpBase}
«atpDerived»
AtpInstanceRef AtpBlueprintable
OperationInAtomicSwcInstanceRef +contextPort AtpPrototype
«atpAbstract» PortPrototype
0..1
{subsets atpContextElement}
«atpAbstract»
RTEEvent
POperationInAtomicSwcInstanceRef AbstractProvidedPortPrototype
OperationInvokedEvent +operation +contextPPort
0..1 0..1
{subsets contextPort}
AtpStructureElement
Identifiable
ClientServerOperation
Class POperationInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , OperationInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextPPort AbstractProvidedPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetProvided ClientServerOperation 0..1 ref Tags:xml.sequenceOffset=30
Operation
Class RModeGroupInAtomicSWCInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , ModeGroupInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextRPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetMode ModeDeclarationGroup 0..1 ref Tags:xml.sequenceOffset=30
Group Prototype
AtpBlueprintable
AtpInstanceRef
+contextPort AtpPrototype
ModeGroupInAtomicSwcInstanceRef
PortPrototype
«atpAbstract» 0..1
{subsets atpContextElement}
RModeGroupInAtomicSWCInstanceRef AbstractRequiredPortPrototype
+contextRPort
«atpAbstract» 0..1
{redefines contextPort}
0..1 0..1
{redefines {redefines
+target atpTarget} +targetModeGroup target}
AtpPrototype
ModeDeclarationGroupPrototype
AtpBlueprintable
AtpInstanceRef
+contextPort AtpPrototype
ModeGroupInAtomicSwcInstanceRef
PortPrototype
«atpAbstract»
0..1
{subsets
atpContextElement}
PModeGroupInAtomicSwcInstanceRef AbstractProvidedPortPrototype
+contextPPort
«atpAbstract» 0..1
{redefines
contextPort}
+modeGroup 0..1
0..1 0..1
{redefines {redefines
+target atpTarget} +targetModeGroup target}
AtpPrototype AbstractAccessPoint
ModeDeclarationGroupPrototype +modeGroup AtpStructureElement
Identifiable
+ swCalibrationAccess: SwCalibrationAccessEnum [0..1] 0..1 «instanceRef» ModeSwitchPoint
Class PModeGroupInAtomicSwcInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Components::InstanceRefs
Note
Base ARObject, AtpInstanceRef , ModeGroupInAtomicSwcInstanceRef
Attribute Type Mult. Kind Note
contextPPort AbstractProvidedPort 0..1 ref Tags:xml.sequenceOffset=20
Prototype
targetMode ModeDeclarationGroup 0..1 ref Tags:xml.sequenceOffset=30
Group Prototype
«instanceRef»
AtpInstanceRef
ComponentInCompositionInstanceRef
0..*
«atpDerived»
0..1 {ordered, 0..1
{redefines subsets {redefines
+targetComponent atpTarget} +contextComponent atpContextElement} +base atpBase}
AtpPrototype
+component CompositionSwComponentType
SwComponentPrototype
0..* «atpVariation,atpSplitable»
«isOfType»
0..1
+type {redefines atpType}
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
SwComponentType
Class ComponentInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition::InstanceRefs
Note The ComponentInCompositionInstanceRef points to a concrete SwComponentPrototype within a
CompositionSwComponentType.
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref Stereotypes: atpDerived
ComponentType Tags:xml.sequenceOffset=10
context SwComponent * ref The context for the scope of this timing event.
Component Prototype
Tags:xml.sequenceOffset=20
(ordered)
target SwComponent 0..1 ref Tags:xml.sequenceOffset=30
Component Prototype
ARElement
AtpBlueprint AtpBlueprintable
AtpBlueprintable +port AtpPrototype
AtpType PortPrototype
+type «atpVariation,atpSplitable» 0..*
SwComponentType
0..1 «isOfType»
{redefines +targetPort 0..1
atpType} {redefines
atpTarget}
+component AtpPrototype
CompositionSwComponentType
SwComponentPrototype
«atpVariation,atpSplitable» 0..*
«atpAbstract»
+/base 0..1 +abstractContextComponent 0..1
{redefines {subsets
atpBase} atpContextElement}
«atpAbstract»
«atpDerived»
PortInCompositionTypeInstanceRef
«instanceRef»
AtpInstanceRef
Class PPortInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition::InstanceRefs
Note
Base ARObject, AtpInstanceRef , PortInCompositionTypeInstanceRef
Attribute Type Mult. Kind Note
context SwComponent 0..1 ref Tags:xml.sequenceOffset=20
Component Prototype
targetPPort AbstractProvidedPort 0..1 ref Tags:xml.sequenceOffset=30
Prototype
AbstractProvidedPortPrototype +targetPPort PPortInCompositionInstanceRef
0..1
{redefines
+provider 0..1 targetPort} 0..1 «atpDerived» «atpAbstract»
0..1
«instanceRef» {redefines
+/base atpBase}
SwConnector SwComponentType
+abstractContextComponent
abstractContextComponent}
AssemblySwConnector CompositionSwComponentType
+contextComponent
atpContextElement}
{redefines
{subsets
«atpVariation,atpSplitable»
0..1
0..1
+component 0..*
AtpPrototype
SwComponentPrototype
AtpBlueprintable AtpInstanceRef
AtpPrototype +targetPort PortInCompositionTypeInstanceRef
PortPrototype «atpAbstract»
0..1
{redefines
atpTarget}
«atpDerived»
AbstractRequiredPortPrototype RPortInCompositionInstanceRef
+targetRPort
0..1
{redefines 0..1
targetPort} {redefines
+requester 0..1 +/base
+requester 0..1 atpBase}
«instanceRef» SwComponentType
«atpAbstract»
+abstractContextComponent
CompositionSwComponentType
SwConnector
AssemblySwConnector
+contextComponent
AtpPrototype
SwComponentPrototype
Class RPortInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition::InstanceRefs
5
4
Class RPortInCompositionInstanceRef
Note
Base ARObject, AtpInstanceRef , PortInCompositionTypeInstanceRef
Attribute Type Mult. Kind Note
context SwComponent 0..1 ref Tags:xml.sequenceOffset=20
Component Prototype
targetRPort AbstractRequiredPort 0..1 ref Tags:xml.sequenceOffset=30
Prototype
AtpPrototype PortInterface
DataPrototype DataInterface
+base 0..1
{redefines atpBase}
«atpDerived»
+rootDataPrototype AtpInstanceRef
AutosarDataPrototype
ApplicationCompositeElementInPortInterfaceInstanceRef
0..1
{subsets
atpContextElement}
0..*
{ordered,
subsets atpContextElement}
ApplicationCompositeElementDataPrototype
+contextDataPrototype
+targetDataPrototype
0..1
+leafElement 0..1 {redefines +leafElement 0..1
atpTarget}
«instanceRef»
CompositeNetworkRepresentation
AtpInstanceRef +base
CompositionSwComponentType
InnerDataPrototypeGroupInCompositionInstanceRef
«atpDerived»
0..1
{redefines atpBase}
«atpVariation,atpSplitable»
«atpVariation,atpSplitable»
+consistencyNeeds 0..*
AtpBlueprint
AtpBlueprintable
Identifiable
ConsistencyNeeds
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
«instanceRef»
Class InnerDataPrototypeGroupInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior::InstanceRef
Note This meta-class represents the ability to define an InstanceRef to a nested DataPrototypeGroup
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref This represents the base of the instanceRef.
ComponentType
Stereotypes: atpDerived
Tags:xml.sequenceOffset=10
contextSw SwComponent * ref This represents the nested structure of SwComponent
Component Prototype Prototypes.
Prototype
Tags:xml.sequenceOffset=20
(ordered)
targetData DataPrototypeGroup 0..1 ref This represents the target of the InstanceRef
PrototypeGroup
Tags:xml.sequenceOffset=30
AtpInstanceRef
+base CompositionSwComponentType
InnerRunnableEntityGroupInCompositionInstanceRef «atpDerived»
0..1
{redefines atpBase}
«atpVariation,atpSplitable»
+component 0..*
+type ARElement
+contextSwComponentPrototype AtpPrototype «isOfType» AtpBlueprint
SwComponentPrototype AtpBlueprintable
0..* 0..1 AtpType
{ordered, {redefines atpType} SwComponentType
subsets atpContextElement}
«atpVariation,atpSplitable»
+consistencyNeeds 0..*
AtpBlueprint
AtpBlueprintable
Identifiable
ConsistencyNeeds
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
0..* «atpVariation»
+runnableEntityGroup
0..*
«instanceRef»
Class InnerRunnableEntityGroupInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior::InstanceRef
Note This meta-class represents the ability to define an InstanceRef to a nested RunnableEntityGroup.
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref This represents the base of the InstanceRef.
ComponentType
Stereotypes: atpDerived
Tags:xml.sequenceOffset=10
contextSw SwComponent * ref This represents the nested structure of SwComponent
Component Prototype Prototypes.
Prototype
Tags:xml.sequenceOffset=20
(ordered)
targetRunnable RunnableEntityGroup 1 ref This represents the target association of the InstanceRef.
EntityGroup
Tags:xml.sequenceOffset=30
Class RunnableEntityInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior::InstanceRef
Note This meta-class represents the ability to define an InstanceRef to a RunnableEntity in the context of a
CompositionSwComponentType.
Base ARObject, AtpInstanceRef
5
4
Class RunnableEntityInCompositionInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref This represents the base of the InstanceRef.
ComponentType
Stereotypes: atpDerived
Tags:xml.sequenceOffset=10
contextSw SwComponent * ref This represents the nested structure of SwComponent
Component Prototype Prototypes.
Prototype
Tags:xml.sequenceOffset=20
(ordered)
targetRunnable RunnableEntity 0..1 ref This represents the target RunnableEntity.
Entity
Tags:xml.sequenceOffset=30
«atpVariation,atpSplitable»
+component 0..*
ARElement
AtpPrototype +type AtpBlueprint
+contextSwComponentPrototype «isOfType»
AtpBlueprintable
SwComponentPrototype
AtpType
0..* 0..1
{ordered, {redefines atpType} SwComponentType
subsets atpContextElement}
AtomicSwComponentType
«atpVariation,atpSplitable»
+internalBehavior 0..1
InternalBehavior
SwcInternalBehavior
«atpVariation,atpSplitable»
0..1
{redefines atpTarget} +runnable 0..*
AtpStructureElement
+targetRunnableEntity ExecutableEntity
RunnableEntity
+runnableEntity 0..*
«instanceRef»
«instanceRef»
+runnableEntityGroup 0..*
+runnableEntity AtpStructureElement
Identifiable
0..* «atpVariation»
RunnableEntityGroup
«atpVariation,atpSplitable»
+component 0..*
VariableDataPrototypeInCompositionInstanceRef
AtpPrototype
SwComponentPrototype
+contextSwComponentPrototype
0..*
{ordered,
subsets atpContextElement} «isOfType»
0..1
{redefines
+type atpType}
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
SwComponentType
«atpVariation,atpSplitable»
+port 0..*
+contextPortPrototype AtpBlueprintable
AtpPrototype
0..1 «instanceRef»
{redefines
atpTarget} +targetVariableDataPrototype 0..* +implicitDataAccess
AutosarDataPrototype
RPortPrototype PRPortPrototype PPortPrototype
VariableDataPrototype
«isOfType»
{redefines atpType}
{redefines atpType}
{redefines atpType}
+providedInterface
+requiredInterface
0..1
0..1
0..1
ARElement
NvDataInterface
AtpBlueprint
AtpBlueprintable
AtpType
PortInterface
SenderReceiverInterface DataInterface
Class VariableDataPrototypeInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::ImplicitCommunicationBehavior::InstanceRef
Note This meta-class represents the ability to define an InstanceRef to a VariableDataPrototype in the context
of a CompositionSwComponentType.
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref This represents the base of the InstanceRef.
ComponentType
Stereotypes: atpDerived
Tags:xml.sequenceOffset=10
contextPort PortPrototype 0..1 ref This represents a reference to a context PortPrototype.
Prototype
Tags:xml.sequenceOffset=30
contextSw SwComponent * ref This represents the nested structure of SwComponent
Component Prototype Prototypes.
Prototype
Tags:xml.sequenceOffset=20
(ordered)
targetVariable VariableDataPrototype 0..1 ref This represents the target VariableDataPrototype.
DataPrototype
Tags:xml.sequenceOffset=40
Class InstanceEventInCompositionInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition::InstanceRefs
Note
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base CompositionSw 0..1 ref Stereotypes: atpDerived
ComponentType Tags:xml.sequenceOffset=10
context SwComponent * ref Tags:xml.sequenceOffset=20
Component Prototype
Prototype
(ordered)
targetEvent RTEEvent 0..1 ref Tags:xml.sequenceOffset=30
AtpInstanceRef
«atpDerived» +/base CompositionSwComponentType
InstanceEventInCompositionInstanceRef
0..1
{redefines
atpBase} «atpVariation,atpSplitable»
+component 0..*
+contextComponentPrototype AtpPrototype
SwComponentPrototype
0..*
{ordered,
subsets atpContextElement}
«isOfType»
«atpVariation,atpSplitable» 0..1
{redefines atpType} +type
ARElement
+instantiationRTEEventProps 0..* AtpBlueprint
AtpBlueprintable
InstantiationRTEEventProps AtpType
+refinedEvent SwComponentType
«atpIdentityContributor»
0..1 + shortLabel: Identifier [0..1]
AtomicSwComponentType
«atpVariation,atpSplitable»
+internalBehavior 0..1
«instanceRef»
InternalBehavior
SwcInternalBehavior
«atpVariation,atpSplitable»
+refinedEvent 0..1 +event 0..*
AbstractEvent
+targetEvent
AtpStructureElement
0..1 RTEEvent
{redefines
atpTarget}
SwComponentType InternalBehavior
+internalBehavior
AtomicSwComponentType SwcInternalBehavior
«atpVariation,atpSplitable» 0..1
AtpStructureElement
ExecutableEntity
«atpDerived» RunnableEntity
«atpVariation,atpSplitable»
+modeSwitchPoint *
AtpInstanceRef AbstractAccessPoint
ModeGroupInAtomicSwcInstanceRef AtpStructureElement
Identifiable
ModeSwitchPoint
AtpBlueprintable AtpPrototype
AtpPrototype ModeDeclarationGroupPrototype
PortPrototype
+targetModeGroup 0..1
{redefines target} «isOfType»
0..1
+type {redefines atpType}
ARElement
AtpBlueprint
AtpBlueprintable
AtpType
ModeDeclarationGroup
«atpVariation»
+initialMode 0..1 +modeDeclaration 0..*
AtpStructureElement
Identifiable
ModeDeclaration
+modeGroup 0..1
+contextPPort
AbstractProvidedPortPrototype PModeGroupInAtomicSwcInstanceRef
0..1
{redefines contextPort}
4
Class ModeGroupInAtomicSwcInstanceRef (abstract)
target ModeDeclarationGroup 0..1 ref Stereotypes: atpAbstract
Prototype Tags:xml.sequenceOffset=30
SwComponentType
AtomicSwComponentType
+/base 0..1
{redefines
atpBase}
«atpDerived»
AtpInstanceRef AtpBlueprintable
ModeGroupInAtomicSwcInstanceRef «atpAbstract» +contextPort AtpPrototype
PortPrototype
0..1
{subsets atpContextElement}
RTEEvent
SwcModeManagerErrorEvent
0..1 +modeGroup
«atpAbstract»
PModeGroupInAtomicSwcInstanceRef AbstractProvidedPortPrototype
+contextPPort
0..1
{redefines contextPort}
0..1 «instanceRef»
{redefines 0..1
+target atpTarget} 0..1 +modeGroup +targetModeGroup {redefines target}
AtpPrototype
ModeDeclarationGroupPrototype
+/base 0..1
{redefines
«atpVariation,atpSplitable»
atpBase}
+modeAccessPoint *
ModeAccessPoint
«atpDerived»
+modeGroup 0..1
AtpInstanceRef
ModeGroupInAtomicSwcInstanceRef
«instanceRef»
«atpAbstract»
«atpAbstract»
0..1
+contextPort 0..1
{subsets atpContextElement} +target +modeGroup 0..1
{redefines atpTarget}
AtpBlueprintable
AtpPrototype
AtpPrototype
ModeDeclarationGroupPrototype
PortPrototype
+targetModeGroup 0..1
{redefines target}
InternalBehavior
+internalBehavior AtomicSwComponentType
SwcInternalBehavior
0..1 «atpVariation,atpSplitable»
«atpVariation,atpSplitable»
+runnable 0..*
AtpStructureElement ARElement
ExecutableEntity AtpBlueprint
RunnableEntity AtpBlueprintable
AtpType
SwComponentType
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
+serverCallPoint 0..* +port 0..*
+targetRequiredOperation 0..1
{redefines
+operation 0..1 targetOperation}
OperationInAtomicSwcInstanceRef
AbstractRequiredPortPrototype
ROperationInAtomicSwcInstanceRef +contextRPort
0..1
{subsets contextPort}
InternalBehavior SwComponentType
SwcInternalBehavior +internalBehavior AtomicSwComponentType
+/base 0..1
{redefines atpBase}
«atpVariation,atpSplitable»
«atpDerived»
+runnable 0..*
«atpVariation,atpSplitable»
+externalTriggeringPoint 0..*
0..1
AbstractEvent
AtpStructureElement
RTEEvent
PortPrototype
DataReceivedEvent DataReceiveErrorEvent
AbstractRequiredPortPrototype
+contextRPort 0..1
{redefines contextPort}
+data 0..1 +data 0..1
VariableInAtomicSwcInstanceRef
RVariableInAtomicSwcInstanceRef
«instanceRef»
«instanceRef»
0..1
{redefines
+data 0..1 +targetDataElement abstractTargetDataElement} +data 0..1
AutosarDataPrototype
VariableDataPrototype
AbstractEvent
AtpStructureElement
RTEEvent
+operation AtpStructureElement
OperationInvokedEvent
0..1 Identifiable
«instanceRef»
ClientServerOperation
+contextPPort 0..1
{subsets contextPort}
+operation 0..1
OperationInAtomicSwcInstanceRef
POperationInAtomicSwcInstanceRef
AbstractEvent
AtpStructureElement
RTEEvent
«instanceRef»
+disabledMode 0..*
AtpStructureElement
SwcModeSwitchEvent
Identifiable
+mode «instanceRef»
ModeDeclaration + activation: ModeActivationKind [0..1]
0..2
+ value: PositiveInteger [0..1]
{ordered} «atpSplitable»
+targetModeDeclaration 0..1
{redefines
atpTarget} 0..2
+disabledMode * +mode {ordered}
AtpInstanceRef
RModeInAtomicSwcInstanceRef
0..1 0..1
+contextPort {subsets atpContextElement} +contextModeDeclarationGroupPrototype {subsets atpContextElement}
PortPrototype AtpPrototype
AbstractRequiredPortPrototype ModeDeclarationGroupPrototype
SwComponentType InternalBehavior
AtomicSwComponentType +internalBehavior SwcInternalBehavior
0..1
«atpVariation,atpSplitable»
0..1
{redefines +event
+/base AbstractEvent
atpBase}
AtpStructureElement 0..* «atpVariation,atpSplitable»
RTEEvent
+disabledMode
0..*
AtpStructureElement
«atpDerived» «instanceRef» Identifiable
ModeDeclaration
«atpSplitable»
+disabledMode *
AtpInstanceRef +targetModeDeclaration
RModeInAtomicSwcInstanceRef
0..1
{redefines
atpTarget}
AtpPrototype ARElement
ModeDeclarationGroupPrototype AtpBlueprint
AtpBlueprintable
+type AtpType
ModeDeclarationGroup
«isOfType»
0..1
{redefines atpType}
AbstractEvent
AtpStructureElement
RTEEvent
TransformerHardErrorEvent
«instanceRef» «instanceRef»
AtpStructureElement AtpStructureElement
Identifiable Identifiable
ClientServerOperation Trigger
OperationInAtomicSwcInstanceRef TriggerInAtomicSwcInstanceRef
POperationInAtomicSwcInstanceRef RTriggerInAtomicSwcInstanceRef
0..1 0..1
+contextPPort {subsets contextPort} +contextRPort {subsets contextPort}
PortPrototype PortPrototype
AbstractProvidedPortPrototype AbstractRequiredPortPrototype
E Examples
+applicationDataType +implementationDataType
DataTypeMapping: DataTypeMap
+implementationDataType
+applicationDataType
PayloadDim1: size:
ImplementationDataTypeElement ImplementationDataTypeElement
DynamicDataArrayDim2: ApplicationArrayDataType
category = ARRAY
dynamicArraySizeProfile = VSA_LINEAR
swDataDefProps: SwDataDefProps
DataTypeMapping: DataTypeMap
+implementationDataType
+applicationDataType
DynamicDataArrayDim2: ApplicationArrayDataType
category = ARRAY
dynamicArraySizeProfile = VSA_LINEAR
DataTypeMapping: DataTypeMap
+implementationDataType
+applicationDataType
payloadDim1: sizeDim1:
ImplementationDataTypeElement ImplementationDataTypeElement
Class ARPackage
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::ARPackage
Note AUTOSAR package, allowing to create top level packages to structure the contained ARElements.
ARPackages are open sets. This means that in a file based description system multiple files can be used
to partially describe the contents of a package.
This is an extended version of MSR’s SW-SYSTEM.
Base ARObject, AtpBlueprint, AtpBlueprintable, CollectableElement, Identifiable, MultilanguageReferrable,
Referrable
Attribute Type Mult. Kind Note
5
4
Class ARPackage
arPackage ARPackage * aggr This represents a sub package within an ARPackage,
thus allowing for an unlimited package hierarchy.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=arPackage.shortName, arPackage.variation
Point.shortLabel
vh.latestBindingTime=blueprintDerivationTime
xml.sequenceOffset=30
element PackageableElement * aggr Elements that are part of this package
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=element.shortName, element.definition,
element.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
xml.sequenceOffset=20
referenceBase ReferenceBase * aggr This denotes the reference bases for the package. This is
the basis for all relative references within the package.
The base needs to be selected according to the base
attribute within the references.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=referenceBase.shortLabel
xml.sequenceOffset=10
Class AUTOSAR
Package M2::AUTOSARTemplates::AutosarTopLevelStructure
Note Root element of an AUTOSAR description, also the root element in corresponding XML documents.
Tags:xml.globalElement=true
Base ARObject
Attribute Type Mult. Kind Note
adminData AdminData 0..1 aggr This represents the administrative data of an Autosar file.
Tags:xml.sequenceOffset=10
arPackage ARPackage * aggr This is the top level package in an AUTOSAR model.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=arPackage.shortName, arPackage.variation
Point.shortLabel
vh.latestBindingTime=blueprintDerivationTime
xml.sequenceOffset=30
fileInfo FileInfoComment 0..1 aggr This represents a possibility to provide a structured
Comment comment in an AUTOSAR file.
Stereotypes: atpStructuredComment
Tags:
xml.roleElement=true
xml.sequenceOffset=-10
xml.typeElement=false
introduction DocumentationBlock 0..1 aggr This represents an introduction on the Autosar file. It is
intended for example to represent disclaimers and legal
notes.
Tags:xml.sequenceOffset=20
Class AdminData
Package M2::MSR::AsamHdo::AdminData
Note AdminData represents the ability to express administrative information for an element. This
administration information is to be treated as meta-data such as revision id or state of the file. There are
basically four kinds of meta-data
• The language and/or used languages.
• Revision information covering e.g. revision number, state, release date, changes. Note that this
information can be given in general as well as related to a particular company.
• Document meta-data specific for a company
Base ARObject
Attribute Type Mult. Kind Note
docRevision DocRevision * aggr This allows to denote information about the current
(ordered) revision of the object.
Note that information about previous revisions can also
be logged here. The entries shall be sorted descendant
by date in order to reflect the history. Therefore the most
recent entry representing the current version is denoted
first.
Tags:
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=50
xml.typeElement=false
xml.typeWrapperElement=false
language LEnum 0..1 attr This attribute specifies the master language of the
document or the document fragment. The master
language is the one in which the document is maintained
and from which the other languages are derived from. In
particular in case of inconsistencies, the information in
the master language is priority.
Tags:xml.sequenceOffset=20
sdg Sdg * aggr This property allows to keep special data which is not
represented by the standard model. It can be utilized to
keep e.g. tool specific data.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=sdg, sdg.variationPoint.shortLabel
xml.roleElement=true
xml.roleWrapperElement=true
xml.sequenceOffset=60
xml.typeElement=false
xml.typeWrapperElement=false
5
4
Class AdminData
usedLanguages MultiLanguagePlainText 0..1 aggr This property specifies the languages which are provided
in the document. Therefore it should only be specified in
the top level admin data. For each language provided in
the document there is one entry in MultilanguagePlain
Text. The content of each entry can be used for
illustration of the language. The used language itself
depends on the language attribute in the entry.
Tags:xml.sequenceOffset=30
Class AnyInstanceRef
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::AnyInstanceRef
Note Describes a reference to any instance in an AUTOSAR model. This is the most generic form of an
instance ref. Refer to the superclass notes for more details.
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base AtpClassifier 1 ref This is the base from which navigation path begins.
Stereotypes: atpDerived
contextElement AtpFeature * ref This is one step in the navigation path specified by the
(ordered) instance ref.
target AtpFeature 1 ref This is the target of the instance ref.
Class ApplicationCompositeElementInPortInterfaceInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface::InstanceRefs
Note
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base DataInterface 0..1 ref This represents the SenderReceiverInterface that acts as
the base in this InstanceRef definition
Stereotypes: atpDerived
Tags:xml.sequenceOffset=10
contextData ApplicationComposite * ref This represents a context ApplicationCompositeData
Prototype ElementDataPrototype Prototype
(ordered)
Tags:xml.sequenceOffset=20
rootData AutosarDataPrototype 0..1 ref This refers to the dataPrototype which is typed by the
Prototype ApplicationDatatype in which which the target can be
found.
Tags:xml.sequenceOffset=15
targetData ApplicationComposite 0..1 ref This represents the referenced ApplicationComposite
Prototype ElementDataPrototype DataPrototype.
Tags:xml.sequenceOffset=30
Enumeration BindingTimeEnum
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This enumerator specifies the applicable binding times for the pre build variation points.
Literal Description
codeGeneration • Coding by hand, based on requirements document.
Time
• Tool based code generation, e.g. from a model.
• The model may contain variants.
• Only code for the selected variant(s) is actually generated.
Tags:atp.EnumerationLiteralIndex=0
linkTime Configure what is included in object code, and what is omitted Based on which variant(s) are selected
E.g. for modules that are delivered as object code (as opposed to those that are delivered as source
code)
Tags:atp.EnumerationLiteralIndex=1
preCompileTime This is typically the C-Preprocessor. Exclude parts of the code from the compilation process, e.g.,
because they are not required for the selected variant, because they are incompatible with the
selected variant, because they require resources that are not present in the selected variant. Object
code is only generated for the selected variant(s). The code that is excluded at this stage code will
not be available at later stages.
Tags:atp.EnumerationLiteralIndex=2
5
4
Enumeration BindingTimeEnum
systemDesignTime • Designing the VFB.
• Software Component types (PortInterfaces).
• SWC Prototypes and the Connections between SWCprototypes.
• Designing the Topology
• ECUs and interconnecting Networks
• Designing the Communication Matrix and Data Mapping
Tags:atp.EnumerationLiteralIndex=3
Class BswCalledEntity
Package M2::AUTOSARTemplates::BswModuleTemplate::BswBehavior
Note BSW module entity which is designed to be called from another BSW module or cluster.
Base ARObject, BswModuleEntity , ExecutableEntity , Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table F.10: BswCalledEntity
Class BswImplementation
Package M2::AUTOSARTemplates::BswModuleTemplate::BswImplementation
Note Contains the implementation specific information in addition to the generic specification (BswModule
Description and BswBehavior). It is possible to have several different BswImplementations referring to
the same BswBehavior.
Tags:atp.recommendedPackage=BswImplementations
Base ARElement, ARObject, CollectableElement, Identifiable, Implementation, MultilanguageReferrable,
PackageableElement, Referrable
Attribute Type Mult. Kind Note
arRelease RevisionLabelString 1 attr Version of the AUTOSAR Release on which this
Version implementation is based. The numbering contains three
levels (major, minor, revision) which are defined by
AUTOSAR.
behavior BswInternalBehavior 1 ref The behavior of this implementation.
This relation is made as an association because
• it follows the pattern of the SWCT
• since ARElement cannot be splitted, but we want
supply the implementation later, the Bsw
Implementation is not aggregated in BswBehavior
preconfigured EcucModule * ref Reference to the set of preconfigured (i.e. fixed)
Configuration ConfigurationValues configuration values for this BswImplementation.
If the BswImplementation represents a cluster of several
modules, more than one EcucModuleConfigurationValues
element can be referred (at most one per module),
otherwise at most one such element can be referred.
Tags:xml.roleWrapperElement=true
recommended EcucModule * ref Reference to one or more sets of recommended
Configuration ConfigurationValues configuration values for this module or module cluster.
5
4
Class BswImplementation
vendorApiInfix Identifier 0..1 attr In driver modules which can be instantiated several times
on a single ECU, SRS_BSW_00347 requires that the
names of files, APIs, published parameters and memory
allocation keywords are extended by the vendorId and a
vendor specific name. This parameter is used to specify
the vendor specific name. In total, the implementation
specific API name is generated as follows: <Module
Name>_<vendorId>_ <vendorApiInfix>_<API name from
SWS>.
E.g. assuming that the vendorId of the implementer is
123 and the implementer chose a vendorApiInfix of
"v11r456" an API name Can_Write defined in the SWS
will translate to Can_123_v11r456_Write.
This attribute is mandatory for all modules with upper
multiplicity > 1. It shall not be used for modules with
upper multiplicity =1.
See also SWS_BSW_00102.
vendorSpecific EcucModuleDef * ref Reference to
ModuleDef
• the vendor specific EcucModuleDef used in this
BswImplementation if it represents a single
module
• several EcucModuleDefs used in this Bsw
Implementation if it represents a cluster of
modules
• one or no EcucModuleDefs used in this Bsw
Implementation if it represents a library
Tags:xml.roleWrapperElement=true
Class BswModuleDescription
Package M2::AUTOSARTemplates::BswModuleTemplate::BswOverview
Note Root element for the description of a single BSW module or BSW cluster. In case it describes a BSW
module, the short name of this element equals the name of the BSW module.
Tags:atp.recommendedPackage=BswModuleDescriptions
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpFeature, AtpStructureElement,
CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
bswModule BswModuleDependency * aggr Describes the dependency to another BSW module.
Dependency
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=bswModuleDependency.shortName, bsw
ModuleDependency.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=20
bswModule SwComponent 0..1 aggr This adds a documentation to the BSW module.
Documentation Documentation
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=bswModuleDocumentation, bswModule
Documentation.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=6
5
4
Class BswModuleDescription
expectedEntry BswModuleEntry * ref Indicates an entry which is required by this module.
Replacement of outgoingCallback / requiredEntry.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=expectedEntry.bswModuleEntry, expected
Entry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
implemented BswModuleEntry * ref Specifies an entry provided by this module which can be
Entry called by other modules. This includes "main" functions,
interrupt routines, and callbacks. Replacement of
providedEntry / expectedCallback.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=implementedEntry.bswModuleEntry,
implementedEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
internalBehavior BswInternalBehavior * aggr The various BswInternalBehaviors associated with a Bsw
ModuleDescription can be distributed over several
physical files. Therefore the aggregation is <<atp
Splitable>>.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=internalBehavior.shortName
xml.sequenceOffset=65
moduleId PositiveInteger 0..1 attr Refers to the BSW Module Identifier defined by the
AUTOSAR standard. For non-standardized modules, a
proprietary identifier can be optionally chosen.
Tags:xml.sequenceOffset=5
providedClient BswModuleClientServer * aggr Specifies that this module provides a client server entry
ServerEntry Entry which can be called from another partition or core.This
entry is declared locally to this context and will be
connected to the requiredClientServerEntry of another or
the same module via the configuration of the BSW
Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedClientServerEntry.shortName,
providedClientServerEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=45
providedData VariableDataPrototype * aggr Specifies a data prototype provided by this module in
order to be read from another partition or core.The
providedData is declared locally to this context and will be
connected to the requiredData of another or the same
module via the configuration of the BSW Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedData.shortName, provided
Data.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=55
5
4
Class BswModuleDescription
providedMode ModeDeclarationGroup * aggr A set of modes which is owned and provided by this
Group Prototype module or cluster. It can be connected to the required
ModeGroups of other modules or clusters via the
configuration of the BswScheduler. It can also be
synchronized with modes provided via ports by an
associated ServiceSwComponentType, EcuAbstraction
SwComponentType or ComplexDeviceDriverSw
ComponentType.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedModeGroup.shortName, provided
ModeGroup.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=25
releasedTrigger Trigger * aggr A Trigger released by this module or cluster. It can be
connected to the requiredTriggers of other modules or
clusters via the configuration of the BswScheduler. It can
also be synchronized with Triggers provided via ports by
an associated ServiceSwComponentType, Ecu
AbstractionSwComponentType or ComplexDeviceDriver
SwComponentType.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=releasedTrigger.shortName, released
Trigger.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=35
requiredClient BswModuleClientServer * aggr Specifies that this module requires a client server entry
ServerEntry Entry which can be implemented on another partition or
core.This entry is declared locally to this context and will
be connected to the providedClientServerEntry of another
or the same module via the configuration of the BSW
Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredClientServerEntry.shortName,
requiredClientServerEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=50
requiredData VariableDataPrototype * aggr Specifies a data prototype required by this module in oder
to be provided from another partition or core.The required
Data is declared locally to this context and will be
connected to the providedData of another or the same
module via the configuration of the BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredData.shortName, required
Data.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=60
5
4
Class BswModuleDescription
requiredMode ModeDeclarationGroup * aggr Specifies that this module or cluster depends on a certain
Group Prototype mode group. The requiredModeGroup is local to this
context and will be connected to the providedModeGroup
of another module or cluster via the configuration of the
BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredModeGroup.shortName, required
ModeGroup.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=30
requiredTrigger Trigger * aggr Specifies that this module or cluster reacts upon an
external trigger.This requiredTrigger is declared locally to
this context and will be connected to the providedTrigger
of another module or cluster via the configuration of the
BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredTrigger.shortName, required
Trigger.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=40
Class BswModuleEntry
Package M2::AUTOSARTemplates::BswModuleTemplate::BswInterfaces
Note This class represents a single API entry (C-function prototype) into the BSW module or cluster.
The name of the C-function is equal to the short name of this element with one exception: In case of
multiple instances of a module on the same CPU, special rules for "infixes" apply, see description of class
BswImplementation.
Tags:atp.recommendedPackage=BswModuleEntrys
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, CollectableElement, Identifiable, Multilanguage
Referrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
argument SwServiceArg * aggr An argument belonging to this BswModuleEntry.
(ordered)
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=blueprintDerivationTime
xml.sequenceOffset=45
bswEntryKind BswEntryKindEnum 0..1 attr This describes whether the entry is concrete or abstract.
If the attribute is missing the entry is considered as
concrete.
Tags:xml.sequenceOffset=40
callType BswCallType 1 attr The type of call associated with this service.
Tags:xml.sequenceOffset=25
execution BswExecutionContext 1 attr Specifies the execution context which is required (in case
Context of entries into this module) or guaranteed (in case of
entries called from this module) for this service.
Tags:xml.sequenceOffset=30
function NameToken 0..1 attr This attribute is used to control the generation of function
Prototype prototypes. If set to "RTE", the RTE generates the
Emitter function prototypes in the Module Interlink Header File.
5
4
Class BswModuleEntry
isReentrant Boolean 1 attr Reentrancy from the viewpoint of function callers:
• True: Enables the service to be invoked again,
before the service has finished.
• False: It is prohibited to invoke the service again
before is has finished.
Tags:xml.sequenceOffset=15
isSynchronous Boolean 1 attr Synchronicity from the viewpoint of function callers:
• True: This calls a synchronous service, i.e. the
service is completed when the call returns.
• False: The service (on semantical level) may not
be complete when the call returns.
Tags:xml.sequenceOffset=20
returnType SwServiceArg 0..1 aggr The return type belonging to this bswModuleEntry.
Tags:xml.sequenceOffset=40
role Identifier 0..1 attr Specifies the role of the entry in the given context. It shall
be equal to the standardized name of the service call,
especially in cases where no ServiceIdentifier is specified,
e.g. for callbacks. Note that the ShortName is not always
sufficient because it maybe vendor specific (e.g. for
callbacks which can have more than one instance).
Tags:xml.sequenceOffset=10
serviceId PositiveInteger 0..1 attr Refers to the service identifier of the Standardized
Interfaces of AUTOSAR basic software. For
non-standardized interfaces, it can optionally be used for
proprietary identification.
Tags:xml.sequenceOffset=5
swServiceImpl SwServiceImplPolicy 1 attr Denotes the implementation policy as a standard function
Policy Enum call, inline function or macro. This has to be specified on
interface level because it determines the signature of the
call.
Tags:xml.sequenceOffset=35
Class BswSchedulableEntity
Package M2::AUTOSARTemplates::BswModuleTemplate::BswBehavior
Note BSW module entity, which is designed for control by the BSW Scheduler. It may for example implement a
so-called "main" function.
Base ARObject, BswModuleEntity , ExecutableEntity , Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table F.14: BswSchedulableEntity
Class BswServiceDependency
Package M2::AUTOSARTemplates::BswModuleTemplate::BswBehavior
Note Specialization of ServiceDependency in the context of an BswInternalBehavior. It allows to associate
BswModuleEntries and data defined for a BSW module or cluster to a given ServiceNeeds element.
Base ARObject, ServiceDependency
5
4
Class BswServiceDependency
Attribute Type Mult. Kind Note
assignedData RoleBasedData * aggr Defines the role of an associated data object (owned by
Assignment this module or cluster) in the context of the ServiceNeeds
element.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
assignedEntry RoleBasedBswModule * aggr Defines the role of an associated BswModuleEntry in the
Role EntryAssignment context of the ServiceNeeds element.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=assignedEntryRole, assignedEntry
Role.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
ident BswService 0..1 aggr This adds the ability to become referrable to BswService
DependencyIdent Dependency.
Stereotypes: atpIdentityContributor
Tags:xml.sequenceOffset=-100
serviceNeeds ServiceNeeds 1 aggr The associated ServiceNeeds.
Class CompuConstFormulaContent
Package M2::MSR::AsamHdo::ComputationMethod
Note This meta-class represents the fact that the constant value of the computation method is represented by
a variation point. This difference is due to compatibility with ASAM HDO.
Base ARObject, CompuConstContent
Attribute Type Mult. Kind Note
vf Numerical 1 attr Value calculated via a system constant. This element is
included in every case where parameters should be
generated from numerical values during compile time (not
runtime!).
Thus for example, the influence of the cylinder number on
conversion formulae can be introduced in a repeatable
manner.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=codeGenerationTime
xml.sequenceOffset=30
4
Class <<atpMixed>> DocumentationBlock
formula MlFormula 0..1 aggr This is a formula in the definition block.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=60
labeledList LabeledList 0..1 aggr This represents a labeled list.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=50
list List 0..1 aggr This represents numbered or unnumbered list.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=30
msrQueryP2 MsrQueryP2 0..1 aggr This represents automatically contributed contents
provided by an msrquery in the context of Documentation
Block.
note Note 0..1 aggr This represents a note in the text flow.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=80
p MultiLanguage 0..1 aggr This is one particular paragraph.
Paragraph
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=10
structuredReq StructuredReq 0..1 aggr This aggregation supports structured requirements
embedded in a documentation block.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=100
trace TraceableText 0..1 aggr This represents traceable text in the documentation block.
This allows to specify requirements/constraints in any
documentation block.
The kind of the trace is specified in the category.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=90
verbatim MultiLanguageVerbatim 0..1 aggr This represents one particular verbatim text.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=postBuild
xml.sequenceOffset=20
Class EcuInstance
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreTopology
5
4
Class EcuInstance
Note ECUInstances are used to define the ECUs used in the topology. The type of the ECU is defined by a
reference to an ECU specified with the ECU resource description.
Tags:atp.recommendedPackage=EcuInstances
Base ARObject, CollectableElement, FibexElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
associatedCom ISignalIPduGroup * ref With this reference it is possible to identify which ISignal
IPduGroup IPduGroups are applicable for which Communication
Connector/ ECU.
Only top level ISignalIPduGroups shall be referenced by
an EcuInstance. If an ISignalIPduGroup contains other
ISignalIPduGroups than these contained ISignalIPdu
Groups shall not be referenced by the EcuInstance.
Contained ISignalIPduGroups are associated to an Ecu
Instance via the top level ISignalIPduGroup.
associated ConsumedProvided * ref With this reference it is possible to identify which
Consumed ServiceInstanceGroup ConsumedProvidedServiceInstanceGroups are
Provided applicable for which ECUInstance.
ServiceInstance
Stereotypes: atpVariation
Group
Tags:vh.latestBindingTime=postBuild
associatedPdur PdurIPduGroup * ref With this reference it is possible to identify which PduR
IPduGroup IPdu Groups are applicable for which Communication
Connector/ ECU.
clientIdRange ClientIdRange 0..1 aggr Restriction of the Client Identifier for this Ecu to an
allowed range of numerical values. The Client Identifier of
the transaction handle is generated by the client RTE for
inter-Ecu Client/Server communication.
com TimeValue 0..1 attr The period between successive calls to Com_Main
Configuration FunctionRouteSignals of the AUTOSAR COM module in
GwTimeBase seconds.
com TimeValue 0..1 attr The period between successive calls to Com_Main
ConfigurationRx FunctionRx of the AUTOSAR COM module in seconds.
TimeBase
com TimeValue 0..1 attr The period between successive calls to Com_Main
ConfigurationTx FunctionTx of the AUTOSAR COM module in seconds.
TimeBase
comEnable Boolean 0..1 attr Enables for the Com module of this EcuInstance the
MDTForCyclic minimum delay time monitoring for cyclic and repeated
Transmission transmissions (TransmissionModeTiming has cyclic
Timing assigned or eventControlledTiming with numberOf
Repetitions > 0).
commController Communication 1..* aggr CommunicationControllers of the ECU.
Controller
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
connector Communication * aggr All channels controlled by a single controller.
Connector
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
dltConfig DltConfig 0..1 aggr Describes the Dlt configuration on this EcuInstance.
doIpConfig DoIpConfig 0..1 aggr DoIp configuration on this EcuInstance.
Tags:atp.Status=draft
ecuTaskProxy OsTaskProxy * ref Reference to OsTaskProxies assigned to the Ecu
Instance.
Stereotypes: atpSplitable
Tags:atp.Splitkey=ecuTaskProxy
5
4
Class EcuInstance
ethSwitchPort Boolean 0..1 attr Defines whether the derivation of SwitchPortGroups
Group based on VLAN and/or CouplingPort.pncMapping shall be
Derivation performed for this EcuInstance. If not defined the
derivation shall not be done.
partition EcuPartition * aggr Optional definition of Partitions within an Ecu.
pncPrepare TimeValue 0..1 attr Time in seconds the PNC state machine shall wait in
SleepTimer PNC_PREPARE_SLEEP.
pnc Boolean 0..1 attr If this parameter is available and set to true then all
Synchronous available PNCs will be woken up as soon as a channel
Wakeup wakeup occurs. This is ensured by adding all PNCs to all
channel wakeup sources during upstream mapping.
pnResetTime TimeValue 0..1 attr Specifies the runtime of the reset timer in seconds. This
reset time is valid for the reset of PN requests in the EIRA
and in the ERA.
sleepMode Boolean 1 attr Specifies whether the ECU instance may be put to a "low
Supported power mode"
• true: sleep mode is supported
• false: sleep mode is not supported
Note: This flag may only be set to "true" if the feature is
supported by both hardware and basic software.
tcpIpIcmpProps EthTcpIpIcmpProps 0..1 ref EcuInstance specific ICMP (Internet Control Message
Protocol) attributes
tcpIpProps EthTcpIpProps 0..1 ref EcuInstance specific TcpIp Stack attributes.
v2xSupported V2xSupportEnum 0..1 attr This attribute is used to control the existence of the V2X
stack on the given EcuInstance.
wakeUpOver Boolean 1 attr Driver support for wakeup over Bus.
BusSupported
Class EcucValueCollection
Package M2::AUTOSARTemplates::ECUCDescriptionTemplate
Note This represents the anchor point of the ECU configuration description.
Tags:atp.recommendedPackage=EcucValueCollections
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
ecucValue EcucModule * ref References to the configuration of individual software
ConfigurationValues modules that are present on this ECU.
atpVariation: [RS_ECUC_00079]
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
ecuExtract System 0..1 ref Represents the extract of the System Configuration that is
relevant for the ECU configured with that ECU
Configuration Description.
Class EndToEndProtectionISignalIPdu
Package M2::AUTOSARTemplates::SystemTemplate::EndToEndProtection
Note It is possible to protect the inter-ECU data exchange of safety-related ISignalGroups at the level of COM
IPdus using protection mechanisms provided by E2E Library. For each ISignalGroup to be protected, a
separate EndToEndProtectionISignalIPdu element shall be created within the EndToEndProtectionSet.
The EndToEndProtectionISignalIPdu element refers to the ISignalGroup that is to be protected and to the
ISignalIPdu that transmits the protected ISignalGroup. The information how the referenced ISignalGroup
shall be protected (through which E2E Profile and with which E2E settings) is defined in the EndToEnd
Description element.
Base ARObject
Attribute Type Mult. Kind Note
dataOffset Integer 1 attr This attribute defines the beginning offset (in bits) of the
Array representation of the Signal Group (including CRC,
counter and application signal group) in the IPdu. This
attribute is mandatory and the dataOffset shall always be
defined.
iSignalGroup ISignalGroup 1 ref Reference to the ISignalGroup that is to be protected.
iSignalIPdu ISignalIPdu 1 ref Reference to the ISignalIPdu that transmits the protected
ISignalGroup.
Class EndToEndTransformationDescription
Package M2::AUTOSARTemplates::SystemTemplate::Transformer
Note EndToEndTransformationDescription holds these attributes which are profile specific and have the same
value for all E2E transformers.
Base ARObject, Describable, TransformationDescription
Attribute Type Mult. Kind Note
clearFromValid Boolean 0..1 attr Clear monitoring window on transition from state Valid to
ToInvalid state Invalid.
counterOffset PositiveInteger 0..1 attr Offset of the counter in the Data[] array in bits.
crcOffset PositiveInteger 0..1 attr Offset of the CRC in the Data[] array in bits.
dataIdMode DataIdModeEnum 0..1 attr This attribute describes the inclusion mode that is used to
include the implicit two-byte Data ID in the one-byte CRC.
dataIdNibble PositiveInteger 0..1 attr Offset of the Data ID nibble in the Data[] array in bits.
Offset
e2eProfile E2EProfileCompatibility 0..1 ref Reference to additional settings for the E2E state
Compatibility Props machine.
Props
maxDelta PositiveInteger 0..1 attr Maximum allowed difference between two counter values
Counter of two consecutively received valid messages. For
example, if the receiver gets data with counter 1 and Max
DeltaCounter is 3, then at the next reception the receiver
can accept Counters with values 2, 3 or 4.
maxErrorState PositiveInteger 0..1 attr Maximal number of checks in which ProfileStatus equal to
Init E2E_P_ERROR was determined, within the last Window
Size checks, for the state E2E_SM_INIT.
maxErrorState PositiveInteger 0..1 attr Maximal number of checks in which ProfileStatus equal to
Invalid E2E_P_ERROR was determined, within the last Window
Size checks, for the state E2E_SM_INVALID.
maxErrorState PositiveInteger 0..1 attr Maximal number of checks in which ProfileStatus equal to
Valid E2E_P_ERROR was determined, within the last Window
Size checks, for the state E2E_SM_VALID.
maxNoNewOr PositiveInteger 0..1 attr The maximum allowed amount of consecutive failed
RepeatedData counter checks.
5
4
Class EndToEndTransformationDescription
minOkStateInit PositiveInteger 0..1 attr Minimal number of checks in which ProfileStatus equal to
E2E_P_OK was determined, within the last WindowSize
checks, for the state E2E_SM_INIT.
minOkState PositiveInteger 0..1 attr Minimal number of checks in which ProfileStatus equal to
Invalid E2E_P_OK was determined, within the last WindowSize
checks, for the state E2E_SM_INVALID.
minOkState PositiveInteger 0..1 attr Minimal number of checks in which ProfileStatus equal to
Valid E2E_P_OK was determined, within the last WindowSize
checks, for the state E2E_SM_VALID.
offset PositiveInteger 0..1 attr Offset of the E2E header in the Data[] array in bits.
profileBehavior EndToEndProfile 0..1 attr Behavior of the check functionality
BehaviorEnum
profileName NameToken 1 attr Definition of the E2E profile.
syncCounterInit PositiveInteger 0..1 attr Number of checks required for validating the consistency
of the counter that shall be received with a valid counter
(i.e. counter within the allowed lock-in range) after the
detection of an unexpected behavior of a received
counter.
upperHeader PositiveInteger 0..1 attr This attribute describes the number of upper-header bits
BitsToShift to be shifted.
value = 0 or not present: shift of upper header is NOT
performed.
value > 0: the E2E Transformer on the protect-side, takes
the first upperHeaderBitsToShift bits from the upper buffer
(e.g. SOME/IP header part generated by SOME/IP
transformer) and shifts them towards the lower bytes and
bits within the Data[] for the length of the E2E header
(e.g. 12 bytes in case of E2E Profile 4). This means the
shift distance is fixed - it depends on the E2E header size
- what is configured here is the number of bits that are to
be shifted. This option is defined because the Some/IP
header generated by SOME/IP transformer shall be, due
to compatibility between non-protected and
E2E-protected communication, at the same position,
which is before E2E header.
windowSizeInit PositiveInteger 0..1 attr Size of the monitoring window of state Init for the E2E
state machine.
windowSize PositiveInteger 0..1 attr Size of the monitoring window of state Invalid for the E2E
Invalid state machine.
windowSize PositiveInteger 0..1 attr Size of the monitoring window of state Valid for the E2E
Valid state machine.
Table F.23: EndToEndTransformationDescription
Class FlatInstanceDescriptor
Package M2::AUTOSARTemplates::CommonStructure::FlatMap
5
4
Class FlatInstanceDescriptor
Note Represents exactly one node (e.g. a component instance or data element) of the instance tree of a
software system. The purpose of this element is to map the various nested representations of this
instance to a flat representation and assign a unique name (shortName) to it.
Use cases:
• Specify unique names of measurable data to be used by MCD tools
• Specify unique names of calibration data to be used by MCD tool
• Specify a unique name for an instance of a component prototype in the ECU extract of the
system description
Note that in addition it is possible to assign alias names via AliasNameAssignment.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
ecuExtract AtpFeature 0..1 iref Refers to the instance in the ECU extract. This is valid
Reference only, if the FlatMap is used in the context of an ECU
extract.
The reference shall be such that it uniquely defines the
object instance. For example, if a data prototype is
declared as a role within an SwcInternalBehavior, it is not
enough to state the SwcInternalBehavior as context and
the aggregated data prototype as target. In addition, the
reference shall also include the complete path identifying
instance of the component prototype and the Atomic
SoftwareComponentType, which is refered by the
particular SwcInternalBehavior.
Tags:xml.sequenceOffset=40
InstanceRef implemented by:AnyInstanceRef
role Identifier 0..1 attr The role denotes the particular role of the downstream
memory location described by this FlatInstanceDescriptor.
It applies to use case where one upstream object results
in multiple downstream objects, e.g. ModeDeclaration
GroupPrototypes which are measurable. In this case the
RTE will provide locations for current mode, previous
mode and next mode.
rtePluginProps RtePluginProps 0..1 aggr The properties of a communication graph with respect to
the utilization of RTE Implementation Plug-in.
Stereotypes: atpSplitable
Tags:atp.Splitkey=rtePluginProps
swDataDef SwDataDefProps 0..1 aggr The properties of this FlatInstanceDescriptor.
Props
upstream AtpFeature 0..1 iref Refers to the instance in the context of an "upstream"
Reference descriptions, wich could be the system or system extract
description, the basic software module description or (if a
flat map is used in preliminary context) a description of an
atomic component or composition. This reference is
optional in case the flat map is used in ECU context.
The reference shall be such that it uniquely defines the
object instance in the given context. For example, if a
data prototype is declared as a role within an SwcInternal
Behavior, it is not enough to state the SwcInternal
Behavior as context and the aggregated data prototype
as target. In addition, the reference shall also include the
complete path identifying the instance of the component
prototype that contains the particular instance of Swc
InternalBehavior.
Tags:xml.sequenceOffset=20
InstanceRef implemented by:AnyInstanceRef
Class HwElement
Package M2::AUTOSARTemplates::EcuResourceTemplate
Note This represents the ability to describe Hardware Elements on an instance level. The particular types of
hardware are distinguished by the category. This category determines the applicable attributes. The
possible categories and attributes are defined in HwCategory.
Tags:atp.recommendedPackage=HwElements
Base ARElement, ARObject, CollectableElement, HwDescriptionEntity , Identifiable, MultilanguageReferrable,
PackageableElement, Referrable
Attribute Type Mult. Kind Note
hwElement HwElementConnector * aggr This represents one particular connection between two
Connection hardware elements.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=systemDesignTime
xml.sequenceOffset=110
hwPinGroup HwPinGroup * aggr This aggregation is used to describe the connection
facilities of a hardware element. Note that hardware
element has no pins but only pingroups.
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=systemDesignTime
xml.sequenceOffset=90
5
4
Class HwElement
nestedElement HwElement * ref This association is used to establish hierarchies of hw
elements. Note that one particular HwElement can be
target of this association only once. I.e. multiple
instantiation of the same HwElement is not supported (at
any hierarchy level).
Stereotypes: atpVariation
Tags:
vh.latestBindingTime=systemDesignTime
xml.sequenceOffset=70
Class HwType
Package M2::AUTOSARTemplates::EcuResourceTemplate::HwElementCategory
Note This represents the ability to describe Hardware types on an abstract level. The particular types of
hardware are distinguished by the category. This category determines the applicable attributes. The
possible categories and attributes are defined in HwCategory.
Tags:atp.recommendedPackage=HwTypes
Base ARElement, ARObject, CollectableElement, HwDescriptionEntity , Identifiable, MultilanguageReferrable,
PackageableElement, Referrable
Attribute Type Mult. Kind Note
– – – – –
Table F.27: HwType
Class ISignal
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreCommunication
Note Signal of the Interaction Layer. The RTE supports a "signal fan-out" where the same System Signal is
sent in different SignalIPdus to multiple receivers.
To support the RTE "signal fan-out" each SignalIPdu contains ISignals. If the same System Signal is to
be mapped into several SignalIPdus there is one ISignal needed for each ISignalToIPduMapping.
ISignals describe the Interface between the Precompile configured RTE and the potentially Postbuild
configured Com Stack (see ECUC Parameter Mapping).
In case of the SystemSignalGroup an ISignal shall be created for each SystemSignal contained in the
SystemSignalGroup.
Tags:atp.recommendedPackage=ISignals
Base ARObject, CollectableElement, FibexElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
data DataTransformation 0..1 ref Optional reference to a DataTransformation which
Transformation represents the transformer chain that is used to transform
the data that shall be placed inside this ISignal.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataTransformation.dataTransformation,
dataTransformation.variationPoint.shortLabel
vh.latestBindingTime=codeGenerationTime
dataTypePolicy DataTypePolicyEnum 1 attr With the aggregation of SwDataDefProps an ISignal
specifies how it is represented on the network. This
representation follows a particular policy. Note that this
causes some redundancy which is intended and can be
5
4
Class ISignal
4
used to support flexible development methodology as well
as subsequent integrity checks.
If the policy "networkRepresentationFromComSpec" is
chosen the network representation from the ComSpec
that is aggregated by the PortPrototype shall be used. If
the "override" policy is chosen the requirements specified
in the PortInterface and in the ComSpec are not fulfilled
by the networkRepresentationProps. In case the System
Description doesn’t use a complete Software Component
Description (VFB View) the "legacy" policy can be
chosen.
initValue ValueSpecification 0..1 aggr Optional definition of a ISignal’s initValue in case the
System Description doesn’t use a complete Software
Component Description (VFB View). This supports the
inclusion of legacy system signals.
This value can be used to configure the Signal’s "Init
Value".
If a full DataMapping exist for the SystemSignal this
information may be available from a configured Sender
ComSpec and ReceiverComSpec. In this case the
initvalues in SenderComSpec and/or ReceiverComSpec
override this optional value specification. Further
restrictions apply from the RTE specification.
iSignalProps ISignalProps 0..1 aggr Additional optional ISignal properties that may be stored
in different files.
Stereotypes: atpSplitable
Tags:atp.Splitkey=iSignalProps
iSignalType ISignalTypeEnum 0..1 attr This attribute defines whether this iSignal is an array that
results in a UINT8_N / UINT8_DYN ComSignalType in the
COM configuration or a primitive type.
length UnlimitedInteger 1 attr Size of the signal in bits. The size needs to be derived
from the mapped VariableDataPrototype according to the
mapping of primitive DataTypes to BaseTypes as used in
the RTE. Indicates maximum size for dynamic length
signals.
The ISignal length of zero bits is allowed.
network SwDataDefProps 0..1 aggr Specification of the actual network representation. The
Representation usage of SwDataDefProps for this purpose is restricted to
Props the attributes compuMethod and baseType. The optional
baseType attributes "memAllignment" and "byteOrder"
shall not be used.
The attribute "dataTypePolicy" in the SystemTemplate
element defines whether this network representation shall
be ignored and the information shall be taken over from
the network representation of the ComSpec.
If "override" is chosen by the system integrator the
network representation can violate against the
requirements defined in the PortInterface and in the
network representation of the ComSpec.
In case that the System Description doesn’t use a
complete Software Component Description (VFB View)
this element is used to configure "ComSignalDataInvalid
Value" and the Data Semantics.
systemSignal SystemSignal 1 ref Reference to the System Signal that is supposed to be
transmitted in the ISignal.
5
4
Class ISignal
timeout ValueSpecification 0..1 aggr Defines and enables the ComTimeoutSubstituition for this
Substitution ISignal.
Value
transformation TransformationISignal * aggr A transformer chain consists of an ordered list of
ISignalProps Props transformers. The ISignal specific configuration
properties for each transformer are defined in the
TransformationISignalProps class. The transformer
configuration properties that are common for all ISignals
are described in the TransformationTechnology class.
Class ISignalGroup
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreCommunication
Note SignalGroup of the Interaction Layer. The RTE supports a "signal fan-out" where the same System
Signal Group is sent in different SignalIPdus to multiple receivers.
An ISignalGroup refers to a set of ISignals that shall always be kept together. A ISignalGroup represents
a COM Signal Group.
Therefore it is recommended to put the ISignalGroup in the same Package as ISignals (see
atp.recommendedPackage)
Tags:atp.recommendedPackage=ISignalGroup
Base ARObject, CollectableElement, FibexElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
comBased DataTransformation 0..1 ref Optional reference to a DataTransformation which
SignalGroup represents the transformer chain that is used to transform
Transformation the data that shall be placed inside this ISignalGroup
based on the COMBasedTransformer approach.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=comBasedSignalGroupTransformation.data
Transformation, comBasedSignalGroup
Transformation.variationPoint.shortLabel
vh.latestBindingTime=codeGenerationTime
iSignal ISignal * ref Reference to a set of ISignals that shall always be kept
together.
systemSignal SystemSignalGroup 1 ref Reference to the SystemSignalGroup that is defined on
Group VFB level and that is supposed to be transmitted in the
ISignalGroup.
transformation TransformationISignal * aggr A transformer chain consists of an ordered list of
ISignalProps Props transformers. The ISignalGroup specific configuration
properties for each transformer are defined in the
TransformationISignalProps class. The transformer
configuration properties that are common for all ISignal
Groups are described in the TransformationTechnology
class.
Table F.29: ISignalGroup
Class ISignalIPdu
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreCommunication
5
4
Class ISignalIPdu
Note Represents the IPdus handled by Com. The ISignalIPdu assembled and disassembled in AUTOSAR
COM consists of one or more signals. In case no multiplexing is performed this IPdu is routed to/from the
Interface Layer.
A maximum of one dynamic length signal per IPdu is allowed.
Tags:atp.recommendedPackage=Pdus
Base ARObject, CollectableElement, FibexElement, IPdu, Identifiable, MultilanguageReferrable, Packageable
Element, Pdu, Referrable
Attribute Type Mult. Kind Note
iPduTiming IPduTiming 0..1 aggr Timing specification for Com IPdus (Transmission
Specification Modes). This information is mandatory for the sender in a
System Extract. This information may be omitted on
receivers in a System Extract.
atpVariation: The timing of a Pdu can vary.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
iSignalToPdu ISignalToIPduMapping * aggr Definition of SignalToIPduMappings included in the Signal
Mapping IPdu.
atpVariation: The content of a PDU can be variable.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
unusedBit Integer 1 attr AUTOSAR COM and AUTOSAR IPDUM are filling not
Pattern used areas of an IPDU with this bit-pattern. This attribute
is mandatory to avoid undefined behavior. This
byte-pattern will be repeated throughout the IPdu.
4
Class Identifiable (abstract)
4
Descriptor, FlexrayArTpNode, FlexrayTpConnectionControl, FlexrayTpNode, FlexrayTpPduPool, Frame
Triggering, GeneralParameter, GlobalTimeGateway, GlobalTimeMaster , GlobalTimeSlave, HeapUsage,
HwAttributeDef, HwAttributeLiteralDef, HwPin, HwPinGroup, IPSecRule, IPv6ExtHeaderFilterList, ISignal
ToIPduMapping, ISignalTriggering, IdentCaption, InternalTriggeringPoint, J1939SharedAddressCluster,
J1939TpNode, Keyword, LifeCycleState, LinScheduleTable, LinTpNode, Linker, MacMulticastGroup, Mc
DataInstance, MemorySection, ModeDeclaration, ModeDeclarationMapping, ModeSwitchPoint, Network
Endpoint, NmCluster , NmEcu, NmNode, NvBlockDescriptor, PackageableElement, ParameterAccess,
PduActivationRoutingGroup, PduToFrameMapping, PduTriggering, PerInstanceMemory, Physical
Channel, PortElementToCommunicationResourceMapping, PortGroup, PortInterfaceMapping, Possible
ErrorReaction, ResourceConsumption, RootSwCompositionPrototype, RptComponent, RptContainer,
RptExecutableEntity, RptExecutableEntityEvent, RptExecutionContext, RptProfile, RptServicePoint, Rte
EventInCompositionSeparation, RteEventInCompositionToOsTaskProxyMapping, RteEventInSystem
Separation, RteEventInSystemToOsTaskProxyMapping, RunnableEntityGroup, SdgAttribute, SdgClass,
SecureCommunicationAuthenticationProps, SecureCommunicationFreshnessProps, SecurityEvent
ContextProps, ServerCallPoint, ServiceNeeds, SignalServiceTranslationElementProps, SignalService
TranslationEventProps, SignalServiceTranslationProps, SocketAddress, SomeipTpChannel, Spec
ElementReference, StackUsage, StaticSocketConnection, StructuredReq, SwGenericAxisParamType,
SwServiceArg, SwcServiceDependency, SwcToApplicationPartitionMapping, SwcToEcuMapping, SwcTo
ImplMapping, SystemMapping, TDCpSoftwareClusterMapping, TDCpSoftwareClusterResourceMapping,
TcpOptionFilterList, TimingCondition, TimingConstraint, TimingDescription, TimingExtensionResource,
TimingModeInstance, TlsCryptoCipherSuite, TlsCryptoCipherSuiteProps, Topic1, TpAddress, Traceable
Table, TraceableText, TracedFailure, TransformationProps, TransformationTechnology, Trigger, Variable
Access, VariationPointProxy, ViewMap, VlanConfig, WaitPoint
Attribute Type Mult. Kind Note
adminData AdminData 0..1 aggr This represents the administrative data for the identifiable
object.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=adminData
xml.sequenceOffset=-40
annotation Annotation * aggr Possibility to provide additional notes while defining a
model element (e.g. the ECU Configuration Parameter
Values). These are not intended as documentation but
are mere design notes.
Tags:xml.sequenceOffset=-25
category CategoryString 0..1 attr The category is a keyword that specializes the semantics
of the Identifiable. It affects the expected existence of
attributes and the applicability of constraints.
Tags:xml.sequenceOffset=-50
desc MultiLanguageOverview 0..1 aggr This represents a general but brief (one paragraph)
Paragraph description what the object in question is about. It is only
one paragraph! Desc is intended to be collected into
overview tables. This property helps a human reader to
identify the object in question.
More elaborate documentation, (in particular how the
object is built or used) should go to "introduction".
Tags:xml.sequenceOffset=-60
introduction DocumentationBlock 0..1 aggr This represents more information about how the object in
question is built or is used. Therefore it is a
DocumentationBlock.
Tags:xml.sequenceOffset=-30
uuid String 0..1 attr The purpose of this attribute is to provide a globally
unique identifier for an instance of a meta-class. The
values of this attribute should be globally unique strings
prefixed by the type of identifier. For example, to include a
DCE UUID as defined by The Open Group, the UUID
5
4
Class Identifiable (abstract)
4
would be preceded by "DCE:". The values of this attribute
may be used to support merging of different AUTOSAR
models. The form of the UUID (Universally Unique
Identifier) is taken from a standard defined by the Open
Group (was Open Software Foundation). This standard is
widely used, including by Microsoft for COM (GUIDs) and
by many companies for DCE, which is based on CORBA.
The method for generating these 128-bit IDs is published
in the standard and the effectiveness and uniqueness of
the IDs is not in practice disputed. If the id namespace is
omitted, DCE is assumed. An example is
"DCE:2fac1234-31f8-11b4-a222-08002b34c003". The
uuid attribute has no semantic meaning for an AUTOSAR
model and there is no requirement for AUTOSAR tools to
manage the timestamp.
Tags:xml.attribute=true
Class InstantiationTimingEventProps
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note This meta-class represents the ability to refine a timing event for particular instances of a software
component. This approach supports an instance specific timing.
Base ARObject, InstantiationRTEEventProps
Attribute Type Mult. Kind Note
period TimeValue 0..1 attr This attribute represents the value of the refined
activation period.
Class McDataInstance
Package M2::AUTOSARTemplates::CommonStructure::MeasurementCalibrationSupport
Note Describes the specific properties of one data instance in order to support measurement and/or
calibration of this data instance.
The most important attributes are:
• Its shortName is copied from the ECU Flat map (if applicable) and will be used as identifier and
for display by the MC system.
• The category is copied from the corresponding data type (ApplicationDataType if defined,
otherwise ImplementationDataType) as far as applicable.
• The symbol is the one used in the programming language. It will be used to find out the actual
memory address by the final generation tool with the help of linker generated information.
It is assumed that in the M1 model this part and all the aggregated and referred elements (with the
exception of the Flat Map and the references from ImplementationElementInParameterInstanceRef and
McAccessDetails) are completely generated from "upstream" information. This means, that even if an
element like e.g. a CompuMethod is only used via reference here, it will be copied into the M1 artifact
which holds the complete McSupportData for a given Implementation.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
arraySize PositiveInteger 0..1 attr The existence of this attribute turns the data instance into
an array of data. The attribute determines the size of the
array in terms of number of elements.
5
4
Class McDataInstance
displayIdentifier McdIdentifier 0..1 attr An optional attribute to be used to set the ASAM ASAP2
DISPLAY_IDENTIFIER attribute.
flatMapEntry FlatInstanceDescriptor 0..1 ref Reference to the corresponding entry in the ECU Flat
Map. This allows to trace back to the original specification
of the generated data instance. This link shall be added
by the RTE generator mainly for documentation purposes.
The reference is optional because
• The McDataInstance may represent an array or
struct in which only the subElements correspond
to FlatMap entries.
• The McDataInstance may represent a task local
buffer for rapid prototyping access which is
different from the "main instance" used for
measurement access.
instanceIn ImplementationElement 0..1 aggr Reference to the corresponding data instance in the
Memory InParameterInstance description of calibration data structures published by the
Ref RTE generator. This is used to support emulation
methods inside the ECU, it is not required for A2L
generation.
mcDataAccess McDataAccessDetails 0..1 aggr Refers to "upstream" information on how the RTE uses
Details this data instance. Use Case: Rapid Prototyping
mcData RoleBasedMcData * aggr An assignment between McDataInstances. This supports
Assignment Assignment the indication of related McDataElement implementing
the of "RP global buffer", "RP global measurement
buffer", "RP enabler flag".
resulting SwDataDefProps 0..1 aggr These are the generated properties resulting from
Properties decisions taken by the RTE generator for the actually
implemented data instance. Only those properties are
relevant here, which are needed for the measurement
and calibration system.
resultingRptSw RptSwPrototyping 0..1 aggr Describes the implemented accessibility of data and
Prototyping Access modes by the rapid prototyping tooling.
Access
role Identifier 0..1 attr An optional attribute to be used for additional information
on the role of this data instance, for example in the
context of rapid prototyping.
rptImplPolicy RptImplPolicy 0..1 aggr Describes the implemented code preparation for rapid
prototyping at data accesses for a hook based bypassing.
subElement McDataInstance * aggr This relation indicates, that the target element is part of a
(ordered) "struct" which is given by the source element. This
information will be used by the final generator to set up
the correct addressing scheme.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
symbol SymbolString 0..1 attr This String is used to determine the memory address
during final generation of the MC configuration data (e.g.
"A2L" file) . It shall be the name of the element in the
programming language such that it can be identified in
linker generated information.
In case the McDataInstance is part of composite data in
the programming language, the symbol String may
include parts denoting the element context, unless the
context is given by the symbol attribute of an enclosing
McDataInstance. This means in particular for the C
language that the "." character shall be used as a
separator between the name of a "struct" variable the
name of one of its elements.
5
4
Class McDataInstance
4
The symbol can differ from the shortName in case of
generated C data declarations.
It is an optional attribute since it may be missing in case
the instance represents an element (e.g. a single array
element) which has no name in the linker map.
Stereotypes: atpSplitable
Tags:atp.Splitkey=symbol
Class McSupportData
Package M2::AUTOSARTemplates::CommonStructure::MeasurementCalibrationSupport
Note Root element for all measurement and calibration support data related to one Implementation artifact on
an ECU. There shall be one such element related to the RTE implementation (if it owns MC data) and a
separate one for each module or component, which owns private MC data.
Base ARObject
Attribute Type Mult. Kind Note
emulation McSwEmulationMethod * aggr Describes the calibration method used by the RTE. This
Support Support information is not needed for A2L generation, but to setup
software emulation in the ECU.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=preCompileTime
mcParameter McDataInstance * aggr A data instance to be used for calibration.
Instance
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=mcParameterInstance.shortName, mc
ParameterInstance.variationPoint.shortLabel
vh.latestBindingTime=postBuild
mcVariable McDataInstance * aggr A data instance to be used for measurement.
Instance
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=mcVariableInstance.shortName, mcVariable
Instance.variationPoint.shortLabel
vh.latestBindingTime=postBuild
measurable SwSystemconstant * ref Sets of system constant values to be transferred to the
System ValueSet MCD system, because the system constants have been
ConstantValues specified with "swCalibrationAccess" = readonly.
rptSupportData RptSupportData 0..1 aggr The rapid prototyping support data belonging to this
implementation. The aggregtion is <<atpSplitable>>
because in case of an already exisiting BSW
Implementation model, this description will be added later
in the process, namely at code generation time.
Stereotypes: atpSplitable
Tags:atp.Splitkey=rptSupportData
4
Class MultilanguageReferrable (abstract)
Note Instances of this class can be referred to by their identifier (while adhering to namespace borders). They
also may have a longName. But they are not considered to contribute substantially to the overall
structure of an AUTOSAR description. In particular it does not contain other Referrables.
Base ARObject, Referrable
Subclasses Caption, DefItem, DocumentationContext, Identifiable, SdgCaption, TraceReferrable, Traceable
Attribute Type Mult. Kind Note
longName MultilanguageLong 0..1 aggr This specifies the long name of the object. Long name is
Name targeted to human readers and acts like a headline.
Class ParameterInAtomicSWCTypeInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::DataElements::InstanceRefs
Usage
Note This class implements an instance reference which can be applied for variables as well as for parameters.
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base AtomicSwComponent 0..1 ref Stereotypes: atpDerived
Type Tags:xml.sequenceOffset=10
contextData ApplicationComposite * ref This ist the context in a compositeDataType.
Prototype ElementDataPrototype
Tags:xml.sequenceOffset=40
(ordered)
portPrototype PortPrototype 0..1 ref This is the port providing the variable or the entry point to
the variable structure.
Tags:xml.sequenceOffset=20
rootParameter DataPrototype 0..1 ref This represents the entry point for references into a
DataPrototype CompositeDataType.
Tags:xml.sequenceOffset=30
targetData DataPrototype 0..1 ref This is the target parameter element. Note that this must
Prototype be nested in ParameterDataPrototype. The target must
be one of ParameterDataPrototype, Application
CompositeElementDataPrototype.
Tags:xml.sequenceOffset=50
Class PostBuildVariantCriterionValueSet
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This meta-class represents the ability to denote one set of postBuildVariantCriterionValues.
Tags:atp.recommendedPackage=PostBuildVariantCriterionValueSets
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
postBuildVariant PostBuildVariant * aggr This is is one particular postbuild variant criterion/value
CriterionValue CriterionValue pair being part of the PostBuildVariantSet.
Class RootSwCompositionPrototype
Package M2::AUTOSARTemplates::SystemTemplate
Note The RootSwCompositionPrototype represents the top-level-composition of software components within a
given System.
According to the use case of the System, this may for example be a more or less complete VFB
description, the software of a System Extract or the software of a flat ECU Extract with only atomic SWCs.
Therefore the RootSwComposition will only occasionally contain all atomic software components that are
used in a complete VFB System. The OEM is primarily interested in the required functionality and the
interfaces defining the integration of the Software Component into the System. The internal structure of
such a component contains often substantial intellectual property of a supplier. Therefore a top-level
software composition will often contain empty compositions which represent subsystems.
The contained SwComponentPrototypes are fully specified by their SwComponentTypes (including Port
Prototypes, PortInterfaces, VariableDataPrototypes, SwcInternalBehavior etc.), and their ports are
interconnected using SwConnectorPrototypes.
Base ARObject, AtpFeature, AtpPrototype, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
calibration CalibrationParameter * ref Used CalibrationParameterValueSet for instance specific
ParameterValue ValueSet initialization of calibration parameters.
Set
Stereotypes: atpSplitable
Tags:atp.Splitkey=calibrationParameterValueSet
flatMap FlatMap 0..1 ref The FlatMap used in the scope of this RootSw
CompositionPrototype.
Stereotypes: atpSplitable
Tags:atp.Splitkey=flatMap
software CompositionSw 1 tref We assume that there is exactly one top-level composition
Composition ComponentType that includes all Component instances of the system.
Stereotypes: isOfType
Class Sdg
Package M2::MSR::AsamHdo::SpecialData
Note Sdg (SpecialDataGroup) is a generic model which can be used to keep arbitrary information which is not
explicitly modeled in the meta-model.
Sdg can have various contents as defined by sdgContentsType. Special Data should only be used
moderately since all elements should be defined in the meta-model.
Thereby SDG should be considered as a temporary solution when no explicit model is available. If an sdg
Caption is available, it is possible to establish a reference to the sdg structure.
Base ARObject
Attribute Type Mult. Kind Note
gid NameToken 1 attr This attributes specifies an identifier. Gid comes from the
SGML/XML-Term "Generic Identifier" which is the
element name in XML. The role of this attribute is the
same as the name of an XML - element.
Tags:xml.attribute=true
sdgCaption SdgCaption 0..1 aggr This aggregation allows to assign the properties of
Identifiable to the sdg. By this, a shortName etc. can be
assigned to the Sdg.
Tags:xml.sequenceOffset=20
sdgContents SdgContents 0..1 aggr This is the content of the Sdg.
Type
Tags:
xml.roleElement=false
xml.roleWrapperElement=false
xml.sequenceOffset=30
xml.typeElement=false
xml.typeWrapperElement=false
Class SenderReceiverToSignalMapping
Package M2::AUTOSARTemplates::SystemTemplate::DataMapping
Note Mapping of a sender receiver communication data element to a signal.
Base ARObject, DataMapping
Attribute Type Mult. Kind Note
dataElement VariableDataPrototype 1 iref Reference to the data element.
InstanceRef implemented by:VariableDataPrototypeIn
SystemInstanceRef
senderToSignal TextTableMapping 0..1 aggr This mapping allows for the text-table translation between
TextTable the sending DataPrototype that is defined in the Port
Mapping Prototype and the physicalProps defined for the System
Signal.
signalTo TextTableMapping 0..1 aggr This mapping allows for the text-table translation between
ReceiverText the physicalProps defined for the SystemSignal and a
TableMapping receiving DataPrototype that is defined in the Port
Prototype.
systemSignal SystemSignal 1 ref Reference to the system signal used to carry the data
element.
Table F.41: SenderReceiverToSignalMapping
Primitive String
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This represents a String in which white-space shall be normalized before processing. For example: in
order to compare two Strings:
• leading and trailing white-space needs to be removed
• consecutive white-space (blank, cr, lf, tab) needs to be replaced by one blank.
Tags:
xml.xsd.customType=STRING
xml.xsd.type=string
Class SwServiceArg
Package M2::MSR::DataDictionary::ServiceProcessTask
Note Specifies the properties of a data object exchanged during the call of an SwService, e.g. an argument or
a return value.
The SwServiceArg can also be used in the argument list of a C-macro. For this purpose the category
shall be set to "MACRO". A reference to implementationDataType can optional be added if the actual
argument has an implementationDataType.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Attribute Type Mult. Kind Note
direction ArgumentDirection 0..1 attr Specifies the direction of the data transfer. The direction
Enum shall indicate the direction of the actual information that is
being consumed by the caller and/or the callee, not the
direction of formal arguments in C.
The attribute is optional for backwards compatibility
reasons. For example, if a pointer is used to pass a
memory address for the expected result, the direction
shall be "out". If a pointer is used to pass a memory
address with content to be read by the callee, its direction
shall be "in".
Tags:xml.sequenceOffset=10
swArraysize ValueList 0..1 aggr This turns the argument of the service to an array.
Tags:xml.sequenceOffset=20
swDataDef SwDataDefProps 0..1 aggr Data properties of this SwServiceArg.
Props
Tags:xml.sequenceOffset=30
4
Class <<atpMixedString>> SwSystemconstDependentFormula (abstract)
syscString SwSystemconst 0..1 ref syscString indicates that the referenced system constant
shall be evaluated as a string according to
[TPS_SWCT_01431].
Class SwSystemconstantValueSet
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This meta-class represents the ability to specify a set of system constant values.
Tags:atp.recommendedPackage=SwSystemconstantValueSets
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
sw SwSystemconstValue * aggr This is one particular value of a system constant.
Systemconstant
Value
Table F.45: SwSystemconstantValueSet
Class System
Package M2::AUTOSARTemplates::SystemTemplate
Note The top level element of the System Description. The System description defines five major elements:
Topology, Software, Communication, Mapping and Mapping Constraints.
The System element directly aggregates the elements describing the Software, Mapping and Mapping
Constraints; it contains a reference to an ASAM FIBEX description specifying Communication and
Topology.
Tags:atp.recommendedPackage=Systems
Base ARElement, ARObject, AtpClassifier , AtpFeature, AtpStructureElement, CollectableElement,
Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Attribute Type Mult. Kind Note
clientId ClientIdDefinitionSet * ref Set of Client Identifiers that are used for inter-ECU
DefinitionSet client-server communication in the System.
containerIPdu ByteOrderEnum 0..1 attr Defines the byteOrder of the header in ContainerIPdus.
HeaderByte
Order
ecuExtract RevisionLabelString 0..1 attr Version number of the Ecu Extract.
Version
fibexElement FibexElement * ref Reference to ASAM FIBEX elements specifying
Communication and Topology.
All Fibex Elements used within a System Description shall
be referenced from the System Element.
atpVariation: In order to describe a product-line, all Fibex
Elements can be optional.
Stereotypes: atpVariation
Tags:vh.latestBindingTime=postBuild
interpolation InterpolationRoutine * ref This reference identifies the InterpolationRoutineMapping
Routine MappingSet Sets that are relevant in the context of the enclosing
MappingSet System.
5
4
Class System
j1939Shared J1939SharedAddress * aggr Collection of J1939Clusters that share a common
AddressCluster Cluster address space for the routing of messages.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=j1939SharedAddressCluster.shortName,
j1939SharedAddressCluster.variationPoint.shortLabel
vh.latestBindingTime=postBuild
mapping SystemMapping * aggr Aggregation of all mapping aspects (mapping of SW
components to ECUs, mapping of data elements to
signals, and mapping constraints).
In order to support OEM / Tier 1 interaction and shared
development for one common System this aggregation is
atpSplitable and atpVariation. The content of System
Mapping can be provided by several parties using
different names for the SystemMapping.
This element is not required when the System description
is used for a network-only use-case.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=mapping.shortName, mapping.variation
Point.shortLabel
vh.latestBindingTime=postBuild
pncVector PositiveInteger 0..1 attr Length of the partial networking request release
Length information vector (in bytes).
pncVectorOffset PositiveInteger 0..1 attr Absolute offset (with respect to the NM-PDU) of the
partial networking request release information vector that
is defined in bytes as an index starting with 0.
rootSoftware RootSwComposition 0..1 aggr Aggregation of the root software composition, containing
Composition Prototype all software components in the System in a hierarchical
structure. This element is not required when the System
description is used for a network-only use-case.
atpVariation: The RootSwCompositionPrototype can vary.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=rootSoftwareComposition.shortName, root
SoftwareComposition.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
swCluster CpSoftwareCluster * ref CP Software Clusters of this System
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swCluster.cpSoftwareCluster, sw
Cluster.variationPoint.shortLabel
atp.Status=draft
vh.latestBindingTime=systemDesignTime
system Chapter * aggr Possibility to provide additional documentation while
Documentation defining the System. The System documentation can be
composed of several chapters.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=systemDocumentation.shortName, system
Documentation.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
xml.sequenceOffset=-10
systemVersion RevisionLabelString 1 attr Version number of the System Description.
Class SystemSignal
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreCommunication
Note The system signal represents the communication system’s view of data exchanged between SW
components which reside on different ECUs. The system signals allow to represent this communication
in a flattened structure, with exactly one system signal defined for each data element prototype sent and
received by connected SW component instances.
Tags:atp.recommendedPackage=SystemSignals
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
dynamicLength Boolean 1 attr The length of dynamic length signals is variable in
run-time. Only a maximum length of such a signal is
specified in the configuration (attribute length in ISignal
element).
physicalProps SwDataDefProps 0..1 aggr Specification of the physical representation.
Class TransientFault
Package M2::AUTOSARTemplates::CommonStructure::ServiceNeeds
Note The reported failure is classified as runtime error.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable, TracedFailure
Attribute Type Mult. Kind Note
possibleError PossibleErrorReaction * aggr Describes a possible error reactions for the transient fault
Reaction handler.
Table F.48: TransientFault
Class VariableInAtomicSWCTypeInstanceRef
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior::DataElements::InstanceRefs
Usage
Note
Base ARObject, AtpInstanceRef
Attribute Type Mult. Kind Note
base AtomicSwComponent 0..1 ref Stereotypes: atpDerived
Type Tags:xml.sequenceOffset=10
contextData ApplicationComposite * ref This is the context in a compositeDataType.
Prototype ElementDataPrototype
Tags:xml.sequenceOffset=40
(ordered)
portPrototype PortPrototype 0..1 ref This is the port providing the parameter or the entry point
to the parameter structure.
Tags:xml.sequenceOffset=20
rootVariable VariableDataPrototype 0..1 ref Tags:xml.sequenceOffset=30
DataPrototype
targetData DataPrototype 0..1 ref This is the target of the instance ref. Note that it shall be
Prototype one of ApplicationCompositeElementDataPrototype of
VariableDataPrototype.
Tags:xml.sequenceOffset=50
Class VariationPoint
Package M2::AUTOSARTemplates::GenericStructure::VariantHandling
Note This meta-class represents the ability to express a "structural variation point". The container of the
variation point is part of the selected variant if swSyscond evaluates to true and each postBuildVariant
Criterion is fulfilled.
Base ARObject
Attribute Type Mult. Kind Note
blueprint DocumentationBlock 0..1 aggr This represents a description that documents how the
Condition variation point shall be resolved when deriving objects
from the blueprint.
Note that variationPoints are not allowed within a
blueprintCondition.
Tags:xml.sequenceOffset=28
desc MultiLanguageOverview 0..1 aggr This allows to describe shortly the purpose of the
Paragraph variation point.
Tags:xml.sequenceOffset=20
formalBlueprint BlueprintGenerator 0..1 aggr This represents a description that documents how the
Generator variation point shall be resolved when deriving objects
from the blueprint by using ARMQL.
Note that variationPoints are not allowed within a formal
BlueprintGenerator.
Tags:
atp.Status=draft
xml.sequenceOffset=30
postBuildVariant PostBuildVariant * aggr This is the set of post build variant conditions which all
Condition Condition shall be fulfilled in order to (postbuild) bind the variation
point.
Tags:xml.sequenceOffset=40
sdg Sdg 0..1 aggr An optional special data group is attached to every
variation point. These data can be used by external
software systems to attach application specific data. For
example, a variant management system might add an
identifier, an URL or a specific classifier.
Tags:xml.sequenceOffset=50
shortLabel Identifier 0..1 attr This provides a name to the particular variation point to
support the RTE generator. It is necessary for supporting
splitable aggregations and if binding time is later than
codeGenerationTime, as well as some RTE conditions. It
needs to be unique with in the enclosing Identifiables with
the same ShortName.
Stereotypes: atpIdentityContributor
Tags:xml.sequenceOffset=10
swSyscond ConditionByFormula 0..1 aggr This condition acts as Binding Function for the Variation
Point. Note that the multiplicity is 0..1 in order to support
pure postBuild variants.
Tags:xml.sequenceOffset=30
G Upstream Mapping
G.1 Introduction
This chapter describes the mapping of the ECU Configuration parameters (M1 model)
onto the meta-classes and attributes of the AUTOSAR upstream templates (in this
case: Software Component Template).
The relationships between upstream templates and ECU Configuration are described
in order to answer typical questions like:
• How shall a supplier use the information in a System Description in order to fulfill
the needs defined by the systems engineer?
• How is a tool vendor supposed to generate an ECU Configuration Description out
of ECU Extract of System Description?
Please note that the upstream mapping tables contain the following columns:
Column Name Column Meaning
BSW Module Name of BSW module
BSW Context Reference to parameter container
BSW Parameter Name of the BSW parameter
BSW Type Type of parameter
BSW Description Description from the configuration document
Template Description Class note or attribute note of the M2 model element
M2 Parameter Name of the upstream template model element
Mapping Rule Textual description on how to transform between M2 and BSW domains
Mapping Type One of:
local no mapping needed since parameter local to BSW
partial some data can be automatically mapped but not all
full all data can be automatically mapped
Mapping Status Indication of life-cycle status of the mapping
ECUC Parameter ID ID of the parameter in the respective SWS document (may be empty if the mapping is owned by
an enumeration literal)
G.2 NvM
4
BSW Description
Defines the job priority for a NVRAM block (0 = Immediate priority).
Template Description
NvBlockNeeds.writingPriority:
Requires the priority of writing this block in case of concurrent requests to write other blocks.
NvBlockNeeds.storeEmergency:
Defines whether or not the associated RAM Block shall be implicitly stored in case of ECU failure (e.g. loss of power) by the
basic software. If the attribute storeEmergency is set to true the associated RAM Block shall be configured to have immediate
priority.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.writingPriority, CommonStructure::ServiceNeeds::NvBlockNeeds.
storeEmergency
Mapping Rule Mapping Type
It is the integrators job to secure the value-monotonic assignment of writingPriority to NvMBlock full
JobPriority. This means that the lowest assigned value of writingPriority=MEDIUM shall be greater
than highest assigned value of writingPriority=HIGH etc.If NvBlockNeeds.storeEmergency is set to
True then NvMBlockJobPriority shall be 0 (Immediate priority). If NvBlockNeeds.storeEmergency
is set to False then the value of NvMBlockJobPriority depends on the value of NvBlock
Needs.writingPriority.
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00477]
4
Template Description
If set to true the RAM Block shall be auto validated during shutdown phase.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.useAutoValidationAtShutDown
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00557]
4
Defines CRC (re)calculation for the permanent RAM block or NVRAM blocks which are configured to use explicit
synchronization mechanism.
true: CRC will be (re)calculated for this permanent RAM block. false: CRC will not be (re)calculated for this permanent RAM
block.
Template Description
Defines if CRC (re)calculation for the permanent RAM Block is required.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.calcRamBlockCrc
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00119]
4
Defines whether a NVRAM block shall be treated resistant to configuration changes or not. If there is no default data available
at configuration time then the application shall be responsible for providing the default initialization data. In this case the
application has to use NvM_GetErrorStatus()to be able to distinguish between first initialization and corrupted data.
true: NVRAM block is resistant to changed software. false: NVRAM block is not resistant to changed software.
Template Description
Defines whether an NVRAM Block shall be treated resistant to configuration changes (true) or not (false). For details how to
handle initialization in the latter case, please refer to the NVRAM specification.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.resistantToChangedSw
Mapping Rule Mapping Type
1:1 Mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00483]
4
If this attribute is set to true the NvM shall process this block in the NvM_FirstInitAll() function.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.selectBlockForFirstInitAll
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00558]
4
Defines if Write Verification is enabled.
false: Write verification is disabled. true: Write Verification is enabled.
Template Description
Defines if Write Verification shall be enabled for this NVRAM Block.
M2 Parameter
CommonStructure::ServiceNeeds::NvBlockNeeds.writeVerification
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_NvM_00534]
G.3 Com
4
Mapping between DataFilterTypeEnum and ComFilterAlgorithm Enum is necessary. full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00146]
4
Value to specify the lower boundary
M2 Parameter
CommonStructure::Filter::DataFilter.min
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00318]
4
BSW Parameter BSW Type
ComFilterX ECUC-INTEGER-PARAM-DEF
BSW Description
The name of this attribute corresponds to the parameter name in the [17] specification of Reception Filtering.
Template Description
Value to compare with
M2 Parameter
CommonStructure::Filter::DataFilter.x
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00147]
4
This parameter defines the action performed upon reception of an invalid signal. Relating to signal groups the action in case
if one of the included signals is an invalid signal. If Replace is used the ComSignalInitValue will be used for the replacement.
Template Description
InvalidationPolicy:
Specifies whether the component can actively invalidate a particular dataElement.
If no invalidationPolicy points to a dataElement this is considered to yield the identical result as if the handleInvalid attribute
was set to dontInvalidate.
ISignalPort.handleInvalid:
This attribute defines how invalidation is applied to the ISignals received in the context of this ISignalPort.
M2 Parameter
SWComponentTemplate::PortInterface::InvalidationPolicy, SystemTemplate::Fibex::FibexCore::Core
Communication::ISignalPort.handleInvalid
Mapping Rule Mapping Type
If strategy HandleInvalidEnum.keep is defined then set ComDataInvalidAction to NOTIFY. If full
strategy HandleInvalidEnum.replace is defined then set ComDataInvalidAction to REPLACE. In all
other cases the ComDataInvalidAction shall not be configured.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00314]
4
This attribute specifies the type of the filter.
M2 Parameter
CommonStructure::Filter::DataFilter.dataFilterType
Mapping Rule Mapping Type
Mapping between DataFilterTypeEnum and ComFilterAlgorithm Enum is necessary. full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00146]
4
ComFilterMin ECUC-INTEGER-PARAM-DEF
BSW Description
The name of this attribute corresponds to the parameter name in the [17] specification of Reception Filtering.
Template Description
Value to specify the lower boundary
M2 Parameter
CommonStructure::Filter::DataFilter.min
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00318]
4
4
in the configured SenderComSpec, then the timeout value in the SenderComSpec overrides this optional timeout
specification during the creation of the Base Ecu Configuration of the COM module.
This attribute can be used in the following cases:
• legacy signal where the System Description doesn’t use a complete Software Component Description (VFB View)
and where the DataMapping is missing.
• bus monitoring use cases in which the DataMapping is ignored.
TransmissionAcknowledgementRequest.timeout:
Number of seconds before an error is reported or in case of allowed redundancy, the value is sent again.
NonqueuedReceiverComSpec.aliveTimeout:
Specify the amount of time (in seconds) after which the software component (via the RTE) needs to be notified if the
corresponding data item have not been received according to the specified timing description.
If the aliveTimeout attribute is 0 no timeout monitoring shall be performed.
M2 Parameter
SystemTemplate::Fibex::FibexCore::CoreCommunication::ISignalPort.timeout, SWComponent
Template::Communication::TransmissionAcknowledgementRequest.timeout, SWComponent
Template::Communication::NonqueuedReceiverComSpec.aliveTimeout
Mapping Rule Mapping Type
TX Signals: If a full DataMapping exist for the SystemSignal this information may be available from full
a configured SenderComSpec.transmissionAcknowledge.timeout that specifies the amount of time
(in seconds) after which the software component (via the RTE) needs to be notified if the
corresponding data item have not been transmitted according to the specified timing description. In
this case the timeout value in SenderComSpec overrides the optional timeout specification in the
System Template defined on the ISignalPort. RX Signals: If a full DataMapping exist for the
SystemSignal this information may be available from a configured NonqueuedReceiverCom
Spec.aliveTimeout. In this case the timeout value in ReceiverComSpec overrides the optional
timeout specification in the System Template defined on the ISignalPort. Please note that the
SWS_RTE defines an algorithm to finally set the applicable timeout value.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00263]
4
M2 Parameter
SystemTemplate::Fibex::FibexCore::CoreCommunication::ISignal.timeoutSubstitutionValue
Mapping Rule Mapping Type
The mapping of ComTimeoutSubstitutionValue depends on the setting in the ISignal.dataType full
Policy: - ISignal.dataTypePolicy = override or legacy: SystemTemplate::Fibex::FibexCore::Core
Communication::ISignal.timeoutSubstitutionValue - ISignal.dataTypePolicy = network
RepresentationFromComSpec: SWComponentTemplate::Communication::NonequeuedReceiver
ComSpec.timeoutSubstitutionValue - ISignal.dataTypePolicy = transformingISignal this is not
supported.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_10006]
4
M2 Parameter
CommonStructure::Filter::DataFilter
Mapping Rule Mapping Type
Create container on the receiver side if the NonqueuedReceiverComSpec contains a DataFilter. full
Create Container on the sender side if the TransmissionModeCondition element contains a
reference to this signal.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00339]
4
BSW Parameter BSW Type
ComFilterMax ECUC-INTEGER-PARAM-DEF
BSW Description
The name of this attribute corresponds to the parameter name in the [17] specification of Reception Filtering.
Template Description
Value to specify the upper boundary
M2 Parameter
CommonStructure::Filter::DataFilter.max
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00317]
4
Defines the data invalid value of the signal.
In case the ComSignalType is UINT8, UINT16, UINT32, UINT64, SINT8, SINT16, SINT32, SINT64 the string shall be
interpreted as defined in the chapter Integer Type in the AUTOSAR EcuC specification. In case the ComSignalType is
FLOAT32, FLOAT64 the string shall be interpreted as defined in the chapter Float Type in the AUTOSAR EcuC specification.
In case the ComSignalType is BOOLEAN the string shall be interpreted as defined in the chapter Boolean Type in the
AUTOSAR EcuC specification. In case the ComSignal is a UINT8_N, UINT8_DYN the string shall be interpreted as a decimal
representation of the characters separated by blanks, e.g. "97 98 100" means a string "abd", where the char "a" is in byte
0(lowest address), "b" is in byte 1, and "d" is in byte 2 and (highest address). For the ComSignalType UINT8_DYN the
dynamic length shall be set to the number of configured characters. An empty string "" shall be interpreted as 0-sized
dynamic signal.
Template Description
InvalidationPolicy:
Specifies whether the component can actively invalidate a particular dataElement.
If no invalidationPolicy points to a dataElement this is considered to yield the identical result as if the handleInvalid attribute
was set to dontInvalidate.
SwDataDefProps.invalidValue:
Optional value to express invalidity of the actual data element.
M2 Parameter
SWComponentTemplate::PortInterface::InvalidationPolicy, DataDictionary::DataDefProperties::SwDataDefProps.
invalidValue
Mapping Rule Mapping Type
ComSignalDataInvalidValue is only derived 1:1 from the SwDataDefProps.invalidValue if the full
InvalidationPolicy equals keep or replace. In all other cases of InvalidationPolicy the ComSignal
DataInvalidValue shall not be configured.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00391]
4
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00170]
4
ISignalPort.timeout:
• ISignalPort with communicationDirection = in:
Optional timeout value in seconds for the reception of the ISignal. The attribute value is used to configure the ComTimeout in
the COM module. The RTE ignores this attribute. The timeout can also be specified with the NonqueuedReceiverCom
Spec.aliveTimeout attribute. If a full DataMapping exists for the SystemSignal and the value is available in the configured
ReceiverComSpec, then the timeout value in the ReceiverComSpec overrides this optional timeout specification during the
creation of the Base Ecu Configuration of the COM module.
• ISignalPort with communicationDirection = out:
Optional timeout value in seconds for the transmission of the ISignal. The attribute value is used to configure the Com
Timeout in the COM module. The RTE ignores this attribute. The timeout can also be specified with the enderCom
Spec.transmissionAcknowledge.timeout attribute. If a full DataMapping exists for the SystemSignal and the value is available
in the configured SenderComSpec, then the timeout value in the SenderComSpec overrides this optional timeout
specification during the creation of the Base Ecu Configuration of the COM module.
This attribute can be used in the following cases:
• legacy signal where the System Description doesn’t use a complete Software Component Description (VFB View)
and where the DataMapping is missing.
• bus monitoring use cases in which the DataMapping is ignored.
TransmissionAcknowledgementRequest.timeout:
Number of seconds before an error is reported or in case of allowed redundancy, the value is sent again.
NonqueuedReceiverComSpec.aliveTimeout:
Specify the amount of time (in seconds) after which the software component (via the RTE) needs to be notified if the
corresponding data item have not been received according to the specified timing description.
If the aliveTimeout attribute is 0 no timeout monitoring shall be performed.
M2 Parameter
SystemTemplate::Fibex::FibexCore::CoreCommunication::ISignalPort.timeout, SWComponent
Template::Communication::TransmissionAcknowledgementRequest.timeout, SWComponent
Template::Communication::NonqueuedReceiverComSpec.aliveTimeout
Mapping Rule Mapping Type
TX Signals: If a full DataMapping exist for the SystemSignal this information may be available from full
a configured SenderComSpec.transmissionAcknowledge.timeout that specifies the amount of time
(in seconds) after which the software component (via the RTE) needs to be notified if the
corresponding data item have not been transmitted according to the specified timing description. In
this case the timeout value in SenderComSpec overrides the optional timeout specification in the
System Template defined on the ISignalPort. RX Signals: If a full DataMapping exist for the
SystemSignal this information may be available from a configured NonqueuedReceiverCom
Spec.aliveTimeout. In this case the timeout value in ReceiverComSpec overrides the optional
timeout specification in the System Template defined on the ISignalPort. Please note that the
SWS_RTE defines an algorithm to finally set the applicable timeout value.
Mapping Status ECUC Parameter ID
valid [ECUC_Com_00263]
G.4 WdgM
4
Template Description
Number of consecutive failed alive cycles for this SupervisedEntity which shall be tolerated until the supervision status of the
SupervisedEntity is set to WDGM_ALIVE_EXPIRED (see SWS WdgM for more details).
Note that this value has to be recalculated with respect to the WdgM’s own cycle time for ECU configuration.
M2 Parameter
CommonStructure::ServiceNeeds::SupervisedEntityNeeds.toleratedFailedCycles
Mapping Rule Mapping Type
1:1 full
Mapping Status ECUC Parameter ID
valid [ECUC_WdgM_-
00327]
G.5 Dcm
4
The name of this container is used to define the name of the R-Port through which the DCM accesses the interface Service
RequestNotification. The R-Port is named ServiceRequestSupplierNotification_<SWC> where <SWC> is the name of the
container DcmDsdServiceRequestSupplierNotification.
The lowerMultiplicity is 0: If the container DcmDsdRequestSupplierNotification does not exist the Indication API is not
available.
Template Description
This represents the ability to define whether the usage of PortInterface ServiceRequestNotification has the characteristics of
being initiated by a manufacturer or by a supplier.
M2 Parameter
CommonStructure::ServiceNeeds::DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType
Mapping Rule Mapping Type
If DiagnosticCommunicationManagerNeeds.serviceRequestCallbackType is set to Diagnostic full
ServiceRequestCallbackTypeEnum.requestCallbackTypeSupplier then DcmDsdServiceRequest
SupplierNotification shall exist and the value of DcmDsdServiceRequestSupplierNotification.short
Name shall be taken from the SwcServiceDependency.shortName that aggregates the Diagnostic
CommunicationManagerNeeds.
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00816]
4
Function name to request to application to adjust the IO signal. (ShortTermAdjustment-function).
This parameter is related to the interface Xxx_ShortTermAdjustment.
Template Description
DiagnosticIoControlNeeds.shortTermAdjustmentSupported:
This attribute determines, if the referenced port supports temporarily setting of I/O value to a specific value provided by the
diagnostic tester.
DiagnosticServiceSwMapping.mappedBswServiceDependency:
This is supposed to represent a reference to a BswServiceDependency. the latter is not derived from Referrable and
therefore this detour needs to be implemented to still let BswServiceDependency become the target of a reference.
M2 Parameter
CommonStructure::ServiceNeeds::DiagnosticIoControlNeeds.shortTermAdjustmentSupported, Diagnostic
Extract::DiagnosticMapping::ServiceMapping::DiagnosticServiceSwMapping.mappedBswServiceDependency
Mapping Rule Mapping Type
It could be possible to get the FNC name via BswServiceDependency full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00675]
4
Type of the data is float.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
SINT16 ECUC-ENUMERATION-LITERAL-DEF
BSW Description
Type of the data is sint16.
Template Description
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeSize, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeEncoding, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = 2C baseTypeSize = 16 maxNumberOfElements shall not exist arraySize full
Semantics shall not exist Derivation from DiagnosticValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
Mapping Status ECUC Parameter ID
valid
4
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeSize, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeEncoding, DiagnosticExtract::CommonDiagnostics::DiagnosticDataElement.arraySizeSemantics, Diagnostic
Extract::CommonDiagnostics::DiagnosticDataElement.maxNumberOfElements, CommonStructure::Service
Needs::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = 2C baseTypeSize = 32 maxNumberOfElements exists and value is greater full
than 0 (cf. TPS_DEXT_01001) arraySizeSemantics either does not exist or exists and is set to
ArraySizeSemanticsEnum.fixedSize (cf. TPS_DEXT_01001) Derivation from DiagnosticValue
Needs.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
DiagnosticDataElement.arraySizeSemantics:
This attribute controls the meaning of the value of the array size.
DiagnosticDataElement.maxNumberOfElements:
The existence of this attribute turns the data instance into an array of data. The attribute determines the size of the array in
terms of how many elements the array can take.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeSize, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeEncoding, DiagnosticExtract::CommonDiagnostics::DiagnosticDataElement.arraySizeSemantics, Diagnostic
Extract::CommonDiagnostics::DiagnosticDataElement.maxNumberOfElements, CommonStructure::Service
Needs::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = 2C baseTypeSize = 8 maxNumberOfElements exists and value is greater full
than 0 (cf. TPS_DEXT_01001) arraySizeSemantics either does not exist or exists and is set to
ArraySizeSemanticsEnum.fixedSize (cf. TPS_DEXT_01001) Derivation from DiagnosticValue
Needs.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, UTF-32 baseTypeSize = 32 maxNumberOfElements shall not exist full
arraySizeSemantics shall not exist Derivation from DiagnosticValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
The DCM will access the Data using an R-Port requiring a synchronous ClientServertInterface DataServices_{Data}. The
R-Port is named DataServices_{Data} where {Data} is the name of the container DcmDspData.
Template Description
The software-component is supposed to react synchronously on the request.
M2 Parameter
CommonStructure::ServiceNeeds::DiagnosticProcessingStyleEnum.processingStyleSynchronous
Mapping Rule Mapping Type
DiagnosticServiceSwMapping is having a SwcServiceDependency and ServiceNeeds::Diagnostic full
ProcessingStyleEnum is equal to processingStyleSynchronous
Mapping Status ECUC Parameter ID
valid
4
M2 Parameter
SWComponentTemplate::PortInterface::PortInterfaceMapping
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00996]
4
BSW Description
If this parameter is set to true, the Dcm uses a port requiring a PortInterface UploadDownload. If the parameter is false, the
DCM uses the according C-API callouts.
Template Description
This meta-class represents the ability to specify needs regarding upload and download by means of diagnostic services.
M2 Parameter
CommonStructure::ServiceNeeds::DiagnosticUploadDownloadNeeds
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_01133]
4
A VariableDataPrototype is used to contain values in an ECU application. This means that most likely a VariableData
Prototype allocates "static" memory on the ECU. In some cases optimization strategies might lead to a situation where the
memory allocation can be avoided.
In particular, the value of a VariableDataPrototype is likely to change as the ECU on which it is used executes.
M2 Parameter
SWComponentTemplate::Datatype::DataPrototypes::VariableDataPrototype
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00995]
4
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00998]
4
BSW Description
Type of the data is float.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
BSW Description
Type of the data is float.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
BSW Parameter BSW Type
DcmApplicationDataType ECUC-FOREIGN-REFERENCE-DEF
BSW Description
Alternative Diagnosis Representation for the data defined by the means of a ApplicationDataType of category VALUE,
BOOLEAN or ARRAY.
The CompuMethod that applies to the referenced ApplicationDataType in case of category VALUE or BOOLEAN will be
applied to the data type of the VariableDataPrototype in the interface used by the Dcm.
Template Description
A primitive data type defines a set of allowed values.
M2 Parameter
SWComponentTemplate::Datatype::Datatypes::ApplicationPrimitiveDataType
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00998]
4
FLOAT_N ECUC-ENUMERATION-LITERAL-DEF
BSW Description
Type of the data is float array.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
BSW Description
Alternative Diagnosis Representation for the data defined by the means of a ApplicationDataType of category VALUE,
BOOLEAN or ARRAY.
The CompuMethod that applies to the referenced ApplicationDataType in case of category VALUE or BOOLEAN will be
applied to the data type of the VariableDataPrototype in the interface used by the Dcm.
Template Description
A primitive data type defines a set of allowed values.
M2 Parameter
SWComponentTemplate::Datatype::Datatypes::ApplicationPrimitiveDataType
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dcm_00998]
4
Type of the data is float array.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
G.6 Dem
4
This container contains the configuration of Debounce Counter Based Class
Template Description
This meta-class represents the ability to indicate that the counter-based debounce algorithm shall be used by the DEM for
this diagnostic monitor.
This is related to set the ECUC choice container DemDebounceAlgorithmClass to DemDebounceCounterBased.
M2 Parameter
CommonStructure::ServiceNeeds::DiagEventDebounceCounterBased
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dem_00881]
4
Shall be taken from DiagnosticExtract::DiagnosticCommonProps.debounceAlgorithm full
Props.debounceAlgorithm.counterPassedThreshold. Applicable if DiagnosticExtract::Diagnostic
CommonProps.debounceAlgorithmProps.debounceAlgorithm is modeled by means of a DiagEvent
DebounceCounterBased.
Mapping Status ECUC Parameter ID
valid [ECUC_Dem_00636]
4
Template Description
DiagnosticEventNeeds.prestoredFreezeframeStoredInNvm:
If the Event uses a prestored freeze-frame (using the operations PrestoreFreezeFrame and ClearPrestoredFreezeFrame of
the service interface DiagnosticMonitor) this attribute indicates if the Event requires the data to be stored in non-volatile
memory. TRUE = Dem shall store the prestored data in non-volatile memory, FALSE = Data can be lost at shutdown (not
stored in Nvm).
DiagnosticEvent.prestoredFreezeframeStoredInNvm:
If the Event uses a prestored freeze-frame (using the operations PrestoreFreezeFrame and ClearPrestoredFreezeFrame of
the service interface DiagnosticMonitor) this attribute indicates if the Event requires the data to be stored in non-volatile
memory. TRUE = Dem shall store the prestored data in non-volatile memory, FALSE = Data can be lost at shutdown (not
stored in Nvm)
M2 Parameter
CommonStructure::ServiceNeeds::DiagnosticEventNeeds.prestoredFreezeframeStoredInNvm, Diagnostic
Extract::Dem::DiagnosticEvent::DiagnosticEvent.prestoredFreezeframeStoredInNvm
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dem_00948]
4
BSW Parameter BSW Type
FLOAT_N ECUC-ENUMERATION-LITERAL-DEF
BSW Description
Type of the data is float array.
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
Template Description
BaseTypeDirectDefinition.baseTypeEncoding:
This specifies, how an object of the current BaseType is encoded, e.g. in an ECU within a message sequence.
BaseTypeDirectDefinition.baseTypeSize:
Describes the length of the data type specified in the container in bits.
DiagnosticValueNeeds.fixedLength:
This attribute is applicable only if the DiagnosticValueNeeds is aggregated within a BswModuleDependency.
This attribute controls whether the data length of the data is fixed.
M2 Parameter
AsamHdo::BaseTypes::BaseTypeDirectDefinition.baseTypeEncoding, AsamHdo::BaseTypes::BaseTypeDirectDefinition.
baseTypeSize, CommonStructure::ServiceNeeds::DiagnosticValueNeeds.fixedLength
Mapping Rule Mapping Type
baseTypeEncoding = NONE, WINDOWS-1252, UTF-8, BCD-P, BCD-UP baseTypeSize = 8 max full
NumberOfElements shall not exist arraySizeSemantics shall not exist Derivation from Diagnostic
ValueNeeds.fixedLength=1 possible.
Mapping Status ECUC Parameter ID
valid
4
BSW Parameter BSW Type
DemDataElement ECUC-FOREIGN-REFERENCE-DEF
BSW Description
Alternative Diagnosis Representation for the data defined by the means of a VariableDataPrototoype in a DataInterface.
The CompuMethod of the data type of the referenced VariableDataPrototype will be applied to the data type of the Variable
DataPrototype in the interface used by the Dem.
Template Description
A VariableDataPrototype is used to contain values in an ECU application. This means that most likely a VariableData
Prototype allocates "static" memory on the ECU. In some cases optimization strategies might lead to a situation where the
memory allocation can be avoided.
In particular, the value of a VariableDataPrototype is likely to change as the ECU on which it is used executes.
M2 Parameter
SWComponentTemplate::Datatype::DataPrototypes::VariableDataPrototype
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dem_00845]
4
Alternative Diagnosis Representation for the data defined by the means of a ApplicationDataType of category VALUE,
BOOLEAN or ARRAY.
The CompuMethod that applies to the referenced ApplicationDataType in case of category VALUE or BOOLEAN will be
applied to the data type of the VariableDataPrototype in the interface used by the Dem.
Template Description
A primitive data type defines a set of allowed values.
M2 Parameter
SWComponentTemplate::Datatype::Datatypes::ApplicationPrimitiveDataType
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Dem_00848]
G.7 BswM
4
M2 Parameter
CommonStructure::ModeDeclaration::ModeDeclaration
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_BswM_00864]
4
Template Description
This class represents a list of mappings between ApplicationDataTypes and ImplementationDataTypes. In addition, it can
contain mappings between ImplementationDataTypes and ModeDeclarationGroups.
M2 Parameter
SWComponentTemplate::Datatype::Datatypes::DataTypeMappingSet
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_BswM_00937]
4
A VariableDataPrototype is used to contain values in an ECU application. This means that most likely a VariableData
Prototype allocates "static" memory on the ECU. In some cases optimization strategies might lead to a situation where the
memory allocation can be avoided.
In particular, the value of a VariableDataPrototype is likely to change as the ECU on which it is used executes.
M2 Parameter
SWComponentTemplate::Datatype::DataPrototypes::VariableDataPrototype
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_BswM_01057]
G.8 MemMap
4
CommonStructure::ResourceConsumption::MemorySectionUsage::MemorySection
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_MemMap_-
00016]
G.9 RTE
4
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Rte_09057]
4
BSW Description
Reference to the description of the RTEEvent which is pointing to the RunnableEntity being mapped. This allows a fine
grained mapping of RunnableEntites based on the activating RTEEvent.
Template Description
Abstract base class for all RTE-related events
M2 Parameter
SWComponentTemplate::SwcInternalBehavior::RTEEvents::RTEEvent
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Rte_09019]
4
valid [ECUC_Rte_09097]
4
Role of a software component within a composition.
M2 Parameter
SWComponentTemplate::Composition::SwComponentPrototype
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Rte_09004]
4
BSW Parameter BSW Type
RteImplementationRef ECUC-FOREIGN-REFERENCE-DEF
BSW Description
The Implementation which shall be assigned to the SwComponentType.
Template Description
This meta-class represents a specialization of the general Implementation meta-class with respect to the usage in application
software.
M2 Parameter
SWComponentTemplate::SwcImplementation::SwcImplementation
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_Rte_09028]
G.10 ECUC
4
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid [ECUC_EcuC_00075]
4
Ethernet MAC address. Size: 64 bits.
Template Description
This aggregation contributes the specification of the concrete meta-data item type.
M2 Parameter
SWComponentTemplate::PortInterface::MetaDataItem.metaDataItemType
Mapping Rule Mapping Type
SWComponentTemplate::PortInterface::MetaDataItem.metaDataItemType == ETHERNET_ full
MAC_64
Mapping Status ECUC Parameter ID
valid
4
SWComponentTemplate::PortInterface::MetaDataItem.metaDataItemType
Mapping Rule Mapping Type
SWComponentTemplate::PortInterface::MetaDataItem.metaDataItemType == TARGET_ full
ADDRESS_16
Mapping Status ECUC Parameter ID
valid
M2 Parameter
SystemTemplate::SWmapping::SwcToEcuMapping.partition
Mapping Rule Mapping Type
The EcucPartitionSoftwareComponentInstanceRef is derived from an SwcToEcuMapping which full
references an EcuPartition and one or several SwComponentPrototypes. For each SwComponent
Prototype that is referenced by the SwcToEcuMapping in the component role an EcucPartition
SoftwareComponentInstanceRef shall be created that refers to the same SwComponentPrototype
as the the SwcToEcuMapping.
Mapping Status ECUC Parameter ID
valid [ECUC_EcuC_00036]
G.11 OS
G.12 SecOC
4
BOTH ECUC-ENUMERATION-LITERAL-DEF
BSW Description
Both "TRUE" and "FALSE" AuthenticationStatus is propagated to SW-C
Template Description
Verification attempts that came out "false" or "true" shall be forwarded to the application software.
M2 Parameter
CommonStructure::ServiceNeeds::VerificationStatusIndicationModeEnum.failureAndSuccess
Mapping Rule Mapping Type
1:1 mapping full
Mapping Status ECUC Parameter ID
valid
4
Name of splitable element Splitkey
InternalBehavior.constantValueMapping constantValueMapping
InternalBehavior.dataTypeMapping dataTypeMapping
InternalBehavior.exclusiveArea exclusiveArea.shortName, exclusiveArea.variation
Point.shortLabel
InternalBehavior.exclusiveAreaNestingOrder exclusiveAreaNestingOrder.shortName, exclusive
AreaNestingOrder.variationPoint.shortLabel
InternalBehavior.staticMemory staticMemory.shortName, staticMemory.variation
Point.shortLabel
NvBlockDescriptor.constantValueMapping constantValueMapping
NvBlockDescriptor.dataTypeMapping dataTypeMapping
NvBlockDescriptor.modeSwitchEventTriggeredActivity modeSwitchEventTriggeredActivity, modeSwitch
EventTriggeredActivity.variationPoint.shortLabel
NvBlockSwComponentType.bulkNvDataDescriptor bulkNvDataDescriptor.shortName, bulkNvData
Descriptor.variationPoint.shortLabel
NvBlockSwComponentType.nvBlockDescriptor nvBlockDescriptor.shortName, nvBlock
Descriptor.variationPoint.shortLabel
ParameterSwComponentType.constantMapping constantMapping
ParameterSwComponentType.dataTypeMapping dataTypeMapping
RapidPrototypingScenario.rptContainer rptContainer.shortName, rptContainer.variation
Point.shortLabel
RapidPrototypingScenario.rptProfile rptProfile.shortName
RapidPrototypingScenario.rptSystem rptSystem
RptContainer.byPassPoint byPassPoint.contextElement, byPassPoint.target, by
PassPoint.variationPoint.shortLabel
RptContainer.explicitRptProfileSelection explicitRptProfileSelection
RptContainer.rptContainer rptContainer.shortName, rptContainer.variation
Point.shortLabel
RptContainer.rptHook rptHook, rptHook.variationPoint.shortLabel
RTEEvent.disabledMode disabledMode.contextPort, disabledMode.context
ModeDeclarationGroupPrototype, disabled
Mode.targetModeDeclaration
RunnableEntity.asynchronousServerCallResultPoint asynchronousServerCallResultPoint.shortName,
asynchronousServerCallResultPoint.variation
Point.shortLabel
RunnableEntity.dataReadAccess dataReadAccess.shortName, dataRead
Access.variationPoint.shortLabel
RunnableEntity.dataReceivePointByArgument dataReceivePointByArgument.shortName, data
ReceivePointByArgument.variationPoint.shortLabel
RunnableEntity.dataReceivePointByValue dataReceivePointByValue.shortName, dataReceive
PointByValue.variationPoint.shortLabel
RunnableEntity.dataSendPoint dataSendPoint.shortName, dataSendPoint.variation
Point.shortLabel
RunnableEntity.dataWriteAccess dataWriteAccess.shortName, dataWrite
Access.variationPoint.shortLabel
RunnableEntity.externalTriggeringPoint externalTriggeringPoint.ident.shortName, external
TriggeringPoint.variationPoint.shortLabel
RunnableEntity.internalTriggeringPoint internalTriggeringPoint.shortName, internal
TriggeringPoint.variationPoint.shortLabel
RunnableEntity.modeAccessPoint modeAccessPoint.ident.shortName, modeAccess
Point.variationPoint.shortLabel
RunnableEntity.modeSwitchPoint modeSwitchPoint.shortName, modeSwitch
Point.variationPoint.shortLabel
5
4
Name of splitable element Splitkey
RunnableEntity.parameterAccess parameterAccess.shortName, parameter
Access.variationPoint.shortLabel
RunnableEntity.readLocalVariable readLocalVariable.shortName, readLocal
Variable.variationPoint.shortLabel
RunnableEntity.serverCallPoint serverCallPoint.shortName, serverCallPoint.variation
Point.shortLabel
RunnableEntity.writtenLocalVariable writtenLocalVariable.shortName, writtenLocal
Variable.variationPoint.shortLabel
SwcInternalBehavior.arTypedPerInstanceMemory arTypedPerInstanceMemory.shortName, arTypedPer
InstanceMemory.variationPoint.shortLabel
SwcInternalBehavior.event event.shortName, event.variationPoint.shortLabel
SwcInternalBehavior.exclusiveAreaPolicy exclusiveAreaPolicy, exclusiveAreaPolicy.variation
Point.shortLabel
SwcInternalBehavior.explicitInterRunnableVariable explicitInterRunnableVariable.shortName, explicit
InterRunnableVariable.variationPoint.shortLabel
SwcInternalBehavior.implicitInterRunnableVariable implicitInterRunnableVariable.shortName, implicit
InterRunnableVariable.variationPoint.shortLabel
SwcInternalBehavior.includedDataTypeSet includedDataTypeSet
SwcInternalBehavior.includedModeDeclarationGroupSet includedModeDeclarationGroupSet
SwcInternalBehavior.instantiationDataDefProps instantiationDataDefProps, instantiationDataDef
Props.variationPoint.shortLabel
SwcInternalBehavior.perInstanceMemory perInstanceMemory.shortName, perInstance
Memory.variationPoint.shortLabel
SwcInternalBehavior.perInstanceParameter perInstanceParameter.shortName, perInstance
Parameter.variationPoint.shortLabel
SwcInternalBehavior.portAPIOption portAPIOption, portAPIOption.variationPoint.short
Label
SwcInternalBehavior.runnable runnable.shortName, runnable.variationPoint.short
Label
SwcInternalBehavior.serviceDependency serviceDependency.shortName, service
Dependency.variationPoint.shortLabel
SwcInternalBehavior.sharedParameter sharedParameter.shortName, shared
Parameter.variationPoint.shortLabel
SwcInternalBehavior.variationPointProxy variationPointProxy.shortName
SwComponentType.consistencyNeeds consistencyNeeds.shortName, consistency
Needs.variationPoint.shortLabel
SwComponentType.port port.shortName, port.variationPoint.shortLabel
SwComponentType.swComponentDocumentation swComponentDocumentation, swComponent
Documentation.variationPoint.shortLabel
SwcServiceDependency.assignedPort assignedPort, assignedPort.variationPoint.short
Label
Table H.1: Usage of splitable elements
4
Variation Point Latest Binding Time
EndToEndProtection.endToEndProtectionISignalIPdu preCompileTime
EndToEndProtection.endToEndProtectionVariablePrototype preCompileTime
EndToEndProtectionSet.endToEndProtection preCompileTime
ErrorTracerNeeds.tracedFailure preCompileTime
ExecutableEntity.canEnter preCompileTime
ExecutableEntity.runsInside preCompileTime
Implementation.buildActionManifest codeGenerationTime
Implementation.generatedArtifact preCompileTime
Implementation.requiredArtifact preCompileTime
Implementation.requiredGeneratorTool preCompileTime
ImplementationDataType.subElement preCompileTime
ImplementationDataTypeElement.arraySize preCompileTime
ImplementationDataTypeElement.subElement preCompileTime
InternalBehavior.constantMemory preCompileTime
InternalBehavior.exclusiveArea preCompileTime
InternalBehavior.exclusiveAreaNestingOrder preCompileTime
InternalBehavior.staticMemory preCompileTime
InternalConstrs.lowerLimit preCompileTime
InternalConstrs.upperLimit preCompileTime
ModeDeclarationGroup.modeDeclaration blueprintDerivationTime
NumericalOrText.vf preCompileTime
NumericalValueSpecification.value preCompileTime
NvBlockDescriptor.clientServerPort preCompileTime
NvBlockDescriptor.instantiationDataDefProps preCompileTime
NvBlockDescriptor.modeSwitchEventTriggeredActivity preCompileTime
NvBlockDescriptor.nvBlockDataMapping preCompileTime
NvBlockSwComponentType.bulkNvDataDescriptor preCompileTime
NvBlockSwComponentType.nvBlockDescriptor preCompileTime
ParameterSwComponentType.instantiationDataDefProps preCompileTime
PerInstanceMemorySize.size preCompileTime
PhysConstrs.lowerLimit preCompileTime
PhysConstrs.upperLimit preCompileTime
PortGroup.outerPort preCompileTime
PortInterfaceMappingSet.portInterfaceMapping blueprintDerivationTime
RapidPrototypingScenario.rptContainer preCompileTime
ReceiverComSpec.maxDeltaCounterInit preCompileTime
ReceiverComSpec.usesEndToEndProtection preCompileTime
RecordValueSpecification.field preCompileTime
RptContainer.byPassPoint preCompileTime
RptContainer.rptContainer preCompileTime
RptContainer.rptHook preCompileTime
RuleArguments.vf preCompileTime
RuleArguments.vtf preCompileTime
RuleBasedValueSpecification.arguments preCompileTime
RunnableEntity.asynchronousServerCallResultPoint preCompileTime
5
4
Variation Point Latest Binding Time
RunnableEntity.dataReadAccess preCompileTime
RunnableEntity.dataReceivePointByArgument preCompileTime
RunnableEntity.dataReceivePointByValue preCompileTime
RunnableEntity.dataSendPoint preCompileTime
RunnableEntity.dataWriteAccess preCompileTime
RunnableEntity.externalTriggeringPoint preCompileTime
RunnableEntity.internalTriggeringPoint preCompileTime
RunnableEntity.modeAccessPoint preCompileTime
RunnableEntity.modeSwitchPoint preCompileTime
RunnableEntity.parameterAccess preCompileTime
RunnableEntity.readLocalVariable preCompileTime
RunnableEntity.serverCallPoint preCompileTime
RunnableEntity.writtenLocalVariable preCompileTime
RunnableEntityGroup.runnableEntity preCompileTime
RunnableEntityGroup.runnableEntityGroup preCompileTime
ScaleConstr.lowerLimit preCompileTime
ScaleConstr.upperLimit preCompileTime
SenderComSpec.usesEndToEndProtection preCompileTime
ServiceDependency.assignedDataType preCompileTime
SubElementMapping.firstElement preCompileTime
SubElementMapping.secondElement preCompileTime
SupervisedEntityNeeds.checkpoints preCompileTime
SwAxisIndividual.swMaxAxisPoints preCompileTime
SwAxisIndividual.swMinAxisPoints preCompileTime
SwcBswMapping.runnableMapping preCompileTime
SwcBswMapping.synchronizedModeGroup preCompileTime
SwcBswMapping.synchronizedTrigger preCompileTime
SwcImplementation.perInstanceMemorySize preCompileTime
SwcInternalBehavior.arTypedPerInstanceMemory preCompileTime
SwcInternalBehavior.event preCompileTime
SwcInternalBehavior.exclusiveAreaPolicy preCompileTime
SwcInternalBehavior.explicitInterRunnableVariable preCompileTime
SwcInternalBehavior.implicitInterRunnableVariable preCompileTime
SwcInternalBehavior.instantiationDataDefProps preCompileTime
SwcInternalBehavior.perInstanceMemory preCompileTime
SwcInternalBehavior.perInstanceParameter preCompileTime
SwcInternalBehavior.portAPIOption preCompileTime
SwcInternalBehavior.runnable preCompileTime
SwcInternalBehavior.serviceDependency preCompileTime
SwcInternalBehavior.sharedParameter preCompileTime
SwComponentDocumentation.chapter postBuild
SwComponentType.consistencyNeeds preCompileTime
SwComponentType.port preCompileTime
SwComponentType.portGroup preCompileTime
SwComponentType.swComponentDocumentation preCompileTime
5
4
Variation Point Latest Binding Time
SwcServiceDependency.assignedData preCompileTime
SwcServiceDependency.assignedPort preCompileTime
SwDataDefProps codeGenerationTime
SwDataDefProps.swValueBlockSize preCompileTime
SwDataDefProps.swValueBlockSizeMult preCompileTime
SwGenericAxisParam.vf preCompileTime
SwTextProps.swMaxTextSize preCompileTime
SwValues.vf preCompileTime
SwValues.vtf preCompileTime
TextTableMapping.bitfieldTextTableMaskFirst preCompileTime
TextTableMapping.bitfieldTextTableMaskSecond preCompileTime
TextTableValuePair.firstValue preCompileTime
TextTableValuePair.secondValue preCompileTime
ValueList.vf preCompileTime