AA Design Tutorial
What You Build
This tutorial builds an Adaptive Application design that runs on one HPC, starting from a PAIO window with no project open and using only the PAIO screens. In the System editor of the project AADesign you place one HPC node Ecu, and the composition HPC is mapped onto it. The composition contains five Adaptive Applications: Sensor, Fusion, Actuator, CM and EM. Sensor provides the service interface Sensor as a SOME/IP service (service ID 11), and Fusion and Actuator consume that service. The five processes start when bound to states of the machine's function group MachineFG, and Sensor, Fusion and Actuator start after the CM process reaches Running. Each process logs as a DLT application. In the last chapter you export this design to five ARXML files without a single validation error.
The target of the design is the reference design EM_Arxml. There are three places where this tutorial departs from the reference design on purpose. First, the EM process of the reference design is not bound to any function group state, but PAIO validation rejects that shape, so this tutorial binds EM to MachineFG : Startup. Second, in the reference design only CM and EM use RootSwComponent as the ROOT SWC PROTOTYPE, while this tutorial keeps the default AA for all five. Third, the machine gets a State Management module SM (MAX-ACTION-LIST-DURATION 1000) to clear constr_10641; the reference design has no such module. The full list is in the Appendix.
| Element | Name | Content |
|---|---|---|
| Machine | Ecu | HPC node in the System editor. OS POSIX, processor CPU, cores Core0 to Core3, function group MachineFG, DLT ECU ID ECU1 |
| Composition | HPC | Mapped onto the node Ecu. Holds the five Adaptive Applications and two assembly connectors |
| Network | eth0 | Ethernet connector. Unicast 127.0.0.1, SD multicast 224.0.0.1:30490, UDP ports 20001, 20002, 20003 |
| Service interface | Sensor | Event SensorData (ByteArray), method Calculation (five float32 arguments) |
| SOME/IP service | Sensor | Service ID 11, provider Provider_Sensor, consumers Actuator_Sensor, Fusion_Sensor |
| Adaptive Application | Role | Port | DLT application ID |
|---|---|---|---|
Sensor | Provides the service Sensor | P port Sensor | SENS |
Fusion | Consumes the service Sensor | R port Sensor | FUSN |
Actuator | Consumes the service Sensor | R port Sensor | ACTA |
CM | Communication management. The other three processes wait for this process to reach Running | None | CM |
EM | Execution management | None | EM |
What You Need
- PAIO must be installed and able to run.
- You start from a PAIO window with no project open. You do not need another tutorial or an example project.
- The screenshots in this tutorial were captured on a 1920×1080 screen. The dialogs are wide, so a screen of that size or larger is recommended.
- The ARXML is exported and checked against the AUTOSAR schema
R25-11. - A rough idea of Adaptive Applications, service interfaces and SOME/IP on the AUTOSAR Adaptive Platform is enough. Each chapter shows step by step what to enter on which PAIO screen.
Chapters
Each chapter starts from the result of the previous one, so follow them in order.
| Chapter | Title | Editor used | What you end up with |
|---|---|---|---|
| 1 | Creating the Project and the HPC Machine | System editor, VFB, Machine Configuration | The project AADesign, the node Ecu, the composition HPC [Ecu] and the machine saved with its defaults. One validation error constr_10641 |
| 2 | Configuring the Machine | Machine Configuration | OS POSIX, four cores, ECU ID ECU1, MAX ACTION LIST DURATION 1000. No validation issues. |
| 3 | Topology — the Ethernet Connector and Endpoints | System editor, Communication Cluster Configuration | The controller, the connector eth0, the cluster EthernetCluster with NM off, the endpoints and three UDP ports |
| 4 | Data Types | DataType | ByteArray, String |
| 5 | The Service Interface | Interface | The service interface Sensor |
| 6 | SOME/IP Deployment and Service Instances | Interface | The deployment Sensor (service ID 11) and the instances Provider_Sensor, Actuator_Sensor, Fusion_Sensor |
| 7 | Binding Service Instances to the Connector | System editor | Three instances bound to the connector eth0 with their UDP ports |
| 8 | Adaptive Applications and Ports | VFB | Five Adaptive Applications, three ports, two assembly connectors |
| 9 | Executables and Processes | AA Internal Behavior, Machine Configuration | Five Executables, five Processes, startup timeouts, function group states, execution dependencies |
| 10 | Service Instance Mapping | AA Internal Behavior | Three mappings between ports and service instances |
| 11 | Logging and DLT | AA Internal Behavior, Machine Configuration | Five DLT applications, three DLT contexts |
| 12 | Validation | VALIDATION panel, AA Internal Behavior, VFB | Three planted defects fixed, back to No validation issues. |
| 13 | Exporting the ARXML | EDITOR view, XML editor | Five ARXML files in the export folder and how they differ from the reference design |
| 14 | Appendix | — | A checklist of the finished design, all value tables, the file layout, the differences from the reference design, common problems |
How to Read This Tutorial
- Every chapter follows the same order. "What You Will Do" states the goal, and "Before You Begin" shows the starting state and the values you enter in that chapter as a table. Numbered steps with a screenshot per step follow.
- Repetitive work is shown as a procedure for one representative item only. For example, of the five Adaptive Applications you follow
Sensorfrom start to finish, and the rest are given as a value table. You enter the table items yourself in the same way. - Every chapter ends with a "Checklist". It lists what the screen must show. When every item matches, move on to the next chapter.
- "Why Is It Designed This Way?" briefly explains why the values are what they are, compared with the reference design.
- UI labels are written in bold exactly as the screen shows them, and model element names and values in
code.
Your Export Differs from the Reference Design
The ARXML you build with this tutorial has the same design content as the reference design files EM_Test_*.arxml, but the files are not byte-for-byte identical. Every difference has a known reason: defects left in the reference design files, the naming rules of the PAIO exporter, elements PAIO adds on its own, values this tutorial changes on purpose (such as binding EM to Startup), and values that have no field on the PAIO screens. See Exporting the ARXML for the full list with reasons, and the Appendix for a summary.
Next Step
Start with Creating the Project and the HPC Machine.