Haversine Flight Simulator 2020 Air Plugin 6.1
##############################################

This plugin connects Microsoft's flight simulator 2020 to instances
of AirTrack, AirFMC and AirEFB apps. AirFMC is currently only supported when used
in conjunction with the PMDG 737 NG3 family of planes due to FS2020 SDK limitations.

In addition this plugin allows you to interface with CPFlight family 
of MCP 737 (serial versions).

SUPPORTED FEATURES:
===================

AIRTRACK
========
- Attitude Indicator / PFD
- Compass
- Speed / Altitude / VSpeed / Status
- Remote Control (joystick)
- Navigation Display with flight following
- COMS interface
- MCP interface 
- Waypoints database
- Charts Viewer
- Flight Plan Read from FS2020
- CPFlight MCP737EL and MCP737PRO integration
- PMDG 737 NG3

AIREFB
======

- Flight following in the taxi map is supported. 
- ATC traffic isn´t supported. 
- The provided airport taxi database is based on X-Plane's and may not always 
match the airports of FS2020. 
- Checklists in .clist format can be imported using file sharing or created 
locally.
- PDF Documents can be imported using file sharing
- Charts are available, both via cloud service and locally copied using file 
sharing.

AIRFMC
======

- Supported only with the PMDG 737 NG3 family of planes

INSTALL INSTRUCTIONS:
=====================

1) Launch FS2020, load the plane and everything ready for takeoff.

2) Open a command line window (type CMD on the search bar of windows)

3) Change directory to where the plugin is located, for example:

C:\>CD HSAIR-FS2020

4) Launch HaversineAir.exe from the command line; make sure the provided
simconnect.dll file is present so that it can be used to access the
simulator. 

The HaversineAir plugin will attempt to connect to the simulator. It will also
make itself available to instances of AirTrack, AirFMC and AirEFB on the local
network using multicast and auto-configuration. If this doesn´t work (some
networks don't do well with multicast) you can manually specify the IP address(es)
of AirTrack, AirFMC or AirEFB instances using the -i option. For example:

C:\HSAIR-FS202>HaversineAir.exe -i 192.168.0.10 -i 192.168.0.20

Will attempt to communicate with Apps on IP addresses 192.168.0.10 and 
192.168.0.20 in addition to the default multicast AUTO behaviour.

If this still doesn´t work, check your Firewall or Anti-Virus configuration 
and make sure they aren't blocking the required UDP traffic. The plugin 
communicates with instances of apps using UDP packets from the computer 
where it is running to ports 2423 and 2424 for AirTrack instances, 2425 for
AirFMC and 2426 for AirEFB Make sure your traffic policy allows these in and out.

5) If you're lucky enough to have a CPFlight MCP device such as the MCP737EL
or MCP737PRO this plugin also allows you to control and receive commands 
to/from it. Just specify the COM port to which it is attached in the command
line and you're ready to go. 

For example, if the MCP is on COM3, just type:

C:\HSAIR-FS202>HaversineAir.exe -c 3

RELAUNCH WHEN LOADING A FLIGHT:
===============================

The plugin may lose connectivity if you spend too much time on a
menu, when changing planes, configuring, etc. If / when it stops responding, *after* loading a
plane please switch back to the command line window with ALT-TAB, press CTRL-C to quit the
previous instance of the plugin and launch it again by repeating the previous connect.

That's all!

Limitations:
============

While we try to keep comatibility with as much as we can, it is not always possible to
support all features with all planes. This is especially true with third party planes
with advanced avionic systems that may not use the standard SimConnect SDK variables,
and can also happen with MSFS2020 that just don't use or update those variables.

As an example, it doesn't seem to be possible to detect the AT ARM status of the default
747 as it doesn't update the corresponding SimConnect variable. On another example a third
plane may implement its own radio set variables and not read or write to the standard ones,
this making any updates to radio frequencies non effective. Flight mode statuses on the PFD
may also not always be accurate due to these.

We'll try to keep compatibility and support to the maximum of what is technically possible
given the MSFS SDK with every new version of the plugin. In some cases such as the PMDG 737,
the plugin goes a bit further and uses its own PMDG SDK to access and control plane variables,
this greatly enhancing the overall app expericence.

PMDG 737 NG3
============
As of version 6.0.0, special support has been added to interact with the PMDG 737 NG3
family of planes thorugh its SDK. In order for it to work there are a couple if lines
you need to add to the plane's ini file. From the PMDG NG3's documentation it reads:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

The PMDG 737 is already set up to listen for control events that may originate from an
external application. However, since providing state data to third party applications
does consume a small amount of processor attention, we have disabled this communication
output by default since the vast majority of our users will not be using SDK driven
applications. To enable the data communication output, you will need to open the file
737_Options.ini that is located in the 737 persistent storage folder.

For Microsoft Store distribution, this folder is located at %LOCALAPPDATA%\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\packages\pmdg-aircraft-737\work\.
For Steam distribution, this folder is located at
%APPDATA%\Microsoft Flight Simulator\Packages\pmdg-aircraft- 737\work\.

Once this folder is open, add the following lines as required to the bottom of the file:

[SDK]
EnableDataBroadcast=1
EnableCDUBroadcast.0=1
EnableCDUBroadcast.1=1

Add only those line(s) that enable the data output that you need, such as data or
specific CDU units. When you release your product to customers, it will be necessary
for your application installation to set these parameters on the customer’s installation
or else they will not see data connectivity between your application and the PMDG 737.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Some limitations of the PMDG implementation:

Due to its SDK not exposing the required variables, it may not be possible to determine
the exact state of the Navigation Display display options such as STA, WPT, ARPT, or the
PFD minimums, baro pre-selection and so on. In this case AirTrack will still act on the
loaded plane but will keep its own view of the options which may not always be in sync.
For example, it is possible that waypoints are displayed in the NG3 ND and hidden in
AirTrack and vice versa when pressing the WPT key.

Baro/minimums increments / decrements seem to happen at more than one unit at a time.
This seems to be a PMDG SDK issue.

EFIS BARO doesn't fully support STD mode (since it is not possible to read the
pre-selected altimeter) so updates will only happen when in non STD mode.

It is currently not possible to read the NG3 flight plan from the waypoints entered
in the CDU (i.e. they are internal to PMDG). The flight plan loaded will be the one
entered in FS2020 when loading the flight, and may be different that
the one actually entered in one of the CDUs. For this reason we recommend using
AirTrack in Local Flight Plan mode with the NG3 and then loading the exact same plane
on AirTrack and on the NG3 using the CDU, so that they match.

ISSUES AND SUPPORT: 
===================

If you have any issues or suggestions please contact support (at) haversine.com
and we'll get back to you as soon as possible. 

RELEASE NOTES:
##############

Version 6.0.0 - 2023.09.05 - Adds support for the PMDG 737 NG3 including for AirFMC
                           - Improves generic FS2020 plane support with latest SDK
                           - Adds support for Flight Plan Read-Only from MSFS
                           - Version bumped to 6.0.0 in order to align with other
                             plugin's (X-Plane)
                           
Version 1.0.0 - 2020.09.18 - MCP and CPFlight support added

Version 0.9.0 - 2020.09.11 - First beta version of the plugin

