Skip to main content

Appendix

What You Will Do​

This appendix is reference material, not a chapter you follow along with. Use it after finishing Exporting the ARXML to review your design, or to find again which value you entered in which chapter.

  • Checklist of the finished design — what the screen must show in a design finished through chapter 13
  • All value tables — every value entered in chapters 1 to 11
  • Project file layout — the files under design/ and the chapters that write them
  • Differences from the reference design — where your export differs from the reference design EM_Test_*.arxml, and why
  • Common problems — validation messages and symptoms, and the chapter that fixes each

Before You Begin​

  • The values in this appendix are the same as in the bodies of chapters 1 to 13. If a value looks different, follow the body of that chapter.
  • The finished design is the state after Validation. The VALIDATION panel shows No validation issues..

Checklist of the Finished Design​

The Machine Ecu​

  • The VFB root canvas has the composition HPC [Ecu], and clicking the machine icon at the right of its header opens the Machine Configuration [HPC] dialog.
  • In the MACHINE tab, OS is POSIX, PROCESSOR is CPU, the CORE table has four rows from Core0 / 0 to Core3 / 3, TRUSTED PLATFORM is NO SUPPORT and REFERENCED HPC is HPC Ecu.
  • The FUNCTION GROUP tab has one function group MachineFG with the modes Off, Startup, Shutdown, Restart and Verify.
  • ECU ID under MODULE › Log and Trace is ECU1, and MAX ACTION LIST DURATION under MODULE › State Management › ACTION ITEMS is 1000 with the unit s.
  • The PROCESSES tab lists the five processes Sensor, Fusion, Actuator, CM and EM, and the EXECUTION DEPENDENCY graph has three Running arrows from CM to Sensor, Fusion and Actuator.

Topology​

  • The CONTROLLER of the connector eth0 is Ecu_EthernetController and its CONNECTED CHANNEL is EthernetCluster / PhysicalChannel.
  • NETWORK ENDPOINT is 127.0.0.1 / FIXED, with the multicast 224.0.0.1 / 30490.
  • APPLICATION ENDPOINTS has only the three cards UDP eth0, 127.0.0.1:20001, :20002 and :20003.
  • SERVICE INSTANCES has Provider_Sensor UDP:20003, Actuator_Sensor UDP:20001 and Fusion_Sensor UDP:20002.
  • In Communication Cluster Configuration [EthernetCluster], the tabs NM CLUSTER and TIME DOMAIN have a hollow dot in front of their names.

Data Types, Interface and SOME/IP​

  • The list in the DataType editor has 15 entries: the 11 primitives, the 2 pointer types VoidPtr and ConstVoidPtr, ByteArray [DYNAMIC_ARRAY] and String [STRING].
  • Sensor in the SERVICE tab of the Interface editor has the event SensorData ByteArray and the method Calculation (five arguments).
  • The summary of the card SOME/IP Sensor in SOA DEPLOYMENT is SERVICE ID = 0x000B VERSION 1.0 EVENTS = 1 METHODS = 1, with the provider Provider_Sensor 0x0001 and the consumers Actuator_Sensor and Fusion_Sensor 0xFFFF (ANY).

Adaptive Applications​

  • The composition HPC contains Sensor, Fusion, Actuator, CM and EM, and each node has the same NAME and AS PROTOTYPE.
  • All three ports are named Sensor with PORT INTERFACE Service: Sensor, and the connectors Assembly_Sensor_Fusion and Assembly_Sensor_Actuator exist.
  • The EXECUTION tab of each AA Internal Behavior dialog has one process card, and there is no MachineFG : Off row anywhere.
  • The mapping boxes of Sensor, Fusion and Actuator are Sensor/AA/Sensor, Fusion/AA/Sensor and Actuator/AA/Sensor, and CLIENT ID is 0x2 for Fusion and 0x1 for Actuator.
  • The APPLICATION ID values in LOG CONFIG are SENS, FUSN, ACTA, CM and EM, and the first three have the DLT contexts SENS : INFO, FUSN : INFO and ACTA : INFO.

Validation and Export​

  • The VALIDATION panel shows No validation issues., and there is no badge next to the panel title or on the footer V icon.
  • The export folder has the five files AADesign_COM.arxml, AADesign_DataType.arxml, AADesign_Interface.arxml, AADesign_SWC.arxml and AADesign_System.arxml, and the status bar of the XML editor shows ✓ No problems.
  • No tab or dialog carries the modified mark ●.

The frame HPC after applying Auto Layout and saving

Figure 14-1. The composition HPC of the finished design (Figure 8-12 in Adaptive Applications and Ports). The left column holds CM, EM, Actuator and Fusion from top to bottom, and Sensor is on the right. ① The P port of Sensor, ② the R port of Fusion, ③ the R port of Actuator. The positions of nodes and ports depend on the Auto Layout result and are not design values.

All Value Tables​

Project and Machine (Chapters 1 and 2)​

ItemValueChapter
Project nameAADesign1
HPC node name in the System editorEcu1
Composition NAME / AS PROTOTYPEHPC / HPC1
MappingNode Ecu › SW Mapping › HPC1
OSPOSIX2
TRUSTED PLATFORMNO SUPPORT (default)1
PROCESSORCPU (default)1
CORE / CORE IDCore0 / 0, Core1 / 1, Core2 / 2, Core3 / 32
Function groupMachineFG (default, unchanged)1
GROUP NAME / INITIAL MODEMachineState / Off1
Mode declarationsOff, Startup, Shutdown, Restart, Verify1
Log and Trace › ECU IDECU12
State Management › MAX ACTION LIST DURATION1000 s2

Topology (Chapter 3)​

ElementItemValue
Ethernet controllerNAMEEcu_EthernetController
Ethernet connectorNAME / CONTROLLEReth0 / Ecu_EthernetController
Communication clusterNAMEEthernetCluster
Physical channelCHANNEL NAME / VLAN IDPhysicalChannel (default) / empty
Network endpointUNICAST IPV4 ADDRESS / ADDRESS SOURCE127.0.0.1 / FIXED
MulticastMULTICAST IPV4 ADDRESS / MULTICAST PORT224.0.0.1 / 30490
Application endpointsTYPE UDP, PORT NUMBER20001, 20002, 20003
Endpoint names (automatic)—Ecu_eth0_UDP_20001, Ecu_eth0_UDP_20002, Ecu_eth0_UDP_20003
Communication Cluster Configuration [EthernetCluster]NM CLUSTER, TIME DOMAIN tabsDisabled (default, left as is)

Data Types (Chapter 4)​

TypeCATEGORYELEMENT TYPEMAX SIZEC++ NAMESPACE
ByteArrayDYNAMIC_ARRAYuint81aa::type
StringSTRING—256aa::type

The 11 primitives (boolean, float32, float64, sint8, sint16, sint32, sint64, uint8, uint16, uint32, uint64) and the 2 pointer types VoidPtr and ConstVoidPtr are built-in types, so you do not enter them.

Service Interface (Chapter 5)​

ElementValue
Service interfaceSensor, C++ NAMESPACE sensor::service, MAJOR VERSION 1, MINOR VERSION 0
EventSensorData, TYPE ByteArray
MethodCalculation, METHOD TYPE REQUEST AND RESPONSE
Arguments 1 to 4IN float32 front, rear, left, right
Argument 5OUT float32 result
FieldsNone

SOME/IP Deployment and Service Discovery (Chapter 6)​

ElementValue
DeploymentSensor, SERVICE ID 11 (0x000B), MAJOR VERSION 1 / MINOR VERSION 0
Event deploymentSensorData, EVENT ID 1, TRANSPORT UDP
Method deploymentCalculation, METHOD ID 1, TRANSPORT UDP
Event groupEventgroup_SensorData, EVENTGROUP ID 1, EVENTS SensorData
ProviderProvider_Sensor, INSTANCE ID 1
ConsumersActuator_Sensor, Fusion_Sensor, REQUIRED INSTANCE ID ANY (model value 65535)
Provider event groupMULTICAST THRESHOLD UNICAST (0)
SD fieldDefaultEntered valueProvider (SD SERVER CONFIG)Consumers (SD CLIENT CONFIG)
INITIAL DELAY MIN10 ms10 usEnteredEntered
INITIAL DELAY MAX100 ms100 usEnteredEntered
REPETITION BASE DELAY200 ms200 usEnteredEntered
REPETITION MAX3UnchangedDefaultDefault
OFFER CYCLIC DELAY500 ms1 msEnteredNo field
TTL0xFFFFFFUnchangedDefaultDefault
REQUEST RESPONSE DELAY MIN / MAX0 s / 0 sUnchangedDefaultNo field

Connector Binding (Chapter 7)​

InstanceRoleUDP PORTTCP PORT
Provider_SensorProvider (P)20003Left empty
Actuator_SensorConsumer (C)20001Left empty
Fusion_SensorConsumer (C)20002Left empty

All three instances are bound to the connector eth0, and IP ADDRESS is filled in automatically with 127.0.0.1.

Adaptive Applications, Ports and Connectors (Chapter 8)​

Adaptive ApplicationNAME = AS PROTOTYPEPortPort NAMEPORT INTERFACE
SensorSensorPPortSensorService: Sensor
FusionFusionRPortSensorService: Sensor
ActuatorActuatorRPortSensorService: Sensor
Communication managementCMNone——
Execution managementEMNone——
ConnectorProvider sideRequester side
Assembly_Sensor_FusionSensor / SensorFusion / Sensor
Assembly_Sensor_ActuatorSensor / SensorActuator / Sensor

Executables and Processes (Chapter 9)​

All five Executables keep their prefilled values.

LabelValue
NAMEThe Adaptive Application name
ROOT SWC PROTOTYPEAA
CATEGORYAPPLICATION (APPLICATION_LEVEL in the file)
BUILD TYPEEmpty
REPORTING BEHAVIORREPORTS-EXECUTION-STATE
VERSION1.0.0
MINIMUM TIMER GRANULARITYEmpty
Process NAMEENTER TIMEOUT / EXIT TIMEOUTFUNCTION GROUP STATEEXECUTION DEPENDENCY
CM1 / 1 s (default)MachineFG : Startup, MachineFG : Shutdown, MachineFG : Restart, MachineFG : VerifyNone
Sensor5 / 5 sMachineFG : StartupCM : Running
Fusion5 / 5 sMachineFG : StartupCM : Running
Actuator5 / 5 sMachineFG : StartupCM : Running
EM0 / 0 sMachineFG : StartupNone

All five processes keep the defaults SCHEDULING POLICY SCHED_OTHER, SCHEDULING PRIORITY 0, CPU USAGE 0, MEM USAGE 0 B and TERMINATION BEHAVIOR PROCESS-IS-NOT-SELF-TERMINATING. CORE AFFINITY is left unchecked. Create and save CM first, so that CM can be chosen in the EXECUTION DEPENDENCY of the other processes.

Service Instance Mapping (Chapter 10)​

SensorFusionActuator
PORTSensor (P)Sensor (R)Sensor (R)
SERVICE INSTANCEProvider_Sensor (SOME/IP)Fusion_Sensor (SOME/IP)Actuator_Sensor (SOME/IP)
CLIENT IDNo field2 → 0x21 → 0x1
INSTANCE SPECIFIERSensor/AA/SensorFusion/AA/SensorActuator/AA/Sensor
PROCESS (automatic)SensorFusionActuator
Read-back INSTANCE ID0x00010xFFFF0xFFFF
Read-back ENDPOINT127.0.0.1:20003127.0.0.1:20002127.0.0.1:20001
Saved name (automatic)Sensor_AA_SensorFusion_AA_SensorActuator_AA_Sensor

CM and EM have no ports, so they are not mapped. The read-back SERVICE ID and VERSION are 0x000B and 1.0 for all three.

Logging and DLT (Chapter 11)​

ProcessAPPLICATION IDDEFAULT LOG LEVELLOG MODEDLT CONTEXTS (CONTEXT ID : LOG LEVEL)
SensorSENSVERBOSECONSOLESENS : INFO
FusionFUSNVERBOSECONSOLEFUSN : INFO
ActuatorACTAVERBOSECONSOLEACTA : INFO
CMCMFATALCONSOLENone
EMEMFATALCONSOLENone

The DLT applications are gathered under the DLT ECU ECU1 entered in Configuring the Machine. APPLICATION DESCRIPTION and CONTEXT DESCRIPTION are left empty.

Project File Layout​

The files of a project finished through chapter 13 are listed below. The right column names the chapters that create or change each file.

AADesign/
├── AADesign.io.prj
├── design/
│ ├── DATATYPE.io.model Chapter 4
│ ├── INTERFACE.io.model Chapter 5
│ ├── IVC.io.model Chapters 1, 3, 7
│ ├── SERVICE.io.model Chapter 6
│ ├── SYSTEM.io.model Chapter 1
│ ├── VFB.io.model Chapters 1, 8
│ ├── Module/
│ │ └── Machine/
│ │ └── Ecu.machine.io.model Chapters 1, 2
│ └── SWC/
│ ├── AdaptiveApplication/
│ │ ├── Actuator.swc.io.model Chapters 8 to 11
│ │ ├── CM.swc.io.model Chapters 8, 9, 11
│ │ ├── EM.swc.io.model Chapters 8, 9, 11
│ │ ├── Fusion.swc.io.model Chapters 8 to 11
│ │ └── Sensor.swc.io.model Chapters 8 to 11
│ ├── Composition/
│ │ ├── HPC.swc.io.model Chapters 1, 8
│ │ └── System.swc.io.model Chapter 1
│ └── Layout/
│ ├── HPC.vfb.layout Chapter 8
│ └── System.vfb.layout Chapter 1
└── export/
├── AADesign_COM.arxml Chapter 13
├── AADesign_DataType.arxml Chapter 13
├── AADesign_Interface.arxml Chapter 13
├── AADesign_SWC.arxml Chapter 13
└── AADesign_System.arxml Chapter 13
  • The machine file name Ecu.machine.io.model follows the name of the HPC node Ecu in the System editor. There is no field for the machine name.
  • A *.vfb.layout file holds only the view state, that is, the positions of nodes and ports. It is not exported to ARXML.
  • The project folder also has the folders doc, code, workflow and import. This tutorial does not use them.
  • In a project built by following the screens, saving in SOME/IP Deployment and Service Instances also creates design/SIGNAL.io.model and adds Sensor_SR and Sensor_CS to INTERFACE.io.model. These are Classic Platform elements that the Interface editor derives automatically from the SOME/IP deployment, and they are not part of the design this tutorial builds by hand.

Differences from the Reference Design​

Your export has the same design content as the reference design files EM_Test_*.arxml. The service interface, the SOME/IP deployment and instances, the service discovery configuration, the endpoints, the five Adaptive Applications and their ports, the connectors, the Executables, the startup configuration values of the Processes, the execution dependencies, the service instance mappings, the DLT applications and ECU, the data types and the system mapping are all the same. AADesign_Interface.arxml is byte-for-byte identical to EM_Test_Interface.arxml.

Reference designYour export
Elements with a name (packages included)245289
Elements with the same path and the same values and references204204
Elements with the same path but different values or references2323
Elements moved to another package66
Elements renamed in the same place66
Elements only in the reference design6—
Elements only in your export—50

The differences are listed below. The line numbers and the reason for each element are in the section "How Your Export Differs from the Reference Files" of Exporting the ARXML.

Deliberate Departures in This Tutorial​

DifferenceReasonChapter
The EM process is bound to MachineFG : Startup. The PROCESS EM of the export has one more FUNCTION-GROUP-STATE-IREFThe EM of the reference design has no function group state, but PAIO validation rejects that shape with The process "EM" declares no functionGroupState; at least one is required.9, 12
ROOT SWC PROTOTYPE is AA for all fiveIn the reference design only CM and EM use RootSwComponent. Only the name differs; the design content is the same9
An extra STATE-MANAGEMENT-MODULE-INSTANTIATION SM (MAX-ACTION-LIST-DURATION 1000)The value entered to clear constr_10641. The reference design has no state management module2

PAIO Naming Rules​

DifferenceContent
DLT-CONTEXT names…/SENS/SENS becomes …/SENS/DltContext_0 (the same for FUSN and ACTA). The CONTEXT-ID values are unchanged
Machine package and nameMACHINE HPCMachine in the package /Machine/HPCMachine becomes Ecu and sits directly in the package /Machine, and the machine's function group and process mappings sit under /MachineConfig/Ecu. PAIO names the machine after the HPC node
Module nameLOG-AND-TRACE-INSTANTIATION Log becomes LOG
System mapping nameSwMapping_HPC_to_HPC becomes SwMapping_HPC_to_Ecu
Resource groupsInstead of one shared RESOURCE-GROUP ResourceGroup, each process gets its own group, Sensor_ResourceGroup … EM_ResourceGroup (CPU-USAGE 0, MEM-USAGE 0)
The type StringSTD-CPP-IMPLEMENTATION-DATA-TYPE has an extra ARRAY-SIZE 256, and APPLICATION-PRIMITIVE-DATA-TYPE has an extra SW-TEXT-PROPS
Variable-size arraysThe CP-side mirrors IMPLEMENTATION-DATA-TYPE ByteArray and String and the APPLICATION-ARRAY-DATA-TYPE ByteArray come out in PAIO's variable-size array form: DYNAMIC-ARRAY-SIZE-PROFILE is VSA_LINEAR, and the array size sits on the element one level deeper. The sizes 1 and 256 are the same

Elements PAIO Adds on Its Own​

ElementContentChapter
ETHERNET-COMMUNICATION-CONTROLLER Ecu_EthernetController and the connector's COMM-CONTROLLER-REFThe result of creating the controller and choosing it as the connector's CONTROLLER3
SW-BASE-TYPE void, IMPLEMENTATION-DATA-TYPE VoidPtr and ConstVoidPtrThe two built-in pointer types and their base type. PAIO writes them into every export, like the primitive types. This design does not use them4
SOMEIP-SD-CLIENT-EVENT-GROUP-TIMING-CONFIG SdEventgroupConfig_Actuator_Sensor_Eventgroup_SensorData, SdEventgroupConfig_Fusion_Sensor_Eventgroup_SensorDataThe subscription timing of each consumer's event group, with the defaults left on the consumer cards. The event groups of the reference design refer to these two names, but the reference design does not define them6
The function group MachineFG (Ecu_FunctionGroup) and 8 MODE-TRANSITION elementsThe machine's default function group and its default transitions1, 2
PROCESS-TO-MACHINE-MAPPING-SET Ecu_ProcessToMachineMapping and five mappingsThe result of the five processes being placed on the machine Ecu. They appear even without any core checked9
The modules without values NM, TIME_SYNC, CRYPTO, IDSM, VUCM, UCMModules the machine configuration screen creates in advance1

Values with No Field on Screen​

ValueResult
The SHORT-NAME of a DLT contextThere is no field for it, so it becomes DltContext_0
The machine name and WAIT-FOR-SHUTDOWN 1The machine name follows the node name Ecu, and WAIT-FOR-SHUTDOWN does not appear in the export
REQUEST-TIMEOUT 10, ALIVE-CHECK-INTERVAL 0 and MAX-DATA-BYTES 0 of the Communication Management moduleThe module screen offers only the sub-tabs ACCESS CONTROL and IPC and no field for these values, so the export has a CM-MODULE-INSTANTIATION CM with only LOCAL-COM-ACCESS-CONTROL-ENABLED false and REMOTE-ACCESS-CONTROL-ENABLED false
The RESOURCE-GROUP-REF of a processThe OS value POSIX of the machine configuration screen is exported as the OS-MODULE-INSTANTIATION element, but the exporter writes this reference only when the machine's module list (the MODULE tab) has an OS module entry. The module list the machine configuration screen creates in advance has no OS module entry

Defects on the Reference Design Side​

DifferenceContent
MACHINE-DESIGN HPCThe reference design splits the machine design into Ecu and an empty HPC. The tutorial attaches both to the one node Ecu
Reference paths of PROCESSThe execution dependency and function group state paths of the reference design cannot be found in its five files. Every path in your export can be found in the same file
FIBEX-ELEMENTS of SYSTEMThe 3 of the reference design (MACHINE-DESIGN Ecu, MACHINE-DESIGN HPC, ETHERNET-CLUSTER) become 2 (MACHINE-DESIGN Ecu, ETHERNET-CLUSTER). The missing one is the empty MACHINE-DESIGN HPC of the first row
CONTEXT-ROOT-SW-COMPONENT-PROTOTYPE-REF of the three service instance mappingsThe reference design has /Executable/<name>/AA, one level short, which names no element. Your export has /Executable/<name>/<name>/AA, the root prototype AA of each Executable
MACHINE-DESIGN-REF of the MACHINEThe reference design has /System/VehicleTopology/Ecu/Ecu, which names no element in its five files. Your export points at the MACHINE-DESIGN Ecu of the COM file (/System/MachineDesign/Ecu)

Common Problems​

Symptom or validation messageCauseFixChapter
State-Management module "SM" of machine "Ecu" is missing maxActionListDuration. (constr_10641)The State Management module SM that the machine dialog adds by default has no value. This one finding is expected at the end of chapter 1Enter 1000 in MAX ACTION LIST DURATION under MODULE › State Management › ACTION ITEMS and press Ctrl+S inside the dialogConfiguring the Machine
The DLT application-id "SENS" truncates to "SENS" and collides with "SENS" (Sensor). and its paired row … (Fusion).Two processes have the same APPLICATION ID. Each of the two colliding applications gets a row, and the parentheses name the other oneClick the row, change APPLICATION ID in LOG CONFIG so that all five differ (FUSN and so on) and press Ctrl+SLogging and DLT, Validation
The process "EM" declares no functionGroupState; at least one is required.The process has no FUNCTION GROUP STATE rowClick the row, create a row with the + button, choose the state Startup and press Ctrl+SExecutables and Processes, Validation
"Sensor" of "Sensor": referenced port interface "SensorIf" not found.The port points to an interface name that does not exist. The properties panel shows Referenced item not foundClick the row, choose Service: Sensor in PORT INTERFACE and press Ctrl+S. The connector lines are drawn again after you close and reopen the VFB tabAdaptive Applications and Ports, Validation
Clicking the machine icon does not open the Machine Configuration dialogThe VFB tab was already open before the mappingClose the VFB tab and click VFB under DESIGN in the EDITOR view againCreating the Project and the HPC Machine
Values entered in a dialog are not savedOnly Close was pressedPress Ctrl+S inside the dialog, then press CloseCreating the Project and the HPC Machine, Configuring the Machine
Several SD fields were changed but only the last one remainsChanging SD fields of the same card one after another resets the earlier fields to their defaultsAfter each value press Tab and click Sensor in the INTERFACES list againSOME/IP Deployment and Service Instances
The execution dependency of Fusion or Actuator is entered as Sensor : RunningThe default of a new row is the first process in the listExpand the row and choose CM in PROCESSExecutables and Processes
CM is missing from the PROCESS list of EXECUTION DEPENDENCYThe CM process has not been saved yetCreate CM first and save it with Ctrl+SExecutables and Processes
A prototype name stays Composition_0 or AdaptiveApp_0_0Changing NAME does not change AS PROTOTYPEEnter the same name in both fields separately. If the composition HPC already has its connectors, check their names afterwards (next row)Creating the Project and the HPC Machine, Adaptive Applications and Ports
The connectors are named Assembly_Sensor_Sensor_Fusion_Sensor and Assembly_Sensor_Sensor_Actuator_SensorThese are the default names the editor gives new assembly connectorsClick each line, change NAME in the ASSEMBLY panel to Assembly_Sensor_Fusion and Assembly_Sensor_Actuator respectively, and press Ctrl+SAdaptive Applications and Ports

Checklist​

  • Every item of "Checklist of the Finished Design" matches.
  • The values in "All Value Tables" match the values on the screens of your design.
  • The files under design/ match "Project File Layout".
  • The only differences between your export and the reference design are those in "Differences from the Reference Design".

Next Step​

To change the design, go back to the chapter concerned, change the value, then follow Validation and Exporting the ARXML again. To start over, return to the AA Design Tutorial.