PPRZonDroid

__TOC__
= Introduction =
PPRZonDroid is an application that you can use to control Paparazzi aircraft with your android device. Some basic controls can be performed to a configured aircraft with this application. Server and android application are connected thru wifi, so they should be in the same network :)
Several clients can be connected at the same time with full or restricted access. This app should (theoretically) work with Android 3.2 and up.
= Installation =
The server application (App Server) is available with the Paparazzi software (above v5.1.1_testing) and is compile with the project. It can be launched from the Paparazzi_Center tools or directly with the command (with environment variables correctly set):
path_to_paparazzi_folder/sw/ground_segment/tmtc/app_server
The Android application can be installed from Google Play
Launch server application, and PPRZonDroid app with the correct configuration. App should connect to server and you are ready to go.
Please keep in mind that this application is under development and may not work on all Android devices.
= Configuration =
== Server Configuration ==
To launch server application by using paparazzi center, all you need is to add the below code to "programs" section of 'path_to_paparazzi_folder/conf/control_panel.xml' file.
<program name="App Server" command="sw/ground_segment/tmtc/app_server"/>
This will add 'App Server' to 'Tools>App Server' menu of Paparazzi Center.
Clicking this will launch server application with default settings.
App server uses TCP port (default:5010) to receive commands from clients and send aircraft information (like aircraft names, block names, etc) to connected clients. UDP broadcast is used to send ivy messages to clients. App server usage ;
app_server [options]
Options
* -t <TCP port> for receiving devices commands (default: 5010)
* -u <UDP port> for sending AC data (default: 5005)
* -b <Ivy bus> default is 127.255.255.255:2010
* -p <password> password for connection with control capabilities (default is 1234)
* -v verbose
* -h --help show this help
Type;
./app_server -h
to see help & options to configure App Server.
App server can handle several clients at the same time. Clients who has the correct password will control the aircrafts. If the client password is wrong then command send will be ignored.
== PPRZonDroid Configuration ==
Click 'Settings' (top right) to view the settings page of PPRZonDroid application.
*Use My Location: Click to use device gps to point your location on map. (Warning: Using this option will reduce battery)
*Connect Server on Start-Up -> (removed in v 0.5)
*Block Change Timeout(sec) -> Countdown time before jumping to clicked block (in seconds). Setting this value to 0 will make application to wait for user confirmation before changing current block.
*Server Ip Adress:Ip adress of pc where app server is running
*Server TCP Port: TCP port which application will use to connect server. (Should be same as app server setting)
*UDP Listen Port: Device listen UDP port. (Should be same as app server setting)
*Password to control Aircrafts: Password to be able to control aircrafts.
*Airspeed warning at: Application will alert user if airspeed is below this setting. (will not warn below 5m/s). This option will work only if an airspeed sensor is defined in airframe file.
PPRZonDroid application can handle multiple aircraft data. However only selected aircraft data will be shown on user interface. (see PPRZonDroid Usage)
= PPRZonDroid Usage =
PPRZonDroid application has different layouts for small screen devices (like cell phone) and big screen devices (like tablet).
PPRZonDroid is an easy to use application. Both layouts has the same functionalities.
There are three sections in the app. When the app is launched, main screen is viewed with two hidden menus. In tablet layout 'AC MENU' is static also. In main screen (see 'Screenshots' image);
*[1] = Shows menu to open 'Settings' window.
*[2] = Selected aircraft name
*[3] = Some flight parameters
To change the waypoint location; click and hold waypoint, drag it to the new place and drop it. This will fire the 'Waypoint changed' dialog. [14] After setting the desired altitude click 'Confirm Changes' button to save the changes. To change only altitude of a waypoint, click to the tooltip of that waypoint.
Sliding from left edge of the screen will show 'App menu'.
*[4] = Connect button will force app to reconnect to the server app.
*[5] = Clears the aircraft track on map.
*[6] = Trace the selected aircraft.
*[7] = Show/hide unselected aircraft markers.
*[8] = Change selected aircraft. You can also click aircraft marker tip to change selected aircraft. Aircraft list has AC icon, name and battery.
Selected aircraft's name will appear at the top [2]. Also selected aircraft marker will be marked with yellow corners in the map.
Sliding from right edge of the screen will show 'AC menu'. (This menu is static in big screen layout)
*[9] = PFD with some aircraft information. (like heading, battery, altitude)
*[10] = Block names of selected aircraft.
*[11] = Launch
*[12] = Kill throttle
*[13] = Resurrect
Clicking a block name in 'Blocks' list will send this request to app_server. However this request will be shown in UI after app gets this feedback from app_server.
A Jump to block countdown is added to version v0.5. App will send the request to app_server after countdown finishes. Timeout value can be configured in 'Settings'. Click check button to send the request immediately, or cancel button to stop&cancel the request.
Please see the demo video for brief app usage.
== Demo Video ==
= Troubleshooting =
The application may not work on all Android versions at the moment.
* Working configurations
** 4.2.2
** 4.3 (HTC One)
** 4.4.2 (Nexus 5, Nexus 10)
* Not working configurations
** 4.0.1 (Galaxy Tab)
Category:Tools Category:User_Documentation