• Project Magenta - High End Flight Simulation

What is a “Flight Simulator Offset”?

May 10, 2011 by Enrico Schiratti

To communicate with a Flight Simulator,  Project Magenta and other software uses the resources offered by FSUIPC (Peter Dowson) and XPUIPC (Torsten Spiering). For instance, to read the MSL altitude of the aircraft, a request is sent to the respective program and it would essentially ask for a location and the length of the value it is asking for.

Depending on the size of the value, the precision needed or even texts , this request can be from one to hundreds of bytes long. In most cases there are just bytes (1 byte), words (2), long integers/dwords (4)  or double precision floats (8 bytes). Texts would be as long as the maximum expected string and are usually zero terminated. There is a special case for on/off bits where the value would have to be extracted from the smallest data unit that is requested, i.e. from a byte.

Generally, you do not have to worry about these things… the software gets the data and writes the values it needs. But in some cases when you do your own interfacing of hardware or in some case even are programming your own features, you need to know what information can be found in which place. For this we have our own Project Magenta offset list as well as Peter Dowson’s SDK (Software Development Kit).

With the advent of pmSystems, things changed a little, because values from and to the flight simulator were given names (variable names in this case) and could be used to make certain things happen depending on others. In pmSystems we have a file called SysVar.TXT and it contains a long list of variable names for FS data, for information handled by Project Magenta Software as well as switches you may have in your hardware.

Here are some examples for the notation of these offsets, 0x merely indicates it is a hexadecimal address:

Bit:
561D .4 GenBus1
Offset 0x561D, bit 4, PM Generator Bus 1

Byte:
55F0 1 CaptPFDDim
Offset 0x55F0, 1 byte length, PM Captain Side PFD Display Dimmer

Word:
05DC 2 fsSlew
Offset 0x5DC 2 bytes, FS Slew Control

DWord:
0808 4 fsYawDamper
Offset 0×060, 4 bytes, the FS Yaw Damper

Double:
2834 8 fsBattVolt
Offset 0×2834, 8 Bytes, FS Battery Volt indicator

If you need to quickly check a value for an FS Offset while your simulator is running (for instance the yaw damper) you could look up the offset using pmFileCheck by entering the offset and its length. If you enter the offset, the length and a value, you can also set that offset within FS. If you are running pmSystems, you should see a dropdown box in the lower left corner with all Variables listed alphabetically.

In pmSystems you can also use the variable display which shows you in real time the values of all the sysvar variables at any given moment.

In the FMCs, if you go to the MAINT page, you can also check offsets by using the IPC menu.

For PM Offsets please check: http://www.projectmagenta.com/pmoffsets/
For FSUIPC offsets please check the FSUIPC SDK on http://www.schiratti.com/dowson.html


1 Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.