GCS Configuration

GCS
__TOC__
== Paparazzi Center ==
The paparazzi center is launched with the following command:
 ./sw/supervision/paparazzicenter
and is used to launch individual portions of the GCS (Programs) or the entire GCS (Sessions) with the modem and map settings defined in /conf/control_panel.xml
===Configuration Options===
Here all the commandline parameter to set specific option(s) while launching the GCS. To use these edit the file conf/control_panel.xml in the line that says <program name="GCS" command="sw/ground_segment/cockpit/gcs"> add the options, for example: 
<program name="GCS" command="sw/ground_segment/cockpit/gcs -fullscreen">
 -auto_ortho, IGN tiles path
 -b, <ivy bus> Default is 127.255.255.255:2010
 -center, Initial map center (e.g. 'WGS84 43.605 1.443')
 -center_ac, Centers the map on any new A/C
 -edit, Flight plan editor
 -fullscreen, Fullscreen window
 -maps_fill, Automatically start loading background maps
 -maps_zoom, Background maps zoomlevel (default: 18, max: 22)
 -ign, IGN tiles path
 -lambertIIe, Switch to LambertIIe projection
 -layout, <XML layout specification> GUI layout. Default: horizontal.xml
 -m, Map XML description file
 -maximize, Maximize window
 -mercator, Switch to (Google Maps) Mercator projection, default
 -mplayer, Launch mplayer with the given argument as X plugin
 -no_alarm, Disables alarm page
 -no_confirm_kill, Disable the additional kill conformation dialog
 -maps_no_http, Switch off downloading of maps, always use cached maps
 -ortho, IGN tiles path
 -osm, Use OpenStreetMap database (default is Google)
 -ms, Use Microsoft maps database (default is Google)
 -particules, Display particules
 -plugin, External X application (launched with the id of the plugin window as argument)
 -ref ,Geographic ref (e.g. 'WGS84 43.605 1.443')
 -speech, Enable vocal messages
 -srtm, Enable SRTM elevation display
 -track_size, Default track length (500)
 -utm, Switch to UTM local projection
 -wid, <window id> Id of an existing window to be attached to
 -zoom, Initial zoom
 -auto_hide_fp, Automatically hide flight plans of unselected aircraft
 -help, Display a list of options
=== Video plugin ===
The -mplayer option of GCS allows to the user to display a video stream in a window of the GCS. The video window can also be exchanged with the map by clicking anywhere inside the frame.
Use the following line in your /conf/control_panel.xml to enable the video window.
 path_to_ground_segment/cockpit/gcs -mplayer rtsp://localhost:7070/video
A useful example follows:
If you have an Avermedia DVB-T usb tuner like the Aver-Tv Hybrid Volar HX (Avermedia finally released Ubuntu Linux drivers)
then in order to use the usb tuner as video input to the GCS you have to complete the following steps:
First download and install the drivers and check that the Usb tuner works well by opening a console window
and typing: 
mplayer tv:// -tv driver=v4l2:width=320:height=240:norm=NTSC:input=1:device=/dev/video1:noaudio
Of course you must connect a video signal to the composite input first.
Then close the console and remove the Usb tuner.
Now it is time to configure the control_panel.xml file by editing the GCS command line.
Locate the line in the "control_panel.xml" usually located in /Your Paparazzi directory/conf/ (mine is in "/paparazzi/conf/")
that looks similar to the below line:
<program name="GCS" command="sw/ground_segment/cockpit/gcs -layout horizontal.xml">
Then edit it so it looks like this:
<program name="GCS" command="sw/ground_segment/cockpit/gcs -layout horizontal.xml -mplayer 'tv:// -tv driver=v4l2:width=320:height=240:norm=NTSC:input=1:device=/dev/video1:alsa:adevice=hw.2,0:amode=1:audiorate=48000:forceaudio:volume=100:immediatemode=0'">
 <arg flag="-b" variable="ivy_bus"/>
</program>
The above line is one complete and uninterrupted line but it is just too long to show it in one line here.
(There is a space after the"-tv" like this "-mplayer 'tv:// -tv driver=v4l2:...." but nowhere else after that).
This will load the mplayer, select the composite video input of the tuner and enable the sound input.
Please remember to change the "NTSC" with "PAL" if you do not use the NTSC video system (if your airborne camera is PAL for example). 
Read the mplayer documentation so you can tweak the resolution etc. later to suit your particular setup.
The resolution above is set to 320x240 here but you can set it to 640x480 by replacing the numbers in the command line above.
If You forget to set the arg parameter, then GCS will not meet through window handlers with mplayer and the video will not appear! This time you see an mplayer <defunct> on the process list.
Finally you have to add the plugin widget to your GCS layout configuration file.
If you noticed the GCS command line in the "control_panel.xml" file, a part of it reads "-layout horizontal.xml" 
so our configuration file is the "horizontal.xml" which is located always in "/Your Paparazzi directory/conf/gcs/".
Open the file and add or uncomment the line below (in "horizontal.xml" the plugin widget is there but commented out):
<widget NAME="plugin" SIZE="300"/>
Now the file should look like this:
 <rows>
 <widget size="500" name="map2d"/>
 <columns>
 <rows size="375">
 <widget size="200" name="strips"/>
 </rows>
 <widget size="400" name="aircraft"/>
 <widget name="alarms"/> 
 <widget NAME="plugin" SIZE="300"/> 
 </columns>
 </rows>
All the above works fine in Ubuntu 10.04 LTS. It should work fine on different versions of Ubuntu too. If it does not, look for solution in other wiki pages and the PaparazziUAV documentations. If all else fails discuss your issue in the PaparazziUAV Gitter discussion.
== Layout ==
The layout of the different components (map, strips, ...) of the gcs is configurable through a style XML file located in conf/gcs/. The specification is done via a combination of rows and columns. The default layout is given in the horizontal.xml file:
 
 <!DOCTYPE layout SYSTEM "layout.dtd">
 <layout width="1024" height="768">
 <rows>
 <widget size="500" name="map2d"/>
 <columns>
 <rows size="350">
 <widget size="120" name="strips"/>
 <widget name="alarms"/>
 </rows>
 <widget size="400" name="aircraft"/>
 <widget size="00" name="plugin"/>
 </columns>
 </rows>
 </layout>
Default size (1024x768) of the whole window is specified in the root of the tree. The window is then divided in two rows: 
* the map2d with a requested height of 500
* a set of columns containing
** a set of rows of width 350 divided into
**: the strips frame of height 120
**: the alarms frame
** the notebook frame (aircraft) of width 400
** the video plugin frame
This second example (left_col.xml) sets the map and the notebook on the right and the other frames in a left column:
 
 <!DOCTYPE layout SYSTEM "layout.dtd">
 <layout width="1024" height="768">
 <columns>
 <rows size="360">
 <widget size="120" name="strips"/>
 <widget size="300" name="plugin"/>
 <widget name="alarms"/>
 </rows>
 <rows>
 <widget name="map2d"/>
 <widget name="aircraft"/>
 </rows>
 </columns>
 </layout>
This layout file is chosen with the -layout option:
 path_to_ground_segment/cockpit/gcs -layout left_col.xml
Category:GCS Category:User_Documentation