3 minute read

As the week 5 did not have much actual content apart from bugfixes, I decided to merge it with the sixth one that has all of the features finished in the versio 0.10.0 of BT Studio, as well as the versions 5.6.0 of Robotics Application Manager and Robotics Infrastructure.

Looking at the improvements in the interface in version 0.10.0

With the new improved interface from the package jderobot-ide-interface that was developed during this GSoC, now BT Studio looks like this:

  • The project list now looks the same as the other modal provided in the interface package. project_list

  • Other modals are also changed to the new api: modals

  • The base interface after selecting a project now has the following look:

At the top (header) we now find the project name in the middle, and in the right side the buttons for changing the project, settings, layout, download and the app execution ones.

The main interface is the divided into 3 resizable columns:

base_ide

  1. The explorers: contains both the code files and the universe ones, allowing for the developement of custom universes
  2. The editors: this column is used to display the editor for each type of file, for example, if the file opened is a tree it will open the tree editor, and if not it will open the file in the Monaco editor.

only_editor tree_editor

  1. The viewers: at the top are the toggle buttons to select wich viewer will be displayed. The ones available are the Tree monitor, Simulator VNC viewer and Console VNC viewer.

mixed_execution

Simplified code in BT Studio

With the migration to the new interface a lot of components were duplicated, so a cleaning was needed. This resulted on the deletion of the next components:

  • Modal: base modal used for other components. Replaced by the one from jderobot-ide-interface that was created from this one.
  • error_popup: error dialogs used in all of BT Studio. Replaced by the one from from jderobot-ide-interface that was created from this one.
  • file_browser: file browser for code files, not universes. Replaced by a generic one from jderobot-ide-interface that needs an api to be passed.
  • file_editor: Monaco file editor. Replaced by the one provided by default from jderobot-ide-interface.
  • progress_bar: progress bar component used when uploading files. Replaced by its copy in jderobot-ide-interface.
  • status_bar: status bar component. Replaced by the new design from jderobot-ide-interface.
  • vnc_viewer: vnc viewer for Gazebo and the Console. Replaced by the unique component from jderobot-ide-interface.

Other important changes were the division of the BT Tree editor and monitor into 2 different components as explained in the weeks before.

This changes have simplified the codebase and will be important in the following weeks when I start developing the new apps an the tree library.

Fixing remaining bugs

During this weeks most of the bug fixes were about the interface not looking as it should to. This can be seen in the number of versions released of the jderobot-interface-package during this time, over 35.

versions

Another big bug was that because of the changes on the way a universe was sent from the backend to the frontend, the custom universes no loger worked. This was fixed replacing the conditional check in the backend when a universe name was passed, so it works like this:

  • If no universe is passed, use the path of the code folder as the base
  • If the universe passed is an empty string, use the path of the universes folder as the base
  • If the universe passed is a string with length more than 0, use the path of the passed universe as the base

Bug Fix Pull Request

Other improvements in other repos

During this time I also made some changes in other repos other than Bt Studio and jderobot-ide-interface.

Robotics Application Manager

I modified the execution function to accept a list of files to pass the linter before executing. This solved a really old issue of Bt Studio that was passing the linter to the actions before executing.

For this changes to work in BT Studio, I also needed to update that function to accept the new parameters.

Github Pull Request

Repositories in use