Adaptive Runtime AUTOSAR Linux Simulator

Overview

Adaptive-AUTOSAR

example workflow

Adaptive AUTOSAR is a simulated Adaptive Platform enviroment over Linux defined by AUTOSAR. The goal of this project is to implement the interfaces defined by the standard for educational purposes.

Dependecies

It will be tried to use minimum number of dependencies as much as possible. The current dependencies are as follows:

  • Cpp Standard: 14
  • Cmake mimimum version: 3.14
  • Compiler:
    • GCC C/C++ Compiler (x86-64 Linux GNU): 9.3.0; or
    • Clang C/C++ Compiler (x86-64 PC Linux GNU): 10.0.0
  • Google Test: v1.11.0
  • Async BSD Socket Lib (in-house C++ libary)

Project Milestones

  • CI workflow
  • Doxygen documentation
  • Hardware integration (i.e., CAN-bus and LIN-bus)
  • OBD-II and DoIP
  • Replace STL with ARA Core types (e.g.,std::future to ara::core::Future)
  • MISRA certified
  • Dedicated memory allocator
  • Integration with Volvo Extended Vehicle and Connected Vehicle APIs
  • E2E communication protection
Comments
  • Improper pointers lifetime management

    Improper pointers lifetime management

    Describe the bug Occurrence of SEGFAULT errors are possible due to improper lifetime management of entries and options in the SD client and server.

    To Reproduce Unfortunately the behavior is a bit random, and a way of reproducing is still unknown!

    Expected behavior SD sever and client should be destructed properly without any SEGFAULT error.

    Additional context (please complete the following information):

    • Linux Distribution and Version: Ubuntu 20.04
    • CMake Version: 3.14
    • Compiler: GCC 9.3.0
    bug 
    opened by langroodi 5
  • SOME/IP SD server dead-lock

    SOME/IP SD server dead-lock

    Describe the bug In some situation (probably a racing condition), the SOME/IP SD server stuck in the Main phase state, and it cannot get out of that state anymore, even by calling server Stop!

    To Reproduce It is a bit difficult to re-produce the error, but it seems sometimes stopping occurs before starting the server. The best way to debug sequence is to analyze the code itself.

    Expected behavior The server should be gracefully stop event the Stop function is called explicitly or the server destructor is being invoked.

    Additional context (please complete the following information):

    • Linux Distribution and Version: Ubuntu 20.04
    • CMake Version: 3.14
    • Compiler: GCC 9.3.0
    bug 
    opened by langroodi 2
  • Add an sample application for using communication management

    Add an sample application for using communication management

    Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is.

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Additional context Add any code repository here which the project may interact with.

    enhancement 
    opened by gnana-ganesh-tw 1
  • Unable to compile on ubuntu 20 using clang and cmake on VSCode terminal.

    Unable to compile on ubuntu 20 using clang and cmake on VSCode terminal.

    Unable to compile on ubuntu 20 using clang and cmake on VSCode terminal. Can you please check and let me know what is wrong... and BTW will i eventually see any communication on Ethernet running DDS?

    hasan@dhasan-VirtualBox:~/Desktop/work/Adaptive-AUTOSAR$ cmake --build . Scanning dependencies of target gtest [ 2%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o [ 4%] Linking CXX static library ../../../lib/libgtest.a [ 4%] Built target gtest Scanning dependencies of target gtest_main [ 6%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o [ 8%] Linking CXX static library ../../../lib/libgtest_main.a [ 8%] Built target gtest_main Scanning dependencies of target ara_sm [ 11%] Linking CXX static library libara_sm.a [ 11%] Built target ara_sm Scanning dependencies of target ara_com [ 13%] Building CXX object CMakeFiles/ara_com.dir/src/ara/com/helper/payload_helper.cpp.o [ 15%] Building CXX object CMakeFiles/ara_com.dir/src/ara/com/helper/ipv4_address.cpp.o In file included from /home/dhasan/Desktop/work/Adaptive-AUTOSAR/src/ara/com/helper/ipv4_address.cpp:1: /home/dhasan/Desktop/work/Adaptive-AUTOSAR/src/ara/com/helper/./ipv4_address.h: In function ‘constexpr bool ara::com::helper::operator==(ara::com::helper::Ipv4Address, ara::com::helper::Ipv4Address)’: /home/dhasan/Desktop/work/Adaptive-AUTOSAR/src/ara/com/helper/./ipv4_address.h:52:39: error: call to non-‘constexpr’ function ‘std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](std::array<_Tp, _Nm>::size_type) [with _Tp = unsigned char; long unsigned int _Nm = 4; std::array<_Tp, _Nm>::reference = unsigned char&; std::array<_Tp, _Nm>::value_type = unsigned char; std::array<_Tp, _Nm>::size_type = long unsigned int]’ 52 | (address1.Octets[0] == address2.Octets[0]) && | ^ make[2]: *** [CMakeFiles/ara_com.dir/build.make:76: CMakeFiles/ara_com.dir/src/ara/com/helper/ipv4_address.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:205: CMakeFiles/ara_com.dir/all] Error 2 make: *** [Makefile:141: all] Error 2

    bug 
    opened by risaldar 1
  • Wrong implementation of StateClient within ara::exec

    Wrong implementation of StateClient within ara::exec

    Describe the bug StateClient would have an instance at SM side to interact with EM. So, the StateClient object should not keep any local state at SM side and the states should be communicated back to EM.

    To Reproduce Please refer to https://github.com/langroodi/Adaptive-AUTOSAR/blob/532d5b2777307bc104b410e044e7d1ecb5247819/src/ara/exec/state_client.cpp#L41

    Expected behavior The requested states from SM should be communicated back to EM (via SOME/IP, REST, etc.).

    bug 
    opened by langroodi 0
  • SOME/IP Client Child Abortion Exception

    SOME/IP Client Child Abortion Exception

    Describe the bug Child abortion exception in the following unit test:

            Start  57: SomeIpSdTest.StartScenario
     57/152 Test  #57: SomeIpSdTest.StartScenario .........................   Passed    0.71 sec
            Start  58: SomeIpSdTest.ClientStopScenario
     58/152 Test  #58: SomeIpSdTest.ClientStopScenario ....................Child aborted***Exception:   0.99 sec
            Start  59: SomeIpSdTest.ServerStopScenario
     59/152 Test  #59: SomeIpSdTest.ServerStopScenario ....................   Passed    0.71 sec
    

    To Reproduce Occurred only once.

    Expected behavior The test should always pass.

    Additional context (please complete the following information):

    • Linux Distribution and Version: Ubuntu 20.04
    • CMake Version: 3.14
    • Compiler: GCC 9.3.0
    bug 
    opened by langroodi 0
  • Test timeout error

    Test timeout error

    Describe the bug Following unit test is failing due to a timeout error:

    Total Test time (real) =   6.21 sec
    
    The following tests FAILED:
             60 - SomeIpSdTest.StopScenario (Failed)
    

    To Reproduce There is not a certain way to reproduce the situation.

    Expected behavior The timeout amount should be enough. It seems due to a random internal error in the client or the server, required states cannot be reached.

    Additional context (please complete the following information):

    • Linux Distribution and Version: Ubuntu 20.04
    • CMake Version: 3.14
    • Compiler: GCC 9.3.0
    bug 
    opened by langroodi 0
  • Can you please add some contact information for discussions on this project e.g. your email or some Chat forum.

    Can you please add some contact information for discussions on this project e.g. your email or some Chat forum.

    Can you please add some contact information for discussions on this project e.g. your email or some Chat forum. I need to select a baseline opensource adaptive AUTOSAR since I do not want to use a proprietary one for research purposes and your project came up as a candidate.

    question 
    opened by risaldar 0
  • Supporting GCC

    Supporting GCC

    Is your feature request related to a problem? Please describe. Due to a SEGFAULT on one Google unit tests, G++ compiler cannot be used.

    Describe the solution you'd like The error should be tracked and solved. So, then the project can be built via both GCC and Clang.

    Additional context Please refer to the following ticket: https://github.com/google/googletest/issues/3506

    enhancement 
    opened by langroodi 0
Owner
Armin Kassemi Langroodi
Armin Kassemi Langroodi
Following Automotive Open System Architecture (AUTOSAR)

Following Automotive Open System Architecture (AUTOSAR), Diagnostic Communication Manager Module Implemented over Communication Stack Based on AUTOSAR Specification Document (SWS) Release 4.3.1 Classic Platform, ISO-14229 Standard (Road Vehicle Unified Diagnostic Services (UDS)) and ISO-15765 (Road Vehicle Diagnostics on Controller Area Network (CAN)).

null 11 Dec 8, 2022
A Motorola 68K simulator based on Musashi-master 68K simulator.

cpmsim Originally referenced as http://home.earthlink.net/~schultdw/cpm68/simulator.html (now 404) This simple CP/M-68K simulator, is built around the

Neil Cherry 8 Oct 26, 2021
around — adaptive rounding operation

around — adaptive rounding operation Attempts to perform nice rounding of a floating point number, like a human would do. Usage: around.h #include "ar

Jan Ringoš 9 Oct 21, 2022
A composable container for Adaptive ROS 2 Node computations. Select between FPGA, CPU or GPU at run-time.

adaptive_component A composable stateless container for Adaptive ROS 2 Node computations. Select between FPGA, CPU or GPU at run-time. Nodes using har

ROS 2 Hardware Acceleration Working Group 7 Sep 9, 2022
BAAF-Net - Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021) This repository is for BAAF-Net introduce

null 90 Dec 29, 2022
Restoration of The Linux Scheduler Simulator (LinSched)

Restoration of The Linux Scheduler Simulator (LinSched)

Jim Huang 13 Sep 3, 2021
Embedded Flutter runtime targeting Embedded Linux with Wayland

ivi-homescreen IVI Homescreen for Wayland Strongly Typed (C++) Lightweight Clang 11 Release Stripped = 151k GCC 9.3 Release Stripped = 168k Source run

null 170 Dec 13, 2022
A C library for runtime-flippable feature flags on Linux/x86-64, with negligible overhead in the common case

Biased runtime-flippable flags, with cross-modifying code The dynamic_flag library is a two-file "C" library that offers efficient biased conditionals

Backtrace Labs 61 Dec 14, 2022
Mobile robot simulator

The Stage Simulator This is the Stage README file, containing an introduction, license and citation information. Stage is a 2(.5)D robotics standalone

Richard Vaughan 356 Jan 7, 2023
Real-time 2D fluid simulator with lots of visualization options.

Fluid Simulator Building Start by cloning the program and all submodules using the following command: git clone --recursive https://github.com/linusmo

Linus Mossberg 28 Dec 14, 2022
HiFi error modeler and simulator with ploidy

A HiFi Shotgun Simulator Author: Gene Myers First: Aug 1, 2021 Current: Aug 1, 2021 Commands Himodel HIsim The Error Model Commands This module contai

Eugene W Myers Jr 10 Nov 29, 2022
GrandOrgue is a sample based pipe organ simulator.

GrandOrgue is a sample based pipe organ simulator. It currently supports Linux, Windows and OS X. Porting to other OS supported by RtMidi,

GrandOrgue 85 Dec 31, 2022
Biological evolution simulator

biosim4 What is this? This pile of code was used to simulate biological creatures that evolve through natural selection. The results of the experiment

David R. Miller 2.3k Dec 31, 2022
JaBS - Jaakko's Backscattering Simulator

JaBS - Jaakko's Backscattering Simulator

null 4 Jan 5, 2023
a Little Computer 3 simulator

smol3 ??️ a Little Computer 3 simulator smol3 is a tiny LC3 simulator written in C. It aims to be fast and correct. TODO read input binary files write

pry 1 Oct 22, 2021
Using Pi Pico to provide trimwheel for Flightgear Flight Simulator

Trimwheel for FGFS This uses a Rotary Encoder (RE) and a Raspberry Pi Pico (Pico) to connect the RE to FlightGear Flight Simulator as a Pitch Trimwhee

Dave Attwood 1 Dec 14, 2021
Stock exchange simulator made in Swing using Java with logic backend in C++ giving it faster load time and better data control

StockSimulator Stock exchange simulator made in Swing using Java with logic backend in C++ giving it faster load time and better data control Features

Dušan Todorović 0 Mar 1, 2022
An Electronic voting machine simulator using C

EVM-using-C An Electronic voting machine simulator using C The project is divided into few parts 1.The program first asks to enter the information of

BABA SHANKAR S N 1 Oct 24, 2021
A tiny evolution simulator, which uses SDL2 and is written in C

evosim Evosim is a small evolution simulator. Evosim uses the SDL2 library for graphics. The program can be compiled by simply running make in the evo

Victor Ocampo 2 Nov 20, 2021