DeceRT is a framework for building decentralised real-time systems. It incorporates a static task scheduler, that ensures that a sensor is only used by one On-board Computer (OBC) at a time. The tasks can also have dependencies on other tasks.
Ensure you have the rust toolchain installed.
Clone this repository and run cargo r -r to run the DeceRT CLI.
You can also run cargo b -r to build the DeceRT CLI, and use the executable in the target/release folder directly.
Our scheduling algorithm is explained in this diagram:
This is the screenshot of the rtos.dia file.
- Creates a new directory with the name and adds sensor.json
decert create-project <name>- Creates a new folder called
obc<id>. - Creates a new folder called
obc<id>/entry - Creates a new folder called `obc/lib
- Creates a new file
obc<id>/ports.hpp - Adds
tasks.confinside ofobc<id>
decert add-obc <id>- Parse sensor.json
- Parse tasks.conf
decert update-tasks- runs update-tasks for each obc
- for each obc, add required header files to the obc folder
- runs the scheduler
- creates the port .cpp which consist of implementation for the ports and the sensors mentioned in sensors.json
- compiles all the files to create obc.o
decert compileNote: The decert command can be replaced with cargo r -r to run the Decert CLI, when using directly from the repo.
Example: cargo r -r create-project <name>