Generating GANTT scheduling diagrams from Trampoline's tracebacks
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
TrampolineRTOS is a RTOS built by academia in Nantes, France. Every RT applications you built leaves a trace with the tasks and events states at time t. The goal is to generate Gantt Plots from this trace.
This project will allow you to plot you real-time jobs with a Gantt Diagram for :
- Already defined periods
- Trampoline posix's traces
- Tasks sets with defined Computation Times, Periods and Deadlines and a chosen algorithms (Rate Monotonic, Deadline Monotonic... )
- (Optional) Click on
Fork
- Clone the project on your local machine :
git clone https://github.com/guilyx/gantt-trampoline.git
- Install requirements
- Clone Trampoline
$ git clone https://github.com/TrampolineRTOS/trampoline.git $ git checkout -b trace origin/trace
- Goil
$ cd trampoline/goil/makefile-unix $ ./build/release.py $ sudo cp goil /usr/local/bin
- Viper
$ cd ../../viper $ make $ export VIPER_PATH=/opt/trampoline/viper $ echo 'export VIPER_PATH=/opt/trampoline/viper' >> ~/.bashrc note : if you use zsh replace bashrc by zshrc
- Installing TrampolineRTOS
$ sudo mv trampoline /opt note : assuming you are in the directory containing trampoline
- Use the ECN Scheduling Labs
$ git clone https://github.com/TrampolineRTOS/Labs.git $ cd Labs/posix/labs/lab1 $ goil --target=posix --templates=/opt/trampoline/goil/templates/ lab1.oil ... No warning, no error. $ ./make.py ... [100%] Linking lab1_exe $ ./lab1_exe Hello World
If you have any trouble during the installation, refer to the detailed guide here written by Mikael Briday
If you arrived to the last step with the Hello World
output, your installation is ready. (Press q
to quit the application, ctrl+c
is not handled.)
- Install python dependencies with
pip install -r requirements.txt
from the repository's directory.
$ python main.py -h
usage: main.py [-h] [--tpl_path TPL_PATH] [--trace_path TRACE_PATH] use_trace
Generate Gantt Diagrams from Real-Time process' traces.
positional arguments:
mode 0 to build from scratch, 1 to use scheduling algorithms, 2 to use processes' trace
optional arguments:
-h, --help show this help message and exit
--tpl_path TPL_PATH Register the path to the tpl static info json file
--trace_path TRACE_PATH
Register the path to the trace json file
- Run using a Trace of tasks :
python main.py 2 --tpl_path="TPL_PATH" --trace_path="TRACE_PATH"
(by default the paths goes to generated files in data/ ; if you use your own traces, the tpl_path is in the build/ directory of trampoline applications) - Run using your set of tasks with hardcoded periods :
python main.py 0
- [NEW] Run using your set of tasks with scheduling algorithms :
python main.py 1
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. (please help)
- Choose any open issue from here.
- Comment on the issue:
Can I work on this?
and get assigned. - Make changes to your
Fork
and send a PR.
Otherwise just create the issue yourself, and we'll discuss and assign you to it if serves the project !
To create a PR:
Follow the given link to make a successful and valid PR: https://help.github.com/articles/creating-a-pull-request/
To send a PR, follow these rules carefully, otherwise your PR will be closed:
- Make PR title in this formats:
Fixes #IssueNo : Name of Issue
Feature #IssueNo : Name of Issue
Enhancement #IssueNo : Name of Issue
According to what type of issue you believe it is.
For any doubts related to the issues, i.e., to understand the issue better etc, comment down your queries on the respective issue.
Distributed under the MIT License. See LICENSE
for more information.
Erwin Lejeune - @spida_rwin - erwin.lejeune15@gmail.com