AUTOSAR ASWS TransformerGeneral
AUTOSAR ASWS TransformerGeneral
General Specification of
Document Title Transformers
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 658
Document Classification Standard
Disclaimer
Disclaimer
This specification 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 specification.
The material contained in this specification is protected by copyright and other types of
Intellectual Property Rights. The commercial exploitation of the material contained in
this specification requires a license to such Intellectual Property Rights.
This specification 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 specification may be utilized or reproduced, in
any form or by any means, without permission in writing from the publisher.
The AUTOSAR specifications have been developed for automotive applications only.
They have neither been developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
1 Introduction and functional overview 5
3 Related documentation 7
3.1 Input documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Related standards and norms . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Related specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Constraints and assumptions 9
4.1 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Applicability to car domains . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Dependencies to other modules 10
5.1 File structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.1 Code file structure . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.2 Header file structure . . . . . . . . . . . . . . . . . . . . . . . 10
6 Requirements Tracing 11
7 Functional Specification 13
7.1 Buffer Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.2 Transformer Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2.1 Serializer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2.2 Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2.4 Custom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.3 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.3.1 Errors of Serializer Transformers . . . . . . . . . . . . . . . . 20
7.3.2 Errors of Safety Transformers . . . . . . . . . . . . . . . . . . 20
7.3.3 Errors of Security Transformers . . . . . . . . . . . . . . . . . 22
7.3.4 Errors of Custom Transformers . . . . . . . . . . . . . . . . . 22
7.4 Development Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.5 Production Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.6 Extended Production Errors . . . . . . . . . . . . . . . . . . . . . . . . 23
7.6.1 XFRM_E_MALFORMED_MESSAGE . . . . . . . . . . . . . 23
7.7 Error Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8 API specification 25
8.1 Imported types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2 Type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.3 Function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.3.1 <Mip>_<transformerId> . . . . . . . . . . . . . . . . . . . . . 26
8.3.2 <Mip>_Inv_<transformerId> . . . . . . . . . . . . . . . . . . . 31
8.3.3 <Mip>_Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8.3.4 <Mip>_DeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8.3.5 <Mip>_GetVersionInfo . . . . . . . . . . . . . . . . . . . . . . 36
8.4 Callback notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.5 Scheduled functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.6 Expected interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9 Sequence diagrams 38
10 Configuration specification 39
10.1 How to read this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.2 Containers and configuration parameters . . . . . . . . . . . . . . . . . 39
10.2.1 XfrmGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.2.2 XfrmImplementationMapping . . . . . . . . . . . . . . . . . . 41
10.2.3 XfrmSignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
10.2.4 XfrmDemEventParameterRefs . . . . . . . . . . . . . . . . . 46
A Referenced Meta Classes 48
3 Related documentation
[1] Glossary
AUTOSAR_TR_Glossary
[2] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[3] System Template
AUTOSAR_TPS_SystemTemplate
[4] Specification of SOME/IP Transformer
AUTOSAR_SWS_SOMEIPTransformer
[5] Specification of RTE Software
AUTOSAR_SWS_RTE
[6] Software Component Template
AUTOSAR_TPS_SoftwareComponentTemplate
4.1 Limitations
Both data transformation and communication itself are very extensive fields and can
get quite complex because a lot of use cases and scenarios are theoretically possible.
Because these have a big impact on the functionality of transformer (especially in the
RTE), this diversity makes it necessary to impose a few restrictions and assumptions
to the transformers.
If the transformation targets primarily the serialization of large complex data elements,it
is most efficient when the transformation is used for communication over busses with
large PDU sizes (e.g. Ethernet). If busses with small PDU size are used (e.g CAN),
the byte array produced by the serializer would have to be spanned over multiple PDUs
which is possible but inefficient.
Subject to transformation are the data elements (VariableDataProto-
types) of ports typed with SenderReceiverInterfaces and the operations
(ClientServerOperations) of ports typed with ClientServerInterfaces.
This imposes the majority of restrictions and is therefore the most important contraint!
As a consequence of this decision, it is not possible to transform whole PDUs. The
reason for this is the fact that inside the RTE (where the transformation happens) there
exist no PDUs because these are built inside the Com module.
Nonetheless, it is still possible to aggregate multiple transformed data elements of
Sender/Receiver-Communication into one large PDU inside Com (each transformed
data element is visible within Com as an ISignal). But in this case, all data ele-
ments/ISignals contained in this PDU are transformed independently from each other,
each including its own header (if the transformation adds headers). As a conse-
quence of this, it is not possible to transform data structures where the data struc-
ture’s sub-elements are produced by different data elements of different PPortPro-
totypes/SWCs.
The length of the transformer chains is not limited by the solutions chosen within this
concept. But to enable a memory efficient configuration and implementation, the max-
imum length is artificially limited to 255 because current use cases see a maximum
chain length of 3.
The code file structure of transformers is defined by the [2, SWS BSW General] as all
transformers are BSW modules. Deviations are specified in the SWS documents of the
specific transformers.
The header file structure of transformers is defined by the [2, SWS BSW General] as
all transformers are BSW modules. Deviations are specified in the SWS documents of
the specific transformers.
6 Requirements Tracing
The following table references the SRS requirements which are fulfilled by this docu-
ment.
Feature Description Satisfied by
[SRS_BSW_00337] Classification of development errors [SWS_Xfrm_00061]
[SRS_BSW_00404] BSW Modules shall support [SWS_Xfrm_00060]
post-build configuration
[SRS_BSW_00407] Each BSW module shall provide a [SWS_Xfrm_00057]
function to read out the version [SWS_Xfrm_00058]
information of a dedicated module [SWS_Xfrm_00059]
implementation
[SRS_BSW_00411] All AUTOSAR Basic Software [SWS_Xfrm_00057]
Modules shall apply a naming rule for [SWS_Xfrm_00058]
enabling/disabling the existence of [SWS_Xfrm_00059]
the API
[SRS_BSW_00441] Naming convention for type, macro [SWS_Xfrm_00060]
and function
[SRS_BSW_00466] Classification of extended production [SWS_Xfrm_00070]
errors [SWS_Xfrm_00071]
[SRS_BSW_00469] Fault detection and healing of [SWS_Xfrm_00070]
production errors and extended [SWS_Xfrm_00071]
production errors
[SRS_Xfrm_00001] A transformer shall work on data [SWS_Xfrm_00017]
given by the Rte [SWS_Xfrm_00018]
[SWS_Xfrm_00019]
[SWS_Xfrm_00020]
[SWS_Xfrm_00021]
[SWS_Xfrm_00022]
[SWS_Xfrm_00023]
[SWS_Xfrm_00024]
[SWS_Xfrm_00025]
[SWS_Xfrm_00048]
[SRS_Xfrm_00002] A transformer shall provide fixed [SWS_Xfrm_00034]
interfaces [SWS_Xfrm_00036]
[SWS_Xfrm_00037]
[SWS_Xfrm_00038]
[SWS_Xfrm_00039]
[SWS_Xfrm_00040]
[SWS_Xfrm_00041]
[SWS_Xfrm_00042]
[SWS_Xfrm_00043]
[SWS_Xfrm_00044]
[SWS_Xfrm_00045]
[SWS_Xfrm_00046]
[SWS_Xfrm_00047]
[SWS_Xfrm_00052]
[SWS_Xfrm_00053]
[SWS_Xfrm_00062]
7 Functional Specification
A transformers takes data from the RTE, works on them and returns the output back
to the RTE. It can both serialize/linearize data (transform them from a structured into a
linear form) and transform (modify or extend linear data) them (e.g add a checksum).
Transformers are BSW modules in the System Service Cluster which provide services
to the RTE. The transformers are executed by the RTE when the RTE needs the service
which a transformer provides.
A transformer is no library because transformers can hold an internal state but they
can work as well stateless.
[SWS_Xfrm_00001] d Transformers shall be stateful only, if the dedicated transformer
functionality requires maintaining a transformer state. c(SRS_Xfrm_00006)
Please note that stateful transformers cannot be used like a library.
It is possible to connect a set of transformers together into a transformer chain. The
RTE coordinates the execution of the transformer chain and calls the transformers
of the chain exactly in the specified order. Using that mechanism, inter-ECU com-
muncation is transformed if configured accordingly. This configuration is done in the
[3, System Template]. The maximum length of a transformer chain is limited to 255
transformers.
The order of transformers configured in the [3, System Template] represents the order
on the sending side. The order on the receiving side is the inverse of the sending side.
Transformer 1 Retransformer 1
RTE
RTE
Transformer 2 Retransformer 2
Com Com
In this example, a SWC sends complex data which are transformed using a transformer
chains with two transformers. Transformer 1 serializes the data and Transformer 2
simply transforms them. On the receiver side, the same transformer chain is executed
in reverse order with the respective retransformers. From the SWC’s point of view it
is totally transparent for them which transformer are used or whether transformers are
used at all.
In general transformers have to specify their output format to enable remote ECUs to
correctly work with the transformed data. For that, the on-wire format has to be fixed.
[SWS_Xfrm_00002] d A transformer shall consider that the target ECU might have a
different architecture than the sender ECU (e.g. 8/16/32bit, little/big endian, etc.) so
the on-wire format shall be fixed. c(SRS_Xfrm_00008)
[SWS_Xfrm_00003] d A transformer shall clearly define endianness of multi-byte
words. c(SRS_Xfrm_00008)
[SWS_Xfrm_00004] d A transformer shall clearly define the ordering of the contained
data elements in the complex data if it is a serializer. c(SRS_Xfrm_00008)
[SWS_Xfrm_00005] d A transformer shall clearly define the data semantics.
c(SRS_Xfrm_00008) (i.e. representation of data values, e.g. two’s complement for
signed integers, character encoding for textual data, etc.)
[SWS_Xfrm_00006] d A transformer shall clearly define the source (=target) data type
of the data represented by the byte array if it is a serializer. c(SRS_Xfrm_00008)
This is determined by the connected PortPrototype/SystemSignal.
[SWS_Xfrm_00007] d A transformer shall clearly define the padding of data.
c(SRS_Xfrm_00008)
All of this information is available statically during RTE generation and can therefore be
"hardcoded" in the transformer implementation.
A transformer gets its input data via a pointer which destination can vary in length.
Therefore, an implementation of a transformer has to cope with input data which are
longer than expected.
[SWS_Xfrm_00008] d The way to deal with unexpected data shall be specified by the
transformer specific SWS. In general the transformer shall discard the unexpected data
but shall tolerate the expected fraction. c(SRS_Xfrm_00005)
This also includes the configurability of the PortInterfaceMapping where it can be
configured that a sender sends more data than the client receives.
[SWS_Xfrm_00049] d An implementation of a transformer shall be able to cope with
NULL_PTR as input data. The detailed behavior shall be specified in the specific trans-
former SWS. c(SRS_Xfrm_00005)
[SWS_Xfrm_00009] d A transformer shall be implemented re-entrant because there
exist valid configurations which can lead to a concurrent execution of a transformer.
c(SRS_Xfrm_00006)
This is independent whether the transformer keeps internal state or not. An explicit
synchronization mechanisms inside the transformer might be necessary.
It is possible to configure for a transformer (which is not the first in the the transformer
chain of the sending side) to have access to the original data sent by the SWC. This
is only supported for the non-first transformers on the sending/calling side (down from
SWC to Rte), not for those on the receiving/called side (up from Rte to SWC). This
configuration can be set in the [3, System Template]. The RTE ensures that the original
data (which still are placed in the context of the SWC) are not modified by the SWC
until the end of the transformer chain.
[SWS_Xfrm_00054] d If a VariableDataPrototype is mapped to multiple ISig-
nals which referr to DataTransformations and if those DataTransforma-
tions referr to the same TransformationTechnologys at the beginning of
their list of ordered references transformer and no XfrmVariableDataPro-
totypeInstanceRef is specified for that TransformationTechnology and no
ComBasedTransformer is included in the transformer chains, the execution should
be optimzed.
As optimization those first transformers should be executed only once and the re-
sult should be taken as input for the further transformers for those ISignals.
c(SRS_Xfrm_00006)
If multiple transformer chains in case of a signal fanout in RTE have the same set
of transformers at the beginning of the transformer chain, it is possible to optimize
and execute those transformers only once for all transformer chains together. The
result can be shared between all transformer chains. This is only possible if no
ComBasedTransformer is involved.
[SWS_Xfrm_00055] d If the transformer execution is optimized, the XfrmImplemen-
tationMapping shall map all transformers which execution can be optimized to the
same BswModuleEntry. c(SRS_Xfrm_00006)
If the transformer execution is optimized, the name pattern of the transformer function
cannot fulfill the requirements on the name pattern anymore because the same function
transforms data for multiple ISignals.
Transformer 4 Transformer 4
Transformer 5 Transformer 5
Transformer 6 Transformer 6
Receiving Receiving
ISignal1 Application ISignal2 ISignal1 Application ISignal2
SWC SWC
[SWS_Xfrm_00010] d A transformer which uses in-place buffering shall use the in-
put buffer also as output buffer. (See [SWS_Xfrm_00040] and [SWS_Xfrm_00045])
c(SRS_Xfrm_00003)
In this case, the transformation function takes just one buffer pointer argument
[SWS_Xfrm_00011] d A transformer which uses out-of-place buffering shall work
with two buffers: One for the input to the transformer and one for its output.
c(SRS_Xfrm_00003)
[SWS_Xfrm_00012] d A transformer which uses out-of-place buffering shall not alter
the data of the input buffer. c(SRS_Xfrm_00003)
The Rte allocates the buffers that are used by the transformers. It calculates the
needed buffer size which is needed in worst case for the output.
Depending on the specific place of a transformer inside the transformer chain, not all
transformers are able to use in-place buffering because a transformer is not allowed
modify the original data in the context of the SWC. Also the last transformer on the
receiving side cannot use in-place as it has to write its result directly into the buffer of
the SWC.
[SWS_Xfrm_00013] d The first transformer in the chain on the sending side shall use
out-of-place buffering. c(SRS_Xfrm_00003)
[SWS_Xfrm_00014] d The last transformer in the chain on the receiving side shall use
out-of-place buffering. c(SRS_Xfrm_00003)
7.2.1 Serializer
7.2.2 Safety
7.2.3 Security
7.2.4 Custom
Custom transformers are not specified by AUTOSAR but can be specified by any party
in the development workflow to implement a transformer which is not standardized.
Custom transformers can be implemented as CDDs.
[SWS_Xfrm_00029] d Each transformer class shall have its own set of abstract errors.
c(SRS_Xfrm_00004, SRS_Xfrm_00010)
[SWS_Xfrm_00030] d Each transformer shall return only errors which are a subset
of the errors defined for the transformer’s transformer class. c(SRS_Xfrm_00004,
SRS_Xfrm_00010, SRS_Xfrm_00011)
c(SRS_Xfrm_00010)
c(SRS_Xfrm_00010)
c(SRS_Xfrm_00010)
c(SRS_Xfrm_00010)
7.6.1 XFRM_E_MALFORMED_MESSAGE
[SWS_Xfrm_00070] d
c(SRS_BSW_00466, SRS_BSW_00469)
[SWS_Xfrm_00071] d The Extended Production Error
XFRM_E_MALFORMED_MESSAGE shall exist for every transformer which has
XFRM_E_MALFORMED_MESSAGE set. c(SRS_BSW_00466, SRS_BSW_00469)
8 API specification
Name <Mip>_ConfigType
Type Structure
Element: void implementation specific –
Description This is the type of the data structure containing the initialization data for
the transformer.
c(SRS_BSW_00404, SRS_BSW_00441)
• <ComponentName>_<p>_<o> if XfrmVariableDataPrototypeIn-
stanceRef exists.
where
• <ComponentName> is the shortName of the SwComponentPrototype which
describes the context of XfrmVariableDataPrototypeInstanceRef.
• <p> is the shortName of the PortPrototype which describes the context of
XfrmVariableDataPrototypeInstanceRef. (This is comparable to p used
in the RTE APIs.)
• <o> is the shortName of the VariableDataPrototype referenced by Xfrm-
VariableDataPrototypeInstanceRef. (This is comparable to o used in the
RTE APIs.)
• <ComSignalName> is the shortName of ComSignal which references the
ISignal (using ComSystemTemplateSystemSignalRef that references
ISignalToIPduMapping which references the ISignal) that references the
DataTransformation.
• <ComSignalGroupName> is the shortName of ComSignalGroup which ref-
erences the ISignalGroup (using ComSystemTemplateSystemSignal-
GroupRef that references ISignalToIPduMapping which references the
ISignalGroup) that references the DataTransformation.
• <LdComIpduName> is the shortName of LdComIPdu which references
the ISignal (using LdComSystemTemplateSignalRef that references
ISignalToIPduMapping which references the ISignal) that references the
DataTransformation.
c(SRS_Xfrm_00002)
The name pattern for transformerId is not necessary from the technical point of
view to get the transformer working but defines a reliable pattern which simplifies the
understandability.
8.3.1 <Mip>_<transformerId>
[SWS_Xfrm_00036] d
Reentrancy: Reentrant
Parameters (in): dataElement Data element which shall be transformed
Parameters (in- None
out):
Parameters buffer Buffer allocated by the RTE, where the transformed
(out): data has to be stored by the transformer
bufferLength Used length of the buffer
Return value: uint8 0x00 (E_OK): Transformation successful 0x01 - 0xff:
Specific errors
Description: This function is the interface of the first transformer in a
transformer chain of Sender/Receiver communication.
where
• type is data type of the data element
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
• transformerId is the name pattern for the transformer specified in
[SWS_Xfrm_00062].
c(SRS_Xfrm_00002)
This function specified in [SWS_Xfrm_00036] exists on the sender side for each trans-
formed Sender/Receiver communication which uses transformation.
[SWS_Xfrm_00037] d The function <Mip>_<transformerId> specified in
[SWS_Xfrm_00036] shall exist for the first reference in the list of ordered references
transformer from a DataTransformation to a TransformationTechnology
if the DataTransformation is referenced by an ISignal in the role dataTrans-
formation where the ISignal references a SystemSignal which is referenced
by SenderReceiverToSignalMapping, a SenderRecRecordElementMapping
or a SenderRecArrayElementMapping. c(SRS_Xfrm_00002)
[SWS_Xfrm_00038] d
where
• type is data type of the data element
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
• transformerId is the name pattern for the transformer specified in
[SWS_Xfrm_00062].
c(SRS_Xfrm_00002)
Please note that both the IN and IN/OUT arguments of the ClientServerOpera-
tion which are transformed are IN arguments from the transformer’s point of view
because both are only read by the transformer and not written.
For the arguments of ClientServerOperation which are handed over to the
transformer as data_1, ..., data_n the requirements to API parameters stated in
chapter API Parameters of [5, SWS RTE] are valid (especially [SWS_Rte_01017],
[SWS_Rte_01018] and [SWS_Rte_05107]).
[SWS_Xfrm_00039] d The function <Mip>_<transformerId> specified in
[SWS_Xfrm_00038] shall exist for the first reference in the list of ordered refer-
ences transformer from a DataTransformation to a TransformationTech-
nology if the DataTransformation is referenced by an ISignal in the role
dataTransformation where the ISignal references a SystemSignal which
is referenced by ClientServerToSignalMapping in the callSignal or re-
turnSignal. c(SRS_Xfrm_00002)
[SWS_Xfrm_00040] d
where
• type is data type of the data element
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
• transformerId is the name pattern for the transformer specified in
[SWS_Xfrm_00062].
c(SRS_Xfrm_00002)
[SWS_Xfrm_00041] d The function <Mip>_<transformerId> specified in
[SWS_Xfrm_00040] shall exist for the non-first reference in the list of ordered refer-
ences transformer from a DataTransformation to a TransformationTech-
8.3.2 <Mip>_Inv_<transformerId>
[SWS_Xfrm_00042] d
where
• type is data type of the data element
Description: This function is the interface of the first transformer in a transformer chain of
Client/Server communication (this is the last executed transformer on the
receiving side!). It takes the operation arguments and optionally the return
value as input and outputs an uint8 array containing the transformed data.
where
• type is data type of the data element
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
• transformerId is the name pattern for the transformer specified in
[SWS_Xfrm_00062].
c(SRS_Xfrm_00002)
Please note that both the IN/OUT and OUT arguments of the ClientServerOpera-
tion which are transformed are OUT arguments from the transformer’s point of view
because both are only written by the transformer and not read.
For the arguments of ClientServerOperation which are handed over to the
transformer as data_1, ..., data_n the requirements to API parameters stated in
chapter API Parameters of [5, SWS RTE] are valid (especially [SWS_Rte_01019],
[SWS_Rte_07082] and [SWS_Rte_05108]).
[SWS_Xfrm_00045] d The function <Mip>_Inv_<transformerId> specified in
[SWS_Xfrm_00044] shall exist for the first reference in the list of ordered refer-
ences transformer from a DataTransformation to a TransformationTech-
nology if the DataTransformation is referenced by an ISignal in the role
dataTransformation where the ISignal references a SystemSignal which
is referenced by ClientServerToSignalMapping in the callSignal or re-
turnSignal. c(SRS_Xfrm_00002)
[SWS_Xfrm_00046] d
where
• type is data type of the data element
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
• transformerId is the name pattern for the transformer specified in
[SWS_Xfrm_00062].
c(SRS_Xfrm_00002)
[SWS_Xfrm_00047] d The function <Mip>_Inv_<transformerId> specified in
[SWS_Xfrm_00046] shall exist for the non-first reference in the list of ordered refer-
ences transformer from a DataTransformation to a TransformationTech-
nology if the DataTransformation is referenced by an ISignal in the role data-
Transformation. c(SRS_Xfrm_00002)
8.3.3 <Mip>_Init
[SWS_Xfrm_00058] d
where
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
c(SRS_BSW_00407, SRS_BSW_00411)
8.3.4 <Mip>_DeInit
[SWS_Xfrm_00059] d
Reentrancy: Reentrant
Parameters (in): None
Parameters (in- None
out):
Parameters None
(out):
Return value: None
Description: This service deinitializes the transformer.
where
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
c(SRS_BSW_00407, SRS_BSW_00411)
8.3.5 <Mip>_GetVersionInfo
[SWS_Xfrm_00057] d
where
• Mip is the Module Implementation Prefix of the transformer as defined in
[SWS_BSW_00102]
c(SRS_BSW_00407, SRS_BSW_00411)
9 Sequence diagrams
There are no sequence diagrams
10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into con-
tainers. In order to support the specification section 10.1 describes fundamentals. It
also specifies a template (table) you shall use for the parameter specification. We
intend to leave section 10.1 in the specification to guarantee comprehension.
Sectin 10.2 specifies the structure (containers) and the parameters of transformers.
Transformer are configured on system level in [3, System Template] and on software
component level in [6, Software Component Template]. Out of this information, a basic
EcuC of the transformer can be generated.
+container
XfrmImplementationMapping :
EcucParamConfContainerDef XfrmDemEventParameterRefs : Identifiable
+subContainer
EcucParamConfContainerDef DataTransformation
lowerMultiplicity = 1
upperMultiplicity = * lowerMultiplicity = 0
upperMultiplicity = 1
+transformerChain 1..*
{ordered}
Identifiable
TransformationTechnology
XfrmTransformationTechnologyRef :
+reference EcucForeignReferenceDef
AutosarDataPrototype
VariableDataPrototype
XfrmVariableDataPrototypeInstanceRef :EcucInstanceReferenceDef
+reference
destinationType = VARIABLE-DATA-PROTOTYPE
destinationContext = SW-COMPONENT-PROTOTYPE PORT-PROTOTYPE
lowerMultiplicity = 0
upperMultiplicity = 1
XfmTransformationBswModuleEntryRef :
EcucForeignReferenceDef
+reference ARElement
destinationType = BSW-MODULE-ENTRY AtpBlueprint
lowerMultiplicity = 0 AtpBlueprintable
upperMultiplicity = 1 BswModuleEntry
XfrmInvTransformerBswModuleEntryRef :
EcucForeignReferenceDef
+reference
destinationType = BSW-MODULE-ENTRY
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.1 XfrmGeneral
XfrmGeneral
No Included Containers
10.2.2 XfrmImplementationMapping
XfrmImplementationMapping
Included Containers
Container Name Multiplicity Scope / Depedency
XfrmDemEvent 0..1 Container for the references to DemEventParameter
ParameterRefs elements which shall be invoked using the API
Dem_ReportErrorStatus API in case the corresponding
error occurs. The EventId is taken from the referenced
DemEventParameter’s DemEventId value. The
standardized errors are provided in the container and
can be extended by vendor specific error references.
XfrmSignal 1 Reference to the signal in the system description that
transports the transformed data.
10.2.3 XfrmSignal
lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = 1
+subContainer
XfrmSignalChoice :EcucChoiceContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
+choice +choice
XfrmISignalRefChoice : XfrmISignalGroupRefChoice :
EcucParamConfContainerDef EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
+reference +reference
XfrmISignalRef : XfrmISignalGroupRef :
EcucForeignReferenceDef EcucForeignReferenceDef
FibexElement
ISignal
0..* +iSignal
FibexElement
ISignalGroup
«atpVariation,atpSplitable» «atpVariation,atpSplitable»
0..1 +comBasedSignalGroupTransformation
+dataTransformation 0..1
Identifiable
DataTransformation
XfrmSignal
Included Containers
Container Name Multiplicity Scope / Depedency
XfrmSignalChoice 1 Choice whether an ISignal or an ISignalGroup shall be
[XfrmISignalGroupRef referenced.
Choice, XfrmISignalRef
Choice]
XfrmSignalChoice
No Included Containers
XfrmISignalGroupRefChoice
No Included Containers
XfrmISignalRefChoice
Configuration Parameters
No Included Containers
10.2.4 XfrmDemEventParameterRefs
+destination
DemEventParameter :
EcucParamConfContainerDef
upperMultiplicity = 65535
lowerMultiplicity = 1
(from Dem)
XfrmDemEventParameterRefs
No Included Containers
Stereotypes: atpSplitable
Tags: atp.Splitkey=shortName
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,Collectable
Element,Identifiable,MultilanguageReferrable,PackageableElement,Referrable
Attribute Datatype Mul. Kind Note
argument SwServiceArg * aggr An argument belonging to this BswModuleEntry.
(ordered)
Stereotypes: atpVariation
Tags: vh.latestBindingTime=blueprintDerivation
Time
xml.sequenceOffset=45
Tags: xml.sequenceOffset=25
executionC BswExecutionC 1 attr Specifies the execution context which is required
ontext ontext (in case of entries into this module) or guaranteed
(in case of entries called from this module) for this
service.
Tags: xml.sequenceOffset=30
isReentran Boolean 1 attr Reentrancy from the viewpoint of function callers:
t
• 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
isSynchron Boolean 1 attr Synchronicity from the viewpoint of function
ous 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 ref 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
Tags: xml.sequenceOffset=35
Class BufferProperties
Package M2::AUTOSARTemplates::SystemTemplate::Transformer
Note Configuration of the buffer properties the transformer needs to work.
Base ARObject
Attribute Datatype Mul. Kind Note
bufferCom CompuScale 0..1 aggr If the transformer changes the size of the data, the
putation CompuScale can be used to specify a rule to
derive the size of the output data based on the
size of the input data.
headerLen Integer 1 attr Defines the length of the header (in bits) this
gth transformer will add in front of the data.
inPlace Boolean 1 attr If set, the transformer uses the input buffer as
output buffer.
Class ClientServerInterface
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note A client/server interface declares a number of operations that can be invoked on a
server by a client.
Tags: atp.recommendedPackage=PortInterfaces
Base ARElement,ARObject,AtpBlueprint,AtpBlueprintable,AtpClassifier,Atp
Type,CollectableElement,Identifiable,MultilanguageReferrable,Packageable
Element,PortInterface,Referrable
Attribute Datatype Mul. Kind Note
operation ClientServerOp 1..* aggr ClientServerOperation(s) of this
eration ClientServerInterface.
Stereotypes: atpVariation
Tags: vh.latestBindingTime=blueprintDerivation
Time
possibleErr ApplicationError * aggr Application errors that are defined as part of this
or interface.
Class ClientServerOperation
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note An operation declared within the scope of a client/server interface.
Base ARObject,AtpClassifier,AtpFeature,AtpStructureElement,Identifiable,Multilanguage
Referrable,Referrable
Attribute Datatype Mul. Kind Note
argument ArgumentDataP * aggr An argument of this ClientServerOperation
(ordered) rototype
Stereotypes: atpVariation
Tags: vh.latestBindingTime=blueprintDerivation
Time
possibleErr ApplicationError * ref Possible errors that may by raised by the referring
or operation.
Class ClientServerToSignalMapping
Package M2::AUTOSARTemplates::SystemTemplate::DataMapping
Note This element maps the ClientServerOperation to call- and return-SystemSignals. The
serialization is defined by the referenced SerializationTechnology.
Tags: atp.Status=draft
Base ARObject,DataMapping
Attribute Datatype Mul. Kind Note
callSignal SystemSignal 1 ref Reference to the callSignal to which the IN and
INOUT ArgumentDataPrototypes are mapped.
clientServe ClientServerOp 1 iref Reference to a ClientServerOperation, which is
rOperation eration mapped to a call SystemSignal and a return
SystemSignal.
lengthClien PositiveInteger 0..1 attr This attribute defines the length of the used client
tId identifier in bits. If the attribute does not exist or its
value is set to 0 this means that the client identifier
is not used.
lengthSeq PositiveInteger 0..1 attr The purpose of a sequence counter is to map a
uenceCou response to the correct request of a known client.
nter This attribute describes the length of the used
sequence counter in bits. If the attribute does not
exist or its value is set to 0 this means that the
sequence counter is not used.
returnSign SystemSignal 0..1 ref Reference to the returnSignal to which the OUT
al and INOUT ArgumentDataPrototypes are
mapped.
Tags: atp.Status=shallBecomeMandatory
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 Datatype Mul. Kind Note
executeDe Boolean 1 attr Specifies whether the transformer is executed
spiteDataU even if no input data are available.
navailabilit
y
transform Transformation 1..* ref
erChain Technology
(ordered)
Class DataTransformationSet
Package M2::AUTOSARTemplates::SystemTemplate::Transformer
Note This element is the system wide container of DataTransformations which represent
transformer chains.
Base ARElement,ARObject,CollectableElement,Identifiable,Multilanguage
Referrable,PackageableElement,Referrable
Attribute Datatype Mul. Kind Note
dataTransf DataTransforma * aggr This container consists of all transformer chains
ormation tion which can be used for transformation of data
communication.
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).
Tags: atp.recommendedPackage=ISignals
Base ARObject,CollectableElement,FibexElement,Identifiable,Multilanguage
Referrable,PackageableElement,Referrable
Attribute Datatype Mul. Kind Note
dataTransf DataTransforma 0..1 ref Optional reference to a DataTransformation which
ormation tion represents the transformer chain that is used to
transform the data that shall be placed inside this
ISignal.
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.
iSignalPro ISignalProps 0..1 aggr Additional optional ISignal properties that may be
ps stored in different files.
Stereotypes: atpSplitable
Tags: atp.Splitkey=iSignalProps
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.
Tags: atp.recommendedPackage=ISignalGroup
Base ARObject,CollectableElement,FibexElement,Identifiable,Multilanguage
Referrable,PackageableElement,Referrable
Attribute Datatype Mul. Kind Note
comBased DataTransforma 0..1 ref Optional reference to a DataTransformation which
SignalGrou tion represents the transformer chain that is used to
pTransfor transform the data that shall be placed inside this
mation ISignalGroup based on the
COMBasedTransformer approach.
Class ISignalToIPduMapping
Package M2::AUTOSARTemplates::SystemTemplate::Fibex::FibexCore::CoreCommunication
Note An ISignalToIPduMapping describes the mapping of ISignals to ISignalIPdus and
defines the position of the ISignal within an ISignalIPdu.
Base ARObject,Identifiable,MultilanguageReferrable,Referrable
Attribute Datatype Mul. Kind Note
iSignal ISignal 0..1 ref Reference to a ISignal that is mapped into the
ISignalIPdu.
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,AtpBlueprint,AtpBlueprintable,AtpClassifier,AtpType,Autosar
DataType,CollectableElement,Identifiable,MultilanguageReferrable,Packageable
Element,Referrable
Attribute Datatype Mul. Kind Note
dynamicAr String 0..1 attr Specifies the profile which the array will follow in
raySizePro case this data type is a variable size array.
file
subElemen Implementation * aggr Specifies an element of an arrray, struct, or union
t (ordered) DataTypeEleme data type.
nt
The aggregation of
ImplementionDataTypeElement is subject to
variability with the purpose to support the
conditional existence of elements inside a
ImplementationDataType representing a structure.
Stereotypes: atpVariation
Tags: vh.latestBindingTime=preCompileTime
symbolPro SymbolProps 0..1 aggr This represents the SymbolProps for the
ps ImplementationDataType.
Stereotypes: atpSplitable
Tags: atp.Splitkey=shortName
Class PPortPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note Component port providing a certain port interface.
Base ARObject,AbstractProvidedPortPrototype,AtpBlueprintable,AtpFeature,Atp
Prototype,Identifiable,MultilanguageReferrable,PortPrototype,Referrable
Attribute Datatype Mul. Kind Note
providedInt PortInterface 1 tref The interface that this port provides.
erface
Stereotypes: isOfType
Tags: xml.enforceMinMultiplicity=true;
xml.sequenceOffset=-100
Class SenderRecArrayElementMapping
Package M2::AUTOSARTemplates::SystemTemplate::DataMapping
Note The SenderRecArrayElement may be a primitive one or a composite one. If the
element is primitive, it will be mapped to the SystemSignal (multiplicity 1). If the
VariableDataPrototype that is referenced by SenderReceiverToSignalGroupMapping
is typed by an ApplicationDataType the reference to the ApplicationArrayElement
shall be used. If the VariableDataPrototype is typed by the ImplementationDataType
the reference to the ImplementationArrayElement shall be used.
Class SenderRecRecordElementMapping
Package M2::AUTOSARTemplates::SystemTemplate::DataMapping
Note Mapping of a primitive record element to a SystemSignal. If the
VariableDataPrototype that is referenced by SenderReceiverToSignalGroupMapping
is typed by an ApplicationDataType the reference applicationRecordElement shall be
used. If the VariableDataPrototype is typed by the ImplementationDataType the
reference implementationRecordElement shall be used. Either the
implementationRecordElement or applicationRecordElement reference shall be
used.
Class SenderReceiverInterface
Package M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
Note A sender/receiver interface declares a number of data elements to be sent and
received.
Tags: atp.recommendedPackage=PortInterfaces
Base ARElement,ARObject,AtpBlueprint,AtpBlueprintable,AtpClassifier,Atp
Type,CollectableElement,DataInterface,Identifiable,Multilanguage
Referrable,PackageableElement,PortInterface,Referrable
Attribute Datatype Mul. Kind Note
dataEleme VariableDataPr 1..* aggr The data elements of this
nt ototype SenderReceiverInterface.
invalidation InvalidationPolic * aggr InvalidationPolicy for a particular dataElement
Policy y
Class SenderReceiverToSignalMapping
Package M2::AUTOSARTemplates::SystemTemplate::DataMapping
Note Mapping of a sender receiver communication data element with a primitive datatype
to a signal.
Base ARObject,DataMapping
Attribute Datatype Mul. Kind Note
dataEleme VariableDataPr 1 iref Reference to the data element, which ought to be
nt ototype sent over the Communication bus.
systemSig SystemSignal 1 ref Reference to the system signal used to carry the
nal data element.
Class SwComponentPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Composition
Note Role of a software component within a composition.
Base ARObject,AtpFeature,AtpPrototype,Identifiable,MultilanguageReferrable,Referrable
Attribute Datatype Mul. Kind Note
type SwComponentT 1 tref Type of the instance.
ype
Stereotypes: isOfType
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,Multilanguage
Referrable,PackageableElement,Referrable
Attribute Datatype Mul. Kind Note
dynamicLe Boolean 1 attr The length of dynamic length signals is variable in
ngth run-time. Only a maximum length of such a signal
is specified in the configuration (attribute length in
ISignal element).
physicalPr SwDataDefProp 0..1 aggr Specification of the physical representation.
ops s
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 Datatype Mul. Kind Note
bufferProp BufferProperties 1 aggr Aggregation of the mandatory BufferProperties.
erties
needsOrigi Boolean 0..1 attr Specifies whether this transformer gets access to
nalData the SWC’s original data.
protocol String 1 attr Specifies the protocol that is implemented by this
transformer.
Stereotypes: atpVariation
Tags: vh.latestBindingTime=PostBuild
transforme TransformerCla 1 attr Specifies to which transformer class this
rClass ssEnum transformer belongs.
version String 1 attr Version of the implemented protocol.
Class VariableDataPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::DataPrototypes
Note A VariableDataPrototype is used to contain values in an ECU application. This means
that most likely a VariableDataPrototype allocates "static" memory on the ECU. In
some cases optimization strategies might lead to a situation where the memory
allocation can be avoided.