Project Specification
The project of the present course will aim to use a (very very) simplified
car and applying what learned in the lectures to a “real” use case.
(Source: https://cdn.motor1.com/images/mgl/rKoeb9/s1/la-peugeot-104-peugette-con-un-solo-sedile.jpg)
You are going to build a system composed by:
- injection system controller1
- car infosystem
- wipers
- proximity sensor2
- vehicle health analysis
1: it is a simple car but still holding a working engine
2: we do not like paying high insurance fees because we run over
pedestrians, do we?
The car simulator
Our car simulator implements the following behaviors:
- It is made of a mix of periodic / aperiodic tasks.
- Tasks may access shared resources and thus dependent of each other.
- Some tasks have hard real-time constraints, so you have to show that these constraints are met.
- The software is implemented using safety features, as explained in the related codelabs.
Phases
The software will be implemented in several phases as listed below. The deadlines for delivering the deliverables of each phase are described in the plan. The deliverables must be made available as defined in the project organization section
Once the infrastructure of the project is setup, the phases of the project are:
- Setting up the infrastructure of the project (Phase 0).
- Simulation and implementation of independent periodic tasks (Phase A).
- Integration of aperiodic tasks (Phase B).
- Integration of shared resources among tasks and of safety concepts (Phase C).
All phases contain deliverables detailed in each section below.
Phase 0: Setting up of the infrastructure
Once you have completed the Scheduling of periodic tasks codelab and the Robust Development Methodologies codelab, the basic infrastructure for starting the project will be in place. Use the code base Scheduling of periodic tasks codelab as base for your GitHub repository whose name is TeamName-car-sim.
Warning
Make sure all code written by you does follow MISRA as well as Google’s C++ Style guidelines.