guilyx / gantt-trampoline

📊⏱️ A script generating GANTT Diagrams from TrampolineRTOS apps' traceback.
MIT License
5 stars 1 forks source link
gantt gantt-chat gantt-diagram real-time rtos trampoline

[![Say Thanks][saythanks-shield]][saythanks-url] [![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] HitCount [![MIT License][license-shield]][license-url] [![LinkedIn][linkedin-shield]][linkedin-url]

Gantt Generator for TrampolineRTOS

Generating GANTT scheduling diagrams from Trampoline's tracebacks
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About the Project

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 :

## Setup 1. (Optional) Click on `Fork` 2. Clone the project on your local machine : `git clone https://github.com/guilyx/gantt-trampoline.git` 3. Install requirements ### Install dependencies : - Clone Trampoline ```shell $ git clone https://github.com/TrampolineRTOS/trampoline.git $ git checkout -b trace origin/trace ``` - Goil ```shell $ cd trampoline/goil/makefile-unix $ ./build/release.py $ sudo cp goil /usr/local/bin ``` - Viper ```shell $ 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 ```shell $ sudo mv trampoline /opt note : assuming you are in the directory containing trampoline ``` ### Testing - Use the ECN Scheduling Labs ```shell $ 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 ``` ### Issues If you have any trouble during the installation, refer to the detailed guide [here](res/trampoline_installation.md) written by [Mikael Briday](https://github.com/mbriday) 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.) 5. Install python dependencies with `pip install -r requirements.txt` from the repository's directory. ## Run ```shell $ 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 ``` 1. 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) 2. Run using your set of tasks with hardcoded periods : `python main.py 0` 3. [NEW] Run using your set of tasks with scheduling algorithms : `python main.py 1` ## Roadmap See the [open issues](https://github.com/guilyx/gantt-trampoline/issues) for a list of proposed features (and known issues). ## Contribute 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) ### Contribute on proposed features 1. Choose any open issue from [here](https://github.com/guilyx/gantt-trampoline/issues). 2. Comment on the issue: `Can I work on this?` and get assigned. 3. 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**: 1. 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. ## License Distributed under the MIT License. See `LICENSE` for more information. ## Contact Erwin Lejeune - [@spida_rwin](https://twitter.com/spida_rwin) - erwin.lejeune15@gmail.com ## Contributors - [Erwin Lejeune](https://github.com/Guilyx) [saythanks-shield]:https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg?style=flat_square [saythanks-url]:https://saythanks.io/to/erwin.lejeune15%40gmail.com [contributors-shield]: https://img.shields.io/github/contributors/guilyx/gantt-trampoline.svg?style=flat-square [contributors-url]: https://github.com/guilyx/gantt-trampoline/graphs/contributors [forks-shield]: https://img.shields.io/github/forks/guilyx/gantt-trampoline.svg?style=flat-square [forks-url]: https://github.com/guilyx/gantt-trampoline/network/members [stars-shield]: https://img.shields.io/github/stars/guilyx/gantt-trampoline.svg?style=flat-square [stars-url]: https://github.com/guilyx/gantt-trampoline/stargazers [issues-shield]: https://img.shields.io/github/issues/guilyx/gantt-trampoline.svg?style=flat-square [issues-url]: https://github.com/guilyx/gantt-trampoline/issues [license-shield]: https://img.shields.io/github/license/guilyx/gantt-trampoline.svg?style=flat-square [license-url]: https://github.com/guilyx/gantt-trampoline/blob/master/LICENSE.md [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 [linkedin-url]: https://linkedin.com/in/erwinlejeune-lkn