Board index FlightGear Development New features

Flightgear Android Navigation Displays for Airliners

Discussion and requests for new features. Please note that FlightGear developers are volunteers and may or may not be able to consider these requests.

Flightgear Android Navigation Displays for Airliners

Postby saul » Mon Nov 03, 2014 10:32 pm

Hi friends,

Today I have uploaded a new free Android App in the Play Store. This time it is a NAV display for airliners. At the moment the App works with the Boeing 777 and Airbus 330 (Omega), but I will start adding support to other planes in the near future. Many details like fixes, nav aids, waypoints (up to 12) have been carefully implemented so that the App resembles as much fatefully as possible the Boeing NAV display. The modes APP,VOR,MAP, ARC views, etc. are controlled from the panel in flightgear.
A major difference that I have introduced is that the PLN mode connects to Skyvector website and presents real flight maps centered in the current location, and draws the plane's position as well as the route.
Some features on the App are configurable by single screen touches. It is possible to hide/show fixes, nav aids, range circles, and the route waypoints. Likewise it is possible to change the Skyvector maps from terrain based to only-route based.

Here is a video that shows the App in action:



Here are some screenshots and installation instructions:

https://sites.google.com/site/flightgearandroid/flightgear-mfd

Saul
saul
 
Posts: 38
Joined: Tue Nov 26, 2013 9:57 pm

Re: Flightgear Android Navigation Displays for Airliners

Postby Johan G » Sat Nov 08, 2014 1:46 pm

While I am not that much into airliners I have to say that the app looks good. :D Nice also to see it change in sync with the display in FlightGear.
Low-level flying — It's all fun and games till someone looses an engine. (Paraphrased from a YouTube video)
Improving the Dassault Mirage F1 (Wiki, Forum, GitLab. Work in slow progress)
Johan G
Moderator
 
Posts: 5509
Joined: Fri Aug 06, 2010 5:33 pm
Location: Sweden
Callsign: SE-JG
IRC name: Johan_G
Version: 3.0.0
OS: Windows 7, 32 bit

Re: Flightgear Android Navigation Displays for Airliners

Postby legoboyvdlp » Sat Nov 08, 2014 2:44 pm

I may be getting an Android for Christmas :D so I will def. get this. Thanks for your hard work!
User avatar
legoboyvdlp
 
Posts: 7001
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Flightgear Android Navigation Displays for Airliners

Postby Hooray » Sat Nov 08, 2014 5:16 pm

Indeed, this is looking very good - in the long term it would however make sense to re-implement this on top of Torsten's mongoose work, and maybe reusing some of Gijs' Canvas/ND work (certainly the SVG stuff could be reused, maybe even some generic Nasal/JavaScript code).
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11329
Joined: Tue Mar 25, 2008 8:40 am

Re: Flightgear Android Navigation Displays for Airliners

Postby HelldiverSquadron » Sun Nov 16, 2014 4:13 am

I've used it. The delay is ever so slight and very insignificant. Really great for airliners and whatnot, though I mainly fly high speed military aircraft. It still kicks though and I say it is a must if you fly often and have a good server.
User avatar
HelldiverSquadron
 
Posts: 393
Joined: Sat Feb 16, 2013 6:35 pm
Callsign: Friend
Version: 3.0
OS: Windows 7 Ultimate

Re: Flightgear Android Navigation Displays for Airliners

Postby dutchman » Fri Dec 12, 2014 1:50 pm

Great App! Use it for the Omega Airbus. Would love to see future enhancements. Specifically ILS, QNS/STD and Roll Scale. If you need support, just let me know.
Thx for now.
A propeller is just a big fan in front of the plane used to keep the pilot cool.
When it stops, you can watch him start sweating.
dutchman
 
Posts: 52
Joined: Wed Feb 06, 2013 11:10 pm
Version: 2018.2.2
OS: WIN7-64

Re: Flightgear Android Navigation Displays for Airliners

Postby Hooray » Fri Dec 12, 2014 2:56 pm

dutchman wrote in Fri Dec 12, 2014 1:50 pm:Would love to see future enhancements. Specifically ILS, QNS/STD and Roll Scale. If you need support, just let me know.
Thx for now.


Before any significant amount of time is spent on re-implementing functionality available available on Gijs' ND, I'd suggest to seriously consider collaborating whenever possible - all the artwork and animation logic can be easily made platform-agnostic, i.e. there's nothing Android/FlightGear or Canvas-specific about updating a SVG element and animating/transforming it. To make this work, you would merely need to use a tiny subset of JavaScript and Nasal and add a few of helper functions as wrappers for platform-specific functionality (think property tree access) - TorstenD has already written most of the code required for this as part of his mongoose work.
That way, you could easily reuse the same SVG/artwork that's internally used by the Canvas ND.

http://wiki.flightgear.org/Canvas_Nasal ... ipt_Subset
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11329
Joined: Tue Mar 25, 2008 8:40 am

Re: Flightgear Android Navigation Displays for Airliners

Postby legoboyvdlp » Sat Jan 03, 2015 1:24 am

Hi saul, any help? I started FG in 777, A330, and 787 and in all itnsaid unfortunately fg pfd for android has stoppednor something.

I double checked settings. Imconfirm ip adress port everything correct. Any reason why it would say that?
User avatar
legoboyvdlp
 
Posts: 7001
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Flightgear Android Navigation Displays for Airliners

Postby legoboyvdlp » Sat Jul 04, 2015 6:54 pm

Anyone, any help? Still cant get it to work.
User avatar
legoboyvdlp
 
Posts: 7001
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Flightgear Android Navigation Displays for Airliners

Postby Vladimir Akimov » Mon Nov 09, 2015 8:52 am

This sounds great! Which options do we have more?
You know me from youtube :)
I'm VladFlyer, take a look :

https://www.youtube.com/channel/UCBOvOg ... yNsYKuAxbw
User avatar
Vladimir Akimov
 
Posts: 630
Joined: Tue Oct 22, 2013 7:05 pm
Callsign: VladFlyer
Version: 3.2.0
OS: Win 8.1

Re: Flightgear Android Navigation Displays for Airliners

Postby legoboyvdlp » Tue Dec 22, 2015 1:56 am

Has anyone got it to work besides Saul?
I must test another day...
User avatar
legoboyvdlp
 
Posts: 7001
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Flightgear Android Navigation Displays for Airliners

Postby dutchman » Tue Dec 22, 2015 7:25 pm

Yes i had it running on 3.4 for the A330. Works like a charm.
Your question made me curious so i tested it today with 3.6
Long story short, there's something broken in the way UDP clients are handled, and although not impossible it is rather difficult to get these apps running at the time.
The good news, they do both work!

Now to the actual problem.
If an UDP client is inactive during FG start, it is cut-off until next time the FG gets initiated.
Worse: if there are several UDP clients waiting in the start-up sequence and one of them is non-existent, all subsequent clients will receive nothing.
This is to my opinion definitely a bug probably introduced in September this year.
For those interested commit 64daece0766b2d79ae1750609cc3b0f92b24cfc4 date: 11-10-2015
I've sent a brief bug description to the devel-list. Follow-up will be posted here.

Back to the android apps. Only use one at a time in the start-up parameters for FG. Have it running (connected) on your tablet during FG start-up.
It won't connect at that time, but that's ok. It will signal FG that there is an UDP client listening, and that's what we need.
Now auto-start the A330, close the android app and open & connect it again. You should be up and running.

Cheers - Frans
A propeller is just a big fan in front of the plane used to keep the pilot cool.
When it stops, you can watch him start sweating.
dutchman
 
Posts: 52
Joined: Wed Feb 06, 2013 11:10 pm
Version: 2018.2.2
OS: WIN7-64

Re: Flightgear Android Navigation Displays for Airliners

Postby V12 » Tue Apr 25, 2017 9:00 am

Because I'm using Concorde for short and navigation difficult regional flights, I adopted A330's protocol for Concorde and can use this great app with that aircraft. Supported functions :
- standard NAV display (default)
- ILS approach
- ADF L and ADF R indicators
Display modes are binded to the Concorde TCAS modes, display scale is binded to TCAS scale. I know, this solution is not perfect, but functional solution.
Fly high, fly fast - fly Concorde !
User avatar
V12
 
Posts: 1485
Joined: Thu Jan 12, 2017 4:27 pm
Location: LZIB
Callsign: BAWV12

Re: Flightgear Android Navigation Displays for Airliners

Postby Johan G » Thu Apr 27, 2017 10:46 am

V12 wrote in Tue Apr 25, 2017 9:00 am:Display modes are binded to the Concorde TCAS modes, display scale is binded to TCAS scale

Probably not TCAS (Traffic Collision Avoidance System), but either CAS (Calibrated Air Speed) or TAS (True Air Speed). :wink:
Low-level flying — It's all fun and games till someone looses an engine. (Paraphrased from a YouTube video)
Improving the Dassault Mirage F1 (Wiki, Forum, GitLab. Work in slow progress)
Johan G
Moderator
 
Posts: 5509
Joined: Fri Aug 06, 2010 5:33 pm
Location: Sweden
Callsign: SE-JG
IRC name: Johan_G
Version: 3.0.0
OS: Windows 7, 32 bit

Re: Flightgear Android Navigation Displays for Airliners

Postby V12 » Thu Apr 27, 2017 9:05 pm

TCAS is better, because has range selector usable for scale navigation display.
Here is protocol file :

Code: Select all
<?xml version="1.0"?>

<PropertyList>

 <generic>

  <output>
   <line_separator>newline</line_separator>
   <var_separator>:</var_separator>

<!--
   <chunk>
    <name>heading</name>
    <type>float</type>
    <format>%f</format>
    <node>/orientation/heading-deg</node>
   </chunk>
-->

   <chunk>
    <name>heading</name>
    <type>float</type>
    <format>%f</format>
    <node>/orientation/heading-magnetic-deg</node>
   </chunk>

   <chunk>
    <name>AP heading bug</name>
    <format>%d</format>
    <node>/autopilot/settings/heading-bug-deg</node>
   </chunk>

<!-- NAV1 starts here -->
   <chunk>
    <name>NAV1 ID</name>
    <type>string</type>
    <format>%s</format>
    <node>/instrumentation/nav/nav-id</node>
   </chunk>

   <chunk>
    <name>NAV1 DME</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/nav-distance</node>
   </chunk>

   <chunk>
    <name>NAV1 DME in range</name>
    <type>bool</type>
    <node>/instrumentation/nav/dme-in-range</node>
   </chunk>

   <chunk>
    <name>NAV1 in range</name>
    <type>bool</type>
    <node>/instrumentation/nav/in-range</node>
   </chunk>

   <chunk>
    <name>NAV1 DME</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/frequencies/selected-mhz</node>
   </chunk>

   <chunk>
    <format>2</format>
   </chunk>

   <chunk>
    <name>NAV1 direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/heading-deg</node>
   </chunk>

<!-- NAV1 ends here -->

<!-- NAV2 starts here -->
   <chunk>
    <name>NAV2 ID</name>
    <type>string</type>
    <format>%s</format>
    <node>/instrumentation/nav[1]/nav-id</node>
   </chunk>

   <chunk>
    <name>NAV2 DME</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav[1]/nav-distance</node>
   </chunk>

   <chunk>
    <name>NAV2 DME in range</name>
    <type>bool</type>
    <node>/instrumentation/nav[1]/dme-in-range</node>
   </chunk>

   <chunk>
    <name>NAV2 in range</name>
    <type>bool</type>
    <node>/instrumentation/nav[1]/in-range</node>
   </chunk>

   <chunk>
    <name>NAV2 DME</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav[1]/frequencies/selected-mhz</node>
   </chunk>

   <chunk>
    <format>2</format>
   </chunk>

   <chunk>
    <name>NAV2 direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav[1]/heading-deg</node>
   </chunk>

<!-- NAV2 starts here -->

<!-- ADF1 starts here -->
   <chunk>
    <name>ADF1 ID</name>
    <type>string</type>
    <format>%s</format>
    <node>/instrumentation/adf/ident</node>
   </chunk>

   <chunk>
    <name>ADF1 in range</name>
    <type>bool</type>
    <node>/instrumentation/adf/in-range</node>
   </chunk>

   <chunk>
    <name>ADF1 freq</name>
    <format>%d</format>
    <node>/instrumentation/adf/frequencies/selected-khz</node>
   </chunk>

   <chunk>
    <name>ADF1 direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/adf/indicated-bearing-deg</node>
   </chunk>

<!-- ADF1 ends here -->

<!-- ADF2 starts here -->
   <chunk>
    <name>ADF1 ID</name>
    <type>string</type>
    <format>%s</format>
    <node>/instrumentation/adf[1]/ident</node>
   </chunk>

   <chunk>
    <name>ADF1 in range</name>
    <type>bool</type>
    <node>/instrumentation/adf[1]/in-range</node>
   </chunk>

   <chunk>
    <name>ADF1 freq</name>
    <format>%d</format>
    <node>/instrumentation/adf[1]/frequencies/selected-khz</node>
   </chunk>

   <chunk>
    <name>ADF1 direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/adf[1]/indicated-bearing-deg</node>
   </chunk>

<!-- ADF2 ends here -->

<!-- VOR1 starts here -->

   <chunk>
    <name>Radial direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/radials/selected-deg</node>
   </chunk>

   <chunk>
    <name>Real heading</name>
    <type>float</type>
    <format>%f</format>
    <node>/orientation/heading-deg</node>
   </chunk>

   <chunk>
    <name>Nav1 heading deflection </name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/heading-needle-deflection-norm</node>
   </chunk>   

   <chunk>
    <name>Nav1 gs deflection </name>
    <type>float</type>
    <format>%f</format>
    <node>/instrumentation/nav/gs-needle-deflection-norm</node>
   </chunk>

<!-- VOR1 ends here -->

   <chunk>
    <name>Encoder Mode </name>
    <format>%d</format>
    <node>/instrumentation/tcas/inputs/mode</node>
   </chunk>

   <chunk>
    <name>range </name>
    <format>%d</format>
    <node>instrumentation/radar/range</node>
   </chunk>

   <chunk>
    <format>false</format>
   </chunk>

   <chunk>
    <name>true air speed TAS </name>
    <type>float</type>
    <format>%f</format>
    <node>instrumentation/tas-indicator/indicated-speed-fps</node>
    <factor>0.592484</factor>
   </chunk>

   <chunk>
    <name>ground speed GS </name>
    <type>float</type>
    <format>%f</format>
    <node>/velocities/groundspeed-kt</node>
   </chunk>

   <chunk>
    <name>wind direction</name>
    <type>float</type>
    <format>%f</format>
    <node>/environment/wind-from-heading-deg</node>
   </chunk>

   <chunk>
    <name>wind speed</name>
    <type>float</type>
    <format>%f</format>
    <node>/environment/wind-speed-kt</node>
   </chunk>

   <chunk>
    <name>latitude</name>
    <type>float</type>
    <format>%f</format>
    <node>/position/latitude-deg</node>
   </chunk>

   <chunk>
    <name>longitude</name>
    <type>float</type>
    <format>%f</format>
    <node>/position/longitude-deg</node>
   </chunk>

<!-- Waypoints section starts here -->
   <chunk>
    <name>lat wp0</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp0_lat</node>
   <!-- <node>/autopilot/route-manager/route/wp/latitude-deg</node> -->
   </chunk>

   <chunk>
    <name>lon wp0</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp0_lon</node>
   </chunk>

   <chunk>
    <name>lat wp1</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp1_lat</node>
   </chunk>

   <chunk>
    <name>lon wp1</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp1_lon</node>
   </chunk>

  <chunk>
    <name>lat wp2</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp2_lat</node>
   </chunk>

   <chunk>
    <name>lon wp2</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp2_lon</node>
   </chunk>

   <chunk>
    <name>lat wp3</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp3_lat</node>
   </chunk>

   <chunk>
    <name>lon wp3</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp3_lon</node>
   </chunk>

   <chunk>
    <name>lat wp4</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp4_lat</node>
   </chunk>

   <chunk>
    <name>lon wp4</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp4_lon</node>
   </chunk>

   <chunk>
    <name>lat wp5</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp5_lat</node>
   </chunk>

   <chunk>
    <name>lon wp5</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp5_lon</node>
   </chunk>

   <chunk>
    <name>lat wp6</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp6_lat</node>
   </chunk>

   <chunk>
    <name>lon wp6</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp6_lon</node>
   </chunk>

   <chunk>
    <name>lat wp7</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp7_lat</node>
   </chunk>

   <chunk>
    <name>lon wp7</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp7_lon</node>
   </chunk>

   <chunk>
    <name>lat wp8</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp8_lat</node>
   </chunk>

   <chunk>
    <name>lon wp8</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp8_lon</node>
   </chunk>

   <chunk>
    <name>lat wp9</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp9_lat</node>
   </chunk>

   <chunk>
    <name>lon wp9</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp9_lon</node>
   </chunk>

   <chunk>
    <name>lat wp10</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp10_lat</node>
   </chunk>

   <chunk>
    <name>lon wp10</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp10_lon</node>
   </chunk>

   <chunk>
    <name>lat wp11</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp11_lat</node>
   </chunk>

   <chunk>
    <name>lon wp11</name>
    <type>float</type>
    <format>%f</format>
    <node>/androidnav/wp11_lon</node>
   </chunk>

<!-- Waypoints section ends here -->

   <chunk>
    <name>current wp</name>
    <type>string</type>
    <format>%s</format>
    <node>/autopilot/route-manager/wp/id</node>
   </chunk>

   <chunk>
    <name>number of wp</name>
    <format>%d</format>
    <node>/autopilot/route-manager/route/num</node>
   </chunk>

  </output>

 </generic>

</PropertyList>
Fly high, fly fast - fly Concorde !
User avatar
V12
 
Posts: 1485
Joined: Thu Jan 12, 2017 4:27 pm
Location: LZIB
Callsign: BAWV12

Next

Return to New features

Who is online

Users browsing this forum: No registered users and 5 guests