Git Product home page Git Product logo

simulationgui's Introduction

SimulationGUI

This project was created as a Google Summer of Code 2020 project for The Eclipse Foundation. It involves creating a graphical user interface and a simulator to visualize the simulation of task scheduling on Eclipse APP4MC.

Final Result

Proposal

The aim of this project is to visualize the execution trace of a simulated APP4MC model including its states within APP4MC using a framework such as e.g. Nebula Timeline. Henceforth, the scope lies in implementing (i) a rudimentary simulation engine and (ii) a frontend for visualizing the results. The rudimentary simulation backend should support a simple scheduling algorithm, such as e.g. fully preemptive priority based scheduling.

This GSoC Project link provides the details about the Project proposal and scope.

GSoC Project Details

Contributor: Philip Okonkwo (Twitter, LinkedIn)

Project Name: A Simulation-Visualizer For Eclipse APP4MC.

Organization: The Eclipse Foundation.

Mentors: Lukas Krawczyk, Dirk Fauth.

Contributions

  • Extending the Eclipse Nebula timeline widget to include the possibility of adding annotations that indicate arrival time and deadlines of tasks in the timeline view.

  • Creating a user interface for visualization of the simulation.

  • Implementing the simulation backend by creating rudimentary schedulers like Earliest Deadline First or Rate Monotonic.

  • Creating a visualization of the simulation of APP4MC models by connecting the model to the simulation back end and rendering the results on the GUI.

  • Testing and documentation.

Documentation

The documentation and more details for this project is hosted on ReadTheDocs and the link is here. The document provides detail about how the whole application works and provides understanding on how to use it and extend it in the future.

Building and Running The Project

To be able to build and use this project, you will need Eclipse APP4MC version 0.9.8.

  1. Download this repository or clone it.

  2. Open Eclipse APP4MC version 0.9.8, create a new workspace and add all the plugin project directories using File...Open Project From File System. You can exclude the org.eclipse.app4mc.visualization.timeline.test project folder as it is not required for the application to work but if you decide to add it and run it, be sure to install the required libraries on Eclipse APP4MC, e.g. Mockito, using Help...Install New Software.

  3. Double click the MANIFEST.MF file in the META-INF folder of the org.eclipse.app4mc.visualization.timeline plugin project. Under the Dependencies tab, add javax.annotations to Required Plug-ins (this is needed especially for some Linux users. Windows users may not need to do this). Under the Overview tab, find the Testing section and click on the Launch an Eclipse Application link. A new Eclipse APP4MC instance is started.

  4. In the new APP4MC instance, open any APP4MC model project. A quick way to add a project might be using some of the APP4MC model examples bundled with Eclipse APP4MC, e.g the Democar example, using File...New...Examples...APP4MC AMALTHEA Model Examples.

  5. Double click the model file and the AMALTHEA Contents Tree window is opened.

  6. In the AMALTHEA Contents Tree window, right click the AMALTHEA Model and select Open APP4MC Visualization in the popup menu. A visualization panel is opened under the contents tree and you can see the user interface to use to run the simulation and visualization.

Note: Steps 5. and 6. described in the list above can be seen in the beginning of the gif image included at the start of this README document.

simulationgui's People

Contributors

npkompleet avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.