-
Notifications
You must be signed in to change notification settings - Fork 170
Home
Welcome to the Adaptive Runtime AUTOSAR Linux Simulator wiki! The project wiki consists of sections related to the project goal, the project scope and its alignment with the AUTOSAR Adaptive standard, and the project timeline. The aim of this project is to provide students/researchers in the automotive engineering a big picture of Adaptive Runtime AUTOSAR and an overview about how its interfaces should be implemented. This repository does not rely on any hardware requirement (e.g., an ECU emulator), but it is able to interact with some hardware interfaces (i.e., CAN bus and Ethernet).
The project does not cover fully the AUTOSAR Adaptive standard. Following table indicates the different domains of the standard, and the project compatibility with each domain:
An Adaptive Application to interact with Extended Vehicle RESTful API is part of the scope.
Partially implemented based on R20-11 and R22-11:
-
E2E communication protection (
ara::com::e2e
) is limited to Profile11 based on R22-11. -
Raw data streaming (
ara::com::raw
) is out of scope. -
Communication Group (
ara::com::cg
) is not fully implemented yet. -
Network binding is limited to SOME/IP (Signal-Based and DDS network bindings are out of scope):
-
SOME/IP Service Discovery (SD) only supports IPv4 endpoints.
-
Network link status change is not simulated in the SD finite state machine (FSM).
-
SD Client Requested_but_not_read state is removed from the FSM.
-
The
ara::com::someip::sd
andara::com::someip::pubsub
namespaces and their sub-namespaces are not part of the official standard.
-
-
Secure Onboard Communication (
ara::com::secoc
) is out of scope.
Out of scope (Obsolete in R21-11)
Out of scope
Interfaces are partially defined based on R21-11 and the functional cluster (DM) is able to communicate with OBD-II, UDS, and DoIP.
The scope of the State Management (SM) is limited to the initialization of the Machine Function Group (Machine FG). The State Management development is based on R21-11.
Out of scope
Partially implemented based on R22-11:
-
Alive Supervision is implemented.
-
Deadline Supervision is implemented.
-
Logical Supervision is out of scope.
The Log & Trace is mostly implemented based on R20-11:
-
Log sinks are limited to console and file sinks (network sink is out of scope).
-
The
ara::log::sink
namespace is not part of the official standard. -
Current implementation does not support hexadecimal format, binary format, and
ClientState
logging.
Out of scope
It is barely implemented partly based on R21-11 and partly based on R20-11. The implementation scope is as follows:
Data type | Implementation revision | Compatibility | Replaced alternative |
---|---|---|---|
ErrorDomain |
R21-11 | Lacking SupportData
|
- |
ErrorCode |
R21-11 | Lacking SupportData
|
- |
Exception |
- | - | std::exception |
Result |
R20-11 | Incompatible noexcept specifiers, dedicated specialized global (in)equality operator, and lacking non-member swap method | - |
Future |
- | - |
std::future and std::shared_future
|
Promise |
- | - | std::promise |
Array |
- | - | std::array |
Vector |
- | - | std::vector |
Map |
- | - | std::map |
Optional |
C++17 | Some constructor overloads are missing | - |
Variant |
- | - | Out of scope |
StringView |
- | - | std::string |
String |
- | - | std::string |
Span |
- | - | Out of scope |
SteadyClock |
- | - | std::chrono::steady_clock |
InstanceSpecifier |
R21-11 | Replacing ara::core::StringView with std::string | - |
ScaleLinearAndTexttable |
- | - | Out of scope |
Byte |
- | - | uint8_t |
The development is in progress based on R21-11:
-
Execution Error Event struct:
- In contrast with the standard, the structure keeps pointer to the Function Group in Undefined State instead of the Function Group itself.
-
Execution Client class:
- There is no default constructor same as the standard and the object owner should pass the Instance Identifier and the Communication Layer (for remote procedure calling).
-
Deterministic Client class:
-
noexcept
specifiers are not aligned with the standard.
-
-
Function Group class:
-
noexcept
specifiers are not aligned with the standard. - No ARXML meta-model validation mechanism is implemented.
-
GetInstance
method is not aligned with the standard.
-
-
Function Group State class:
-
noexcept
specifiers are not aligned with the standard. - No ARXML meta-model validation mechanism is implemented.
-
GetFunctionGroup
andGetState
methods are not aligned with the standard.
-
-
Exec Exception class:
-
MakeErrorCode
method does not consider manufacture specific SupportData.
-
-
State Client class:
- The class constructor takes IPC abstraction layer as well which is not aligned with the standard.
-
noexcept
andconst
specifiers are not aligned with the standard. - Undefined Function Group State concept is not implemented.
Out of scope
Out of scope
Out of scope
Currently, there is a wrapper interface around BSD sockets to enable functional clusters (e.g., Communication Management) for interacting via TCP/IP protocol.
Following is the project timeline and its specified milestones within 4 years:
Milestone | Start date | End date | Status |
---|---|---|---|
Studying R19-11 | January 2020 | December 2020 | Done |
Updating to R20-11 | January 2021 | May 2021 | Done |
Launching the repository | May 2021 | June 2021 | Done |
Doxygenizing | September 2021 | September 2021 | Done |
Integrating with Async-BSD-Socket-Lib | October 2021 | October 2021 | Done |
Implementing SOME/IP | October 2021 | December 2021 | Done |
Implementing EM and SM | December 2021 | January 2022 | Done |
Developing CAN OBD-II Linux Driver | January 2022 | February 2022 | Done |
Implementing DoIP and UDS within DM | February 2022 | August 2022 | Done |
Integrating SM with EM via Execution Manifest | September 2022 | January 2023 | Done |
Finalizing EM, SM, and DM integration via ara::com | January 2023 | February 2023 | Done |
Finalizing DoIP and UDS within DM | February 2023 | March 2023 | Done |
Finalizing Volvo Extended Vehicle API Adaptive Application | March 2023 | April 2023 | Done |
Implementing PHM | April 2023 | May 2023 | Done |
Developing E2E communication protection library | May 2023 | June 2023 | Done |