ACS-GPS98 V1 / GPS gauge for electronic display
By Alain Capt / acapt@worldcom.ch / Switzerland
URL: http://www.acsoft.ch ("Produits" chapter)
-----------------------------------------------

*******************************
* VERSION 1.20 / July-15-1998 *
*******************************

PRELIMINARY REMARKS
-------------------

Please read "install.txt" for installation instructions. DON'T TRY TO INSTALL
BEFORE YOU READ THIS FILE !!!

ATTENTION !!! To work properly, ACS-GP98 Vx family need a FULL UPDATED Flight
Simulator 98. This mean you must have installed the two Microsoft official
updates: "FSCONV98" and "Patch Set No1". You can freely download these stuffs
on Microsoft Internet site or several other sources, like flightsim.com.

This readme is the base for all ACS-GPS98 Vx family. Therefore you must read it
first. Complementary "readmeVX.txt" give differences, for the specific Vx GPS
model, in relation with this readme file. Usage of the new "ACS-GPS98 data's
Manager" extension is described into "readmeDA.txt".

If you plan to build your own GPS data file, without the help of the new
data's Manager extension, it is FUNDAMENTAL you read this readme IN ALL,
especially chapter: DATA FILE FORMAT, SYNTAX AND ERROR MESSAGES. This
chapter will let you know how to prepare data's text file for the GPS.
The included ACS-GPS.dat file is an example of data's file, which also
demonstrate how much tolerant is the syntax for the data's. If you look at
this file without having a first basic knowledge of the syntax you will be
just in trouble with what you will discover.

Developers will found interesting information's in "FINAL REMARK" section.


DESCRIPTION
-----------

All GPS "on the market" don't give me full satisfaction. For example, all of
them looks ugly with high resolution panels. They also are all designed like
an instrument, with button, which is not the good solution, if you want to
have your GPS as an electronic display. So, I decide to develop my own GPS
gauge, after an unfortunate try to collaborate with Masakazu Irie. As you
known, in the life, you are always best served by yourself !!!

This V1 version of ACS-GPS98 gauge was designed as an electronic display to
be used with my two "Multi-purpose 2 & 4 engines airliner" panels. Therefore
all "command buttons" are hidden on texts of the gauge. There is also no
"needle indicator" for heading. This GPS is designed to be used in link with
the aircraft autopilot. I build also a stand alone package for users who
wants to use it as a separate panel window, with other panel.

ACS-GPS98 V1 is a full featured programmable GPS. Up to 32 destinations can
be loaded into GPS memory from a data file, in an easy editable text format.
This is done automatically, when gauge is loaded by FS98.

These data's for the GPS gauge can be managed with "ACS-GPS98 data's Manager".
You can run this extension direct from GPS gauge or from outside FS98. Data's
Manager will let you create, modify etc... as many programs for the GPS as
you want. Those programs can be then loaded into GPS memory, directly from
the Manager.

Data's Manager include a database with all Airports and Navaids of FS98 you
can use to create your GPS Program's. This database is made of a set of text
files. Therefore user should be able to extend this database with a simple
text editor or more powerful programs like Access or Excel.

GPS can work in two modes: A "tour" mode, where all loaded destinations are
considered as a sequence of "legs" for the flight, or a "Single-Destination"
mode. In this last mode, GPS will not switch automatically to next leg,
when destination reached, but execute the selected destination behavior:
Simply switch GPS to "standby" (disconnected from autopilot) and continue,
circle over destination or switch to "standby" and activate "pause" of FS98.
Of course, in "tour" mode, destination behavior will occur on last leg.

GPS always display current airplane coordinates (long/lat) and current leg
coordinates. Display of them can be toggled between standard mode (Deg Min Sec)
or FS98 mode (Deg* Min.decimal). GPS also display, of course, the heading
to leg, the distance to leg in [nm], the ETA (Estimated Time to Arrival).


HOW TO IMPLEMENT ACS-GPS98 Vx IN PANELS
---------------------------------------

If you are not an experienced user on the matter of panel modification, I
recommend to you to download the Microsoft Flight Simulator SDK. This
"Software Development Kit" will give you all the information you need to
manage panel modifications.


USAGE OF THE GPS GAUGE V1
-------------------------

The first line on the GPS gauge is the title. It is also the hidden button
to launch the ACS-GPS98 data's Manager extension, which let you create and
manage as many GPS program you want. Read "readmeDA.txt" for a full detailed
description of this extension. In the case you uninstall the data's Manager,
this hidden button will let you reload data file as before. When the gauge
is loaded by FS98 and if a valid ACS-GPS.dat is found, data will be already
be automatically loaded.

If the data file was not found or contain syntax error, the gauge will be
in data error mode. This mean all data fields will be invalid and the GPS
cannot be activated.

the id: field will indicate "ERROR" and the following line, which normally
contain the name of leg destination, will indicate the error. For syntax
errors, "item number" and "line number" of item will be indicated followed
by an "error number" (see here after syntax error description).

Then we have a first group of information, between two lines. In this first
block are grouped destination legs information's. You can see "id:" of leg,
followed by a full line to indicate the "name" of leg. "Leg:" indicate
which leg is now active (displayed). You can toggle between "Tour" mode
and "Single-Destination" mode by clicking on "Leg:". You will know which
mode is selected by looking on how leg is indicated. If indicated with
the format "01/08" THIS INDICATE TOUR MODE and will also tell you that you
are on first leg of 8 legs in all. If the format is "03-SD", you will know
YOU ARE IN "SINGLE-DESTINATION" MODE with the third item of the data file.
Under the name of leg, two last lines of this group, labeled "Long:" and
"Lat:" indicate coordinates of leg. "Long:" and "Lat:" text's are also
hidden button to navigate back and forward into GPS memory of legs.

Following, is the central group indicating the heading to leg destination
and the ETA (Estimated Time to Arrival).

In the next group, we have first the distance to leg ("Dist to leg:"),
followed by the actual plane position. You can use the hidden button over
text "Long:" and "Lat:" of this group, to toggle the display mode of
coordinate between "Standard" or "FS98" formats.

The last group let you switch GPS between "STANDBY" and "ACTIVE" by
clicking on label "GPS status:". When GPS is in "standby", it is simply not
connected to FS98 autopilot. When switched to "active", GPS will take the
control on autopilot. Therefore you will not be able to change heading
on autopilot nor to deactivate autopilot heading. You can still switch
off autopilot. In this case, GPS will automatically be set in standby
mode. When you switch GPS back to standby, using hidden "GPS status:"
button of GPS, autopilot WILL NOT BE SWITCHED OFF. All remain "in the state"
except that now, GPS is not anymore connected on autopilot.

At least, on the right down corner, you will found the indicator of
"destination behavior". "Of" indicate "Off mode" where the GPS will be
simply returned automatically to "standby" when destination reached. "Ps"
behavior will also put GPS in "standby" but also activate FS98 "Pause".
"Ci" behavior will let the plane circle over destination. To switch
between those different modes, simply click on the indicator.


DATA FILE FORMAT, SYNTAX AND ERROR MESSAGES
-------------------------------------------

Data file is a simple text file. It must be named "ACS-GPS.dat" and placed
into installation directory of FS98 (alternatively also C:\ root).

The file can contain a maximum of 32 records, each records is composed of
four items for leg parameters (one per line), followed by a "blank" line
(separator line).

Here is the record description:

IDENT   leg identification (max 5 char, will be truncated if longer)
NAME    leg name (max 20 char, will be truncated if longer)
LONG    Longitude of leg into FS98 format (see syntax here after)
LAT     Latitude of leg into FS98 format (see syntax here after)
SEP     A maybe blank separation line (line is ignored)

Syntax for LONG and LAT:

- First character must be "E" or "W" for longitude "N" or "S" for latitude
  (must be capital).
- All further non numeric characters are then skipped.
- First numeric character to next non numeric character taken as degree,
  must be under or equal to 180, for longitude and under or equal to 90,
  for latitude.
- Then skip again to next numeric char.
- All next numeric char taken.
- Then, if a "." char is found it will also be taken and almost one numeric
  char must, in this case, follow the point. Further more numeric characters
  taken, until first non numeric char (if any). This second numeric value
  is taken as "minutes.decimal" (FS98 format). Must be zero if previously
  specified degrees was 180 for longitude, or 90 for latitude.
- Rest of the line will be ignored (if any).

Every line of file must be not longer than 255 characters.

this syntax mean that all following examples are legal:

E0 0
W115* 12.123456 Minutes // high precision
South latitude: 23 degree 34.28 minutes-decimal
N 46* 23.45
W118*3.8
etc...

Here are the meaning of error messages that might be returned:

ER_LineIsTooLong        100    Encounter a line over 255 char

ER_InvalidOri           101    First char of longitude different of "W" or "E"
                               or different of "N" or "S" for latitude.
ER_PrematureEndOfLine   102    A longitude or latitude line ended before all
                               needed data found.
ER_DegLongInvalid       103    Invalid degree for longitude.
ER_DegLatInvalid        104    Invalid degree for latitude.
ER_MinInvalid           105    Invalid minute.
ER_DegNotFound          106    On longitude or latitude line, no numeric char
                               found for degree.
ER_MinNotFound          107    On longitude or latitude line, no numeric char
                               found for minutes.
ER_NotNumAfterPoint     108    point is followed by non numeric.
ER_TooMuchRecords       109    32 records limit overpass.
ER_PrematureEndOfFile   110    File end encountered inside a record.
ER_SystemIO             999    System read file error occur.


FINAL REMARKS
-------------

ACS-GPS98 Vx will look into you Windows-95 Registry to found the location of
the FS98 installation. This process may fail in some circumstances. Therefore
a "security alternative" was designed: If gauge cannot found FS98 path, it
will ALSO LOOK FOR ACS-GPS.DAT ON ROOT OF HARD-DISK C:\.

ATTENTION, like every other gauges in FS98, if the window which carry the gauge
is not displayed, THE GAUGE IS NOT ANYMORE ACTIVE.

The "ACS-GPS" directory, created during installation, is not needed by the gauge.
Therefore, you can move it somewhere else, if you want. But it not recommended
to do so, because the data's Manager default "Programs" directory is set to this
path, on the "Programs" sub-directory.

Gauges and data's Manager were written in Visual C++ 5.0 using the Microsoft
panel SDK reference. Internal design was programmed to be as less as possible
computing consuming and FS98 drawing refreshing. For example, 3D vectors
computation for heading is "ticked" to occur only every 1 second instead of
standard 18 Hertz FS98 ticker.

Unfortunately, "strings" in gauge, especially with 3DFX full screen mode, are not
fully proportional. I mean, depending on the magnification factor of the gauge,
string may vary in size and placement onto gauge area. Therefore, for a successful
panel implementation I recommend the following method:
First of all, seek the magnification factor for the gauge, according to the
resolution used in the panel, in order to have an optimal looking gauge (all string
with the good size and well placed). This will determine the size the gauge must
have. Then you can design (or modify) you panel to receive the gauge.
ACS-GPS98 V1 is optimized on 1280x960 panel resolution with a magnification factor
of 250 and for ACS-GPS98 V2 (compact version), factor is 240.

All remarks, comments, ideas etc... are welcome to the following address.


COPYRIGHTS
----------

ACS-GPS98 PACKAGE IS FREEWARE AND NO MONEY SHOULD EVER BE MADE WITH IT !!!

WRITTEN PERMISSION OF AUTHOR IS NEEDED TO COPY THIS PACKAGE OR PART(S) OF IT, ON
EVERY MEDIA LIKE CD-ROM, DISKETTE, BBS, INTERNET SITES ETC..., IN THE CASE USERS
MUST PAY TO ACCESS THIS MEDIA OR HAVE TO BUY IT.

I DO NOT GIVE THE RIGHT TO ANYBODY, WITHOUT MY PRIOR WRITTEN PERMISSION, TO USE
ANY ACSOFT PRODUCTION COPYRIGHTED FILES (SEE FILE PROPERTY OR DOCUMENTATION),
EXECUTABLE OR NOT, IN ITS ORIGINAL STATE OR MODIFIED WITH UTILITY SOFTWARES
LIKE GAUBMP.EXE, GAUMOD98.EXE ETC..., INTO A PANEL OR OTHER APPLICATIONS
INTENDED TO BE PUBLISHED, EVEN IF PUBLICATION WILL BE A FREEWARE.


CREDITS
-------

My good friend Thierry HEEB, a really "big mathematics head" which create for
me, a mathematical model for the computation of GPS heading, based on "analytic
geometry in space" theory.

Microsoft Corporation, for the publication of Flight Simulator 98 SDK.


AUTHOR
------

Alain Capt
35 ch. des Passiaux
CH-1008 PRILLY
SWITZERLAND
Tel + Fax: 41-21/ 648 38 37
E-Mail: acapt@worldcom.ch
URL: http://www.acsoft.ch  (look on "Produits" chapter to found FS98 pages)


Have nice GPS flight and perfect ILS landing with ACS-GPS98 !!!
