Code Monkey home page Code Monkey logo

arena-ui's Introduction

assisi-arena-ui

DOI

Bee arena user interface for the ASSISI|bf project.

Instructions for users

Add the ASSISI ppa, update and install:

sudo add-apt-repository ppa:damjan-miklic-larics/assisi
sudo apt-get update
sudo apt-get install assisi-arena-ui

Developer instructions

The current officially supported development platform is Ubuntu 16.04 Xenial Xerus.

Prerequisites

qt5-dev
libzmq-dev
libzmqpp-dev
libyaml-cpp-dev
libprotobuf-dev
libboost-dev

Building the code

From Qt Creator ...

Building the docs

User documentation can be compiled in the doc/user directory:

make html
make latexpdf

Debian packaging

Instructions for making a Debian package have been taken from here.

General instructions for using the Pbuilder packaging tool on Ubuntu are available here.

Environment setup

Install the necessary tools:

sudo apt-get install pdebuild

Create a .pbuilderrc file with the following contents:

BASETGZ=$HOME/pbuilder/base.tgz
BUILDPLACE=$HOME/pbuilder/build/
BUILDRESULT=$HOME/pbuilder/result/
DEBEMAIL='Your Name <[email protected]>'
BUILDUSERNAME=username
AUTO_DEBSIGN=yes
APTCACHEHARDLINK=no
DEBBUILDOPTS="-sa"
COMPONENTS="main restricted universe multiverse"

If you're short on disk space on the partition where $HOME is installed, you can put the pbuilder folder on another disk/partition and adjust the paths in .pbuilderrc accordingly.

Create the pbuilder environment:

sudo pbuilder --create

After making any changes to .pbuilderrc you might need to sudo pbuilder update --override-config

Building the package

Make sure you have updated the debian/changelog file appropriately.

Switch to the folder where you have cloned the git repo, and export the source. All changes need to be committed! Pay special attention to - and _ signs, they are different in different commands. This is a bit convoluted but supposedly necessary. (TODO: try using git-buildpackage, it should be simpler).

mkdir -p ../debs/assisi-arena-ui-x.y.z
git archive master | tar -x -C ../debs/assisi-arena-ui-x.y.z
cd ../debs/assisi-arena-ui-x.y.z
tar cvf - * | gzip > ../assisi-arena-ui_x.y.z.orig.tar.gz
dh_make -e [email protected] -f ../assisi-arena-ui_x.y.z.orig.tar.gz -s -c lgpl3
pdebuild --debbuildopts -sa

It's good form to run a lintian check on the generated source package:

lintian ../assisi-arena-ui_x.y.z.-0ubuntu1~xenial1_source.changes

Sign the source package:

debsign ../assisi-arena-ui_x.y.z.-0ubuntu1~xenial1_source.changes

Uploading to the PPA

Official Launchpad instructions are here: https://developer.ubuntu.com/en/publish/other-forms-of-submitting-apps/ppa/

dput ppa:damjan-miklic-larics/assisi ../assisi-arena-ui_x.y.z-0ubuntu1~xenial1_source.changes

Getting the Successfully uploaded packages. message does not necessarily mean that your upload was successful :) You should get an e-mail confirmation of the successful upload. If the e-mail states that your upload has been rejected try to fix the issue, delete the assisi-arena-ui_x.y.z-?ubuntu?_source.ppa.upload file and re-upload. Repeat as necessary :)

arena-ui's People

Contributors

dmiklic avatar stribor14 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

stribor14

arena-ui's Issues

Default open path

The default open path, on first UI run should be just the user's home folder.

Save UI state

Complete UI state should be saved as a ui-project file. Specifically, the following info needs to be saved:

  • active .arena file
  • arena layer loaded in the UI
  • trend graph settings (number and location of open graphs, data source displayed in each graph)
  • manual connection settings
  • CASU groups
  • last setpoints sent to the CASUs through the GUI

Implement graphical interface to deployment tools

Enable the following functionality:

  • deploy controllers
  • run experiment
  • stop experiment
  • collect data
  • clean logs on deployment target
  • display output of the command-line tools

Documentation for the command-line tools is available here.

The Settings dialog needs tabs

Tabs need to be aded to make the dialog more readable. I see the need for the following tabs:

  • Arena (Sensor graphics ON on startup, name of arena layer to visualize)
  • Data and Trends (most of the current Settings dialog elements)
  • Simulator (Simulator location, a new QLineEdit vidget to allow passing additional parameters to the simulator; more UI elements might be needed in the future)
  • Camera (Camera stream source, parameters)

The dialog should not be created in code but usig Qt form design tools.

Setpoint value validation is not working correctly

I was expecting statements like the following

value1->setValidator(new QDoubleValidator(26.0,45.0,2));

in qdialogsetpoint.cpp to limit the setpoint values sent to the CASUs. However, if a value outside of the spcified range is passed, it will still be sent to the CASU.

Add temperature colorbar

Add colorbar to indicate temeprature sensor values. Colorbar should show and hide together with CASU's temperature sensors.

Dependency on libboost-dev

Compiling requires libboost-dev to be installed, which is actually required by libyaml-cpp-dev, which does not declare it as a dependency. Therefore, building a .deb in a clean environment fails due to /usr/include/yaml-cpp/node/node.h not finding boost/shared_ptr.hpp

Should file a bug report for the libyaml-cpp-dev debian package (version 0.5.1-1).

casus point in wrong direction

The indicator on each CASU in the currently installed array points to the right. A manual check shows that the "F" sensor points downwards.

1-2-3  ||
4-5-6  ||
7-8-9  \/
      Front

not sure whether this is a local configuration or a built-in layout. How do we display in accurate orientation?

Spawn CASUs from UI

Add UI element to spawn CASUs, as specified in the .assisi (.arena) file. Should be a straightforward matter of calling sim.py with appropriate arguments.

Temperature readings

Casu TOP temperature is not properly read or displayed. Instead of the TOP temperature, the value of estimated CASU temperature is displayed in the UI. Also, the WAX temperature is not displayed at all.

Create additional treeviews for CASU groups

Very often, groups are created with the aim of manipulating several CASUs in the same way, e.g. sending trending the same sensor reading from several CASUs. However, in the current implementation, the user still has to expand each individual treeview for every CASU and select the data to plot. One wrong click (i.e. click without having the control key properly pressed) can ruin the whole selection. This problem will become far worse as the number of CASUs increases.

A solution to this problem is to create an additional treeview item for the group. An action performed on an element of this treeview would be applied to all CASUs. @stribor14 please comment wheather you think that this approach is feasible.

restore scrolling on trend graphs

By default, a trend graph scrolls along as new data arrives. However, if you use the mouse to drag where the image is centred, the trend time limits stay fixed (i.e. new data gets drawn off the RHS of the screen).

Is it possible to add a button or context menu option to restore scrolling with the latest data?

Enable airflow visualization

Visualization can be similar to current proximity sensor visualization.

  • Proximity sensor color should be changed to yellow
  • Active airflow visualized with white circle around CASU, Alpha = 0.5
  • Inactive airflow without visualization

Arena ui crashes

If there no .nbg or .dep file given in the arena configuration file (.assisi), the program crashes.

CASU sensor orientation

The sensor orientation/ordering on the CASUs seems incorrect. This issue can be reproduced by having a bee circle around a CASU and observing the sequence of activated proximity sensors.

Start/Stop simulator

When simulator is started, program releases PID handle so the simulator won't close with GUI. When new instance of GUI is running, action "Stop simulator" does nothing altough a simulator is running.

Actuator setpoint dialogs need default values

Whenever a dialog is opened, the editable fields should be pre-populated with current setpoints (or default values if no setpoints are currently active, or the dialog is activated for a group of CASUs). This saves time when working with actuators that take several parameters (e.g. vibration).

"Trend" and "graph" terminology is a bit ambiguous

Clean up terminology in context menus referring to trending. The following would make sense:

  • a graph refers to the axis on which the data is plotted
  • a trend refers to the data itself
  • matlab uses the terms plot/axes

Having this in mind, it would be correct to change the context menu in the CASU data treeview to: "Plot selected on same axis"/"Plot selected on different axes"?

suggestion: show parameter-range when using set-point

Just an idea, maybe simple to implement but makes the usage a lot easier:
when adding a setpoint, the UI should inform you about the possible range for the stimulus.
e.g., vibration frequency [100-500]
vibration amplitude [0-100]

Temperature sensor graphics

With new graphics markers for various sensors, temperature sensors should not move closer to CASU when IR sensor is hidden. This causes temp marker to be drawn on similar distance as vibration marker

Open->Cancel destroys the session

Attempting to open a new arena/session file, but then cancelling the operation destroys the current session. This is obviously not the desired behavior.

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.