Difference between revisions of "Paparazzi Center/Evolutions"

From PaparazziUAV
Jump to: navigation, search
(Current Paparazzi Center analysis)
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 
== Introduction ==
 
== Introduction ==
Hello ! I'm an intern student for 5 months at the ENAC UAV Lab. My mission is to conceive a new HMI for the Paparazzi Center in Python / Qt to make it more intuitive and maintainable. This page is dedicated to explanations and talks about how could be the brand-new Paparazzi Center...
+
Hello ! I'm an intern student for 5 months at the ENAC UAV Lab (February to June 2016). My mission is to conceive a new HMI for the Paparazzi Center in Python/Qt to make it more intuitive and maintainable. This page is dedicated to explanations and talks about how could be the brand-new Paparazzi Center...
  
== Current Paparazzi Center analysis ==
+
== Current Paparazzi Center ==
  
 
=== UI Taxonomy ===
 
=== UI Taxonomy ===
 
[[Image:Paparazzicenter screencap 160315.png|1024px]]
 
[[Image:Paparazzicenter screencap 160315.png|1024px]]
 
+
[[Paparazzi_Center|Link to Current Paparazzi Center Wiki Page]]
 +
==== Menu Bar ====
 +
* A/C (New, Copy, Delete, Save, New Build Target, Quit)
 +
* Session (New, Save, Delete)
 +
* Tools (Launchable/Executable Tools: App Server, GCS, etc....)
 +
* View (Fullscreen)
 +
* Help (About, Get Help, Version)
 
==== Configuration ====
 
==== Configuration ====
 +
* Aircraft Selection (List of Aircrafts)
 +
* Aircraft Reload XML (conf.xml)
 +
* Aircraft Color Selection (Color Chooser)
 +
* Airframe Selection/Editor
 +
* Flight Plan Selection/Editor
 +
* Settings Manager(Add, Edit, Remove)
 +
* Modules Manager
 +
* Radio Selection/Editor
 +
* Telemetry Selection/Editor
 
==== Compilation ====
 
==== Compilation ====
 +
* Target Selection (Target List: AP, NPS, etc....)
 +
* Target Operation (Clean, Build)
 +
* Flash Mode Selection
 +
* Flash Operation (Upload)
 
==== Execution ====
 
==== Execution ====
 +
* Session Selection (List of Sessions)
 +
* Session Operation (Execute, Stop/Remove All Processes)
 +
* Process List Manager (Command Line, Start, Stop, Remove)
 
==== Status ====
 
==== Status ====
 +
* Status Window Console
 +
* Status Bar
  
[[Paparazzi_Center|Link to Current Paparazzi Center Wiki Page]]
+
== New Paparazzi Center ==
=== Requirements ===
 
=== Solutions ===
 
 
 
== New Paparazzi Center specifications ==
 
 
 
  
 
=== Philosophy ===
 
=== Philosophy ===
The new HMI of the Paparazzi Center must be conceived to be the more intuitive and maintainable as possible. In order to do that, many things have to be redesigned...
+
The new HMI of the Paparazzi Center must be conceived to be the most intuitive and maintainable as possible. In order to do that, a few things have to be redesigned...
 
 
  
 
=== Requirements ===
 
=== Requirements ===
Line 31: Line 49:
 
# Reach quickly any step of use
 
# Reach quickly any step of use
 
# Display always all the useful informations
 
# Display always all the useful informations
[[Paparazzi_Center/Evolutions#Possible_solutions|See foreseen solutions...]]
 
  
 
==== Terms and data management ====
 
==== Terms and data management ====
 
# Be understandable with a minimal knowledge or learning phase
 
# Be understandable with a minimal knowledge or learning phase
 
# Respect the old input and output XML files formats
 
# Respect the old input and output XML files formats
[[Paparazzi_Center/Evolutions#Possible_solutions|See foreseen solutions...]]
 
  
 
==== High level functions ====
 
==== High level functions ====
Line 48: Line 64:
 
# Launch programs together to realize a mission (session)
 
# Launch programs together to realize a mission (session)
 
# Save/edit/remove a configuration, a set of configurations and a session
 
# Save/edit/remove a configuration, a set of configurations and a session
[[Paparazzi_Center/Evolutions#Possible_solutions|See foreseen solutions...]]
 
  
  
=== Possible solutions ===
+
=== UI Taxonomy ===
 +
[[Image: Equipment.png|thumb|center|1024px|New Paparazzi Center HMI]]
 +
 
 +
==== Menu & Bottom bars ====
 +
* Menu : Active mode (Standard/Developer), Set cache to current Pprz Center state, Restore default Pprz Center state, Settings, Quit
 +
* Set : Set manager
 +
* Configuration : New empty configuration, Save configuration as, Save, Remove
 +
* Session : New empty session, Save session as, Save, Remove
 +
* Tools : ''All existing tools (GCS, Server, etc.)''
 +
* View : Full screen
 +
* Help : Tutorials, Credits
 +
 
 +
* Home : Value of the current Paparazzi UAV home directory (click to open a terminal here).
 +
* Mode : Switch between Standard and Developer modes.
 +
* Versions : Values of the run and build Paparazzi UAV installed versions.
  
==== Main organization ====
+
==== Equipment tab ====
# Compact main window, wide widgets or buttons => increase legibility and accessibility
+
[[Image: Equipment.png|thumb|center|600px|Equipment tab]]
# Choice widgets instead of input ones => be convenient to use it "with mittens" on the flying field for instance (tabs, combo-boxes, check-boxes, trees,...)
+
[[Image: Equipment file chooser.png|thumb|center|600px|New equipment file chooser]]
# Tab widget => allow flexibility between steps but separate clear parts as well (equipment, build, session, console)
+
 
# Fixed widgets (set/configuration selector, bottom bar) and dynamic one (overview section on the right side)
+
* This tab is dedicated to the management of the current configuration equipments.
 +
* On the right is the current equipment of the configuration (Airframe, Settings/Modules, Flight Plan, Radio, Telemetry).
 +
* In the middle are 3 buttons : Add (External file chooser for now), Remove & Edit (are available if item selected in the current equipment).
 +
* On the left will be an interactive tree (continuous search, drag & drop).
 +
* On the right corner is a quick build button : clean and build the current configuration with the selected target.
 +
 
 +
==== Build/Flash tab ====
 +
[[Image: Clean success.png|thumb|center|600px|Clean process succeeded]]
 +
 
 +
* The first part of this tab is dedicated to cleaning and building the current configuration.
 +
* The clean button starts a clean process and displays the result of this process in the line below.
 +
 
 +
[[Image: Build running.png|thumb|center|600px|Build process running]]
 +
[[Image: Build success.png|thumb|center|600px|Build process succeeded]]
 +
 
 +
* The result line is used as a progress bar as well : it's moving at each line of log emitted by the process (going to the right and then to the left).
 +
* The build button starts a build process and displays the result of this process in the line below.
 +
* The number of info/warnings/errors found in logs is displayed in real time at the bottom of the tab.
 +
* The show console button is a shortcut to reach the last tab easily (display console with colors).
 +
 
 +
==== Run session tab ====
 +
[[Image: Simulation running.png|thumb|center|600px|Simulation session running]]
 +
 
 +
* A session is composed of programs with options for each of them.
 +
* A program can be individually selected and then started or stopped.
 +
* Programs can be started all together (those not running yet only) and stopped all together (those running only).
 +
 
 +
[[Image: Programs stopped.png|thumb|center|600px|Programs and options management]]
 +
 
 +
* A program can be added from the tools menu (for now, before a sessions manager).
 +
* Remove program button : program can be removed if selected.
 +
* Remove option button : option can be removed if selected.
 +
* Add option button : empty option can be added.
 +
* Options can be edited by clicking on them and then pressing enter.
  
==== Terms and data management ====
+
==== Console tab ====
# Well defined objects with meaningful names and attributes (a "set" of "configurations" / each "configuration" has a name, a unique ID, a color, material equipments and a favorite session)
+
[[Image: Console sessions killed.png|thumb|center|600px|Extract of the output console with application logs only]]
# Parser adapted to existing XML format (conf.xml, conf/aircraft/conf.xml, control_panel.xml,...), XML generator knows the required structures 
+
[[Image: Console build.png|thumb|center|600px|Extract of the output console during a build process]]
  
==== High level functions ====
+
* All the logs received by the application (its or external) can be displayed in the console with colors.
# Widget to display the current configuration (lists by category / boxes appearing when category not empty)
+
* The application logs are displayed without background and with the text colored (blue -> info, red -> errors) .
# File chooser with a tree (directories, categories) and a quick search bar to select the XML files found in directories
+
* The processes logs are displayed with a black text with a colored background (green -> info, yellow -> warning, red -> error).
# Check the format of XML files and the association of components (For instance : 2 flight plans not possible, airframe necessary,...)
 
# Set manager to move configurations from a set to another, copy them, add/remove a configuration,... (popup)
 
# Target system : target defines the way of building and the possible sessions, only important informations are displayed (building status)
 
# Device selection and connection information (link OK ?), flash status after
 
# List of programs installed
 
# Session manager to choose which programs are useful for the mission and start/stop them individually
 
# Cache to remember the settings of the Paparazzi Center (loaded set and configurations), load only added files
 
  
 +
* The processes logs filters can be set by checking the check-boxes. Radio-buttons are just pre-selections of check states.
 +
* The application logs can't be filtered yet (but as the level of logs can be set, it will be possible).
  
  
 
== Conception and models ==
 
== Conception and models ==
Click [https://github.com/enacuavlab/pprz-center-demo here] to see my first propositions of the new Paparazzi Center HMI (Git repository).
+
[https://github.com/enacuavlab/pprz-center-demo Click here] to see my first propositions of the new Paparazzi Center HMI (Git repository).
 +
 
 +
== Source code ==
 +
[https://github.com/enacuavlab/paparazzi/tree/pprz-center_python Click here] to get the current version of the new Paparazzi Center HMI (Git repository).

Latest revision as of 07:28, 27 June 2016

Introduction

Hello ! I'm an intern student for 5 months at the ENAC UAV Lab (February to June 2016). My mission is to conceive a new HMI for the Paparazzi Center in Python/Qt to make it more intuitive and maintainable. This page is dedicated to explanations and talks about how could be the brand-new Paparazzi Center...

Current Paparazzi Center

UI Taxonomy

Paparazzicenter screencap 160315.png Link to Current Paparazzi Center Wiki Page

Menu Bar

  • A/C (New, Copy, Delete, Save, New Build Target, Quit)
  • Session (New, Save, Delete)
  • Tools (Launchable/Executable Tools: App Server, GCS, etc....)
  • View (Fullscreen)
  • Help (About, Get Help, Version)

Configuration

  • Aircraft Selection (List of Aircrafts)
  • Aircraft Reload XML (conf.xml)
  • Aircraft Color Selection (Color Chooser)
  • Airframe Selection/Editor
  • Flight Plan Selection/Editor
  • Settings Manager(Add, Edit, Remove)
  • Modules Manager
  • Radio Selection/Editor
  • Telemetry Selection/Editor

Compilation

  • Target Selection (Target List: AP, NPS, etc....)
  • Target Operation (Clean, Build)
  • Flash Mode Selection
  • Flash Operation (Upload)

Execution

  • Session Selection (List of Sessions)
  • Session Operation (Execute, Stop/Remove All Processes)
  • Process List Manager (Command Line, Start, Stop, Remove)

Status

  • Status Window Console
  • Status Bar

New Paparazzi Center

Philosophy

The new HMI of the Paparazzi Center must be conceived to be the most intuitive and maintainable as possible. In order to do that, a few things have to be redesigned...

Requirements

Main organization

  1. Be usable on a small laptop or tablet
  2. Be easily manipulable
  3. Reach quickly any step of use
  4. Display always all the useful informations

Terms and data management

  1. Be understandable with a minimal knowledge or learning phase
  2. Respect the old input and output XML files formats

High level functions

  1. Form an assembly of components to build a configuration
  2. Choose quickly and easily the desired components in well defined categories
  3. Check that the configuration makes sense
  4. Gather configurations (set)
  5. Build the configuration for a specific use
  6. Flash the code into a real device
  7. Launch programs individually
  8. Launch programs together to realize a mission (session)
  9. Save/edit/remove a configuration, a set of configurations and a session


UI Taxonomy

New Paparazzi Center HMI

Menu & Bottom bars

  • Menu : Active mode (Standard/Developer), Set cache to current Pprz Center state, Restore default Pprz Center state, Settings, Quit
  • Set : Set manager
  • Configuration : New empty configuration, Save configuration as, Save, Remove
  • Session : New empty session, Save session as, Save, Remove
  • Tools : All existing tools (GCS, Server, etc.)
  • View : Full screen
  • Help : Tutorials, Credits
  • Home : Value of the current Paparazzi UAV home directory (click to open a terminal here).
  • Mode : Switch between Standard and Developer modes.
  • Versions : Values of the run and build Paparazzi UAV installed versions.

Equipment tab

Equipment tab
New equipment file chooser
  • This tab is dedicated to the management of the current configuration equipments.
  • On the right is the current equipment of the configuration (Airframe, Settings/Modules, Flight Plan, Radio, Telemetry).
  • In the middle are 3 buttons : Add (External file chooser for now), Remove & Edit (are available if item selected in the current equipment).
  • On the left will be an interactive tree (continuous search, drag & drop).
  • On the right corner is a quick build button : clean and build the current configuration with the selected target.

Build/Flash tab

Clean process succeeded
  • The first part of this tab is dedicated to cleaning and building the current configuration.
  • The clean button starts a clean process and displays the result of this process in the line below.
Build process running
Build process succeeded
  • The result line is used as a progress bar as well : it's moving at each line of log emitted by the process (going to the right and then to the left).
  • The build button starts a build process and displays the result of this process in the line below.
  • The number of info/warnings/errors found in logs is displayed in real time at the bottom of the tab.
  • The show console button is a shortcut to reach the last tab easily (display console with colors).

Run session tab

Simulation session running
  • A session is composed of programs with options for each of them.
  • A program can be individually selected and then started or stopped.
  • Programs can be started all together (those not running yet only) and stopped all together (those running only).
Programs and options management
  • A program can be added from the tools menu (for now, before a sessions manager).
  • Remove program button : program can be removed if selected.
  • Remove option button : option can be removed if selected.
  • Add option button : empty option can be added.
  • Options can be edited by clicking on them and then pressing enter.

Console tab

Extract of the output console with application logs only
Extract of the output console during a build process
  • All the logs received by the application (its or external) can be displayed in the console with colors.
  • The application logs are displayed without background and with the text colored (blue -> info, red -> errors) .
  • The processes logs are displayed with a black text with a colored background (green -> info, yellow -> warning, red -> error).
  • The processes logs filters can be set by checking the check-boxes. Radio-buttons are just pre-selections of check states.
  • The application logs can't be filtered yet (but as the level of logs can be set, it will be possible).


Conception and models

Click here to see my first propositions of the new Paparazzi Center HMI (Git repository).

Source code

Click here to get the current version of the new Paparazzi Center HMI (Git repository).