ADF2 Project
FS2000 Support Module
Release 1.00 - June 2001
Copyright (c) 2001 Marco Ravanello (rava98@email.com)
All Rights Reserved

Installation Manual
________________________________________________________________


Intro
=====

After almost 20 years and a moltitude of new releases, Flight
Simulator does not yet provide support for the second ADF. Only
ADF1 is available, even in the "Professional Edition" version.

This module adds this functionality and let gauges and other modules,
access its internal data through a set of function calls (APIs).

Averything needed to interface to the ADF2 Module is made available
to the public through the separate ADF2 C/C++ SDK archive.

Now gauge developers can produce RMIs, HSIs/EHSIs, ADFs and any
kind of ADF-sensible navigation system taking full advantage of
an ADF2 receiver.

ADF2 has been originally developed for FS2000, being the "current"
Flight Simulator version, but it should work also with other FS
versions, including CFSs. See "Compatibily Notes" paragraph for more
details.


How the system works
====================

ADF2 is implemented as a Flight Simulator "Module". A Module is a
"program" which is directly executed by FS itself, at startup, and is
active all the time, until FS is terminated. ADF2 should be considered
something similar to an "Adf2 Server", processing requests coming
from "Adf2 Clients", which can be either gauges or other FS modules.

When FS is started and the ADF2 Module is executed, it actually does
nothing except some internal data initialization. Then it will not
perform any kind of processing until a "client" awakes it.

In this way ADF2 module will not eat ANY CPU cycle until a client
activates it. So if there are no active "Adf2 Clients", FS will run
as if the ADF2 module would not even be installed. But note that, even
when active, ADF2 is a very light process. Or, at least, it was designed
and implemented to be as less heavy as possible.

Once active, the engine is frequency-driven. When a new frequency
is selected, the ADF2 engine will find the closest NDB station
(transmitting on that specific frequency) and, if it is within its
associated range, it will be "activated" (or "made the active one").
From that moment the engine will start providing data to clients
(typically magnetic bearing), and will stop only when the station
goes off range or a new frequency is selected.


The Database
============

The database used by ADF2 is (or should be) an exact copy of the one
used by FS2000. To build it I developed a small program scanning all
BGL files and extracting NDBs info. But since I'm not very familiar
with BGL file format, I'm not sure the program is really able to extract
all of them :-)

If you identify missing NDB stations, please, provide me all data via
email and I'll add them to the database.

Additionally, in a near future, I'm planning to release also a DB
Compiler and the "source" ASCII file to let the end user add her/his
own NDBs without requiring an "official" DB release.

I'm sure many readers would ask why ADF2 uses a copy of FS2000 default
database, which is quite old, and not a more recent one.

The answer is simple. ADF2 must be consistant with ADF1. And, since ADF1
uses FS2000 database, ADF2 does the same. I originally started ADF2
development using very recent data but I soon discovered that is was
absolutely not a good idea to have 2 "onboard" ADF istruments which,
in some cases, when tuned to the very same frequency, produce a different
"output" or, more often, a certain frequency was being received only by
one of the two ADFs (because the station is not present in both databases).


What is included in the main distribution archive
=================================================

Adf2Mod.Dll The ADF2 Flight Simulator Module

ndbs.bin Worldwide NDB stations database



Installation
============

1 ) Extract the content of the archive into a temporary folder.
(archive does not contain subfolders)

2 ) Copy Adf2mod.dll in the MODULES subfolder of your Fs2000
installation directory. (ex.: If you installed fs2k to
k:\mypath\fs2000 then you should copy Adf2Mod.dll into
k:\mypath\fs2000\modules\)

3 ) Create a subfolder named "ADF2" within main Fs2000 folder.
(ex.: If you installed fs2k to k:\mypath\fs2000 then you should
create k:\mypath\fs2000\adf2)

4 ) Copy ndbs.bin in the newly created ADF2 subfolder

That's all, the ADF2 subsystem is installed and ready to provide data
to ADF2 Clients!

In general, the AFD2 module MUST be installed if you want to run any
kind of "Adf2 client". Consequently to run a gauge (so a panel including
it) accessing ADF2 data, ADF2 Module will have to be installed BEFORE
(running FS), otherwise the gauge will not work.

Normal question would be "Having several panel installed, and
only one/two of them are using the ADF2 module, what should I do,
should I install/remove it every time?". No, as explained below,
you'll have to install it the first time you'll need its support.
Then, when using a panel not accessing ADF2, the module will be
completely unactive. This is similar to FS2000 default GPS. It is
always present, but if it does not get called, it sits in the
background.


Compatibility Notes
===================

ADF2 Module, and the associated IPC mechanism, has been tested over
the following combinations of operating systems and Windows versions:

- Flight Simulator 98 running on Windows 98 Second Edition
- Flight Simulator 98 running on Windows NT (WkSta) 4.0 SP4

- Flight Simulator 2000 running on Windows 98 Second Edition
- Flight Simulator 2000 running on Windows 2000 Professional
Tested by (and THANKS to) David Durst

But it should work also on Windows ME (as O.S.) and with CFS and CFS2
(which are very similar to FS).

Thanks in advance to anybody providing me compatibility reports on
any untested platforms!


Reporting Problems
==================

Send them, as well as any question, via email to rava98@email.com.

When reporting problems related to the behaviour of the Module,
please specify:

- Flight Simulator Version and Edition (Std or Prof)
- Operating System used
- Problem description (of course :-)
- Operations sequence to reproduce it

When reporting missing NDB stations please specify:

- Station ID (up to 5 alphanum. values)
- Frequency
- Latitude
- Longitude
- Range
- Name (if any associated)

I'll answer as soon as possible, time permitting.


Copyright & Distribution Rules
==============================

ADF2 is Copyright (c) 2001, Marco Ravanello, All Rights Reserved.

ADF2 is distributed as Freeware at the following conditions:

- The original archive can be uploaded to any BBS and/or WEB site
as long as it is FREELY made available to anyone, and as long as the
archive is not modified in any way.

- Freeware Panels/Gauges using ADF2 cannot include the ADF2 module
within their distribution archive without prior permission.
Try to email me to get the permission, I'll normally grant it but,
in general, I'd prefere the archive to just include the URL
where ADF2 can be downloaded.

- Commercial developers willing to use/include ADF2 into their packages
should contact me via email.


Happy navigation!

Marco Ravanello
rava98@email.com