Giter Club home page Giter Club logo

xcos_on_cloud's Introduction

Xcos on Cloud

Xcos is an open source graphic simulator available with Scilab. Scilab can be installed on all major Operating Systems

The main aim of this project will be to port core functionalities of Xcos to a browser-only version that can be used without installing additional plugins or software on the cloud.

Installation

 git clone https://github.com/FOSSEE/xcos_on_cloud

 Follow the steps given in the INSTALL.pdf file.

License information

This project has a Creative Commons Public License.

Demo

An online demo can be found over here:

http://xcos.fossee.in

Developers and Testers

  • Dipti Ghosalkar, FOSSEE IIT Bombay
  • Rinki Ranjan Nag, FOSSEE IIT Bombay
  • Mit Katwala, FOSSEE IIT Bombay

Interns (Year 2017):

  • Jayaprakash A, Indian Institute of Technology, Palakkad
  • Shashank Bhalotia, Shri Ramdeobaba College of Engineering and Management, Nagpur
  • Ritveeka Vashistha, IIT Guwahati, Guwahati
  • Dattatreya Sarma GVS, Lendi Institute of Engineering and Technology,JNTUK, Vizianagaram
  • Shivendra Pratap Singh, Indian institute of Information Tecnology, Kalyani
  • SK Mainul Islam, St. Thomas' College of Engineering & Technology, Kolkata
  • RuhiTaj Reddypalli, National Institute of Technology Karnataka, Surathkal

Interns (Year 2018):

  • Avinash Agarwal, National Institute of Technology, Durgapur
  • Swanand Pande, Sardar Patel Institute Of Technology, Mumbai

Initial and Older version of Xcos on Cloud can accessed on following link

https://github.com/FOSSEE/xcos-on-web

xcos_on_cloud's People

Contributors

arsil-z avatar avinashagarwal14 avatar dependabot[bot] avatar diptighosalkar avatar eaglewarrior avatar jayaprakash-a avatar mainuliitkgp avatar mit95 avatar moriarty777 avatar pandeswanand avatar prashantsinalkar avatar rashpat93 avatar ritveeka avatar shankyb9 avatar shivendra3 avatar suchitalad avatar sunilshetye avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xcos_on_cloud's Issues

incorrect call to get() method

The set() blocks are having incorrect calls to the get() method.

For example, BARXY.prototype.set() calls BARXY.get() on error.

There is no BARXY.get() method, even though there is a BARXY.prototype.get() method.

So, the code throws an exception and there is no further action in the code.

  1. If intention was to throw an exception, then this call must be replaced with something like:

throw "incorrect";

  1. Proper coding would involve no throwing of exception. Return a value (like false) and ensure that the properties window is not closed.

TBC: link the popup with the execute and stop functionality

The following links are missing between the popup and the toolbar buttons:

  1. If the user changes the script manually, the changed script should be saved.

  2. On clicking execute, the changed script should be executed.

  3. The execute (script) button must be disabled if:
    a) The text area is empty, or
    b) The script is already running
    Similarly, the stop (script) button must be disabled if:
    a) The script is not running

  4. The output must be saved (even if empty)

  5. The output window must be enabled on success, only if output is not empty.

Issue in PNP block's JS

Issue with use of math.transpose() function in JS file of PNP block, thus we are not able to drag that block on canvas and use it.

Sanity check of input

All input must be checked for sanity. Currently, there is only sanity check on some of the .sci files.

Timeout for simulation

Add SCILAB_INSTANCE_TIMEOUT_INTERVAL to config.py. Add start time when command is run. Add a timeout = start time + SCILAB_INSTANCE_TIMEOUT_INTERVAL to the scilab-adv-cli instance. At the end of the timeout, kill the scilab-adv-cli instance and return error.

When a user clicks on simulate in the browser, a scilab-adv-cli instance starts. If the user does not click on Stop, this instance can continue forever. This happens with diagrams having specific type of blocks. Ensure that simulation stops cleanly after reaching the timeout.

At present, the value of SCILAB_INSTANCE_TIMEOUT_INTERVAL will be 3 minutes.

Later, we can add support for timeout based on specific blocks in the diagram.

support for TBC

There must be support for running TBC examples on cloud. On selecting an example, the cloud must load the corresponding .xcos file and the associated .sci file.

This can be implemented by getting the required information from the eid / fileid of the TBC.

the /stop url should get called only once.

The /stop url gets called when:

  • user closes the simulation window
  • user clicks on Stop (if user clicks multiple times, /stop gets called each time)
  • user closes the browser window
    Ensure that /stop gets called maximum one time.

write to a custom log file

Currently, the scilab log file is based on the pid of scilab.

Finding the pid of scilab is error-prone, especially when lot of scilab instances are running.

Find a way for scilab to write to a log file decided by xcos.

Importing scilab workspace

Scilab workspace associated with a diagram must be loaded into the workspace.

This can be implemented by running a .sci file before simulating the diagram.

Provision must be done for loading a .sci file along with the diagram.

Display of scilab output

Provision must be made to display the output of the simulation of the xcos diagram.

This can be achieved by displaying the input and output windows after running the xcos diagram.

Restoration of display attributes

When importing a diagram, the following display attributes must be restored

  • height
  • width
  • direction
  • flip (true / false)
  • mirror (true / false)
  • border colour
  • fill colour

this will not impact creating a new xcos diagram.

diagram id of 0

Some urls require a diagram id. As no diagram id is available, a default diagram id of 0 is passed with the url.

At the start of the session (before running any simulation), even the diagram id of 0 does not exist. This throws an error for those urls.

The urls with this issue are:

  1. /getOutput
  2. /getExpressionOutput (#151)

double message on empty diagram

On clicking on simulate with an empty diagram, we get two messages:

  • Empty canvas
  • Empty diagram

Ensure that only one message appears.

graph scales are different

In some simulations, the graph scales shown by scilab and by the simulation window are different.

The titles are also different.

Ensure that graph scales and titles match.

Issue with properties window of blocks

UI Issue : Properties window's title shows same title for all categories block, which need to be fixed and should be look same as Desktop Xcos's blocks properties window.

appearance of scrollbar on simulation

When clicking on simulate, a simulation popup appears. Simultaneously, a scrollbar appears on the canvas. Scrolling shows a portion of the window below the statusbar.

The scrollbar disappears when the simulation window is closed.

This scrollbar must not appear during simulation.

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.