FSUIPC Offsets Status
FSUIPC Offsets Status
Items in blue are new to FSX, those in purple are specific to P3D4/5
Ok-SimC works okay using SimVars
Ok-PDK P3D4. Works using the P3D PDK.
Ok?-SimC was reported as working via SimVars but this was contradicted by other reports
Ok-SimC* more or less works using SimVars, but there are difficulties (explained in Notes)
Ok-SimE for write only, works okay, but resorting to Sim Events via SimC, not SimVar reads
or writes
Ok-Lvar Okay using gauge local variables (“L:variables”).
Ok-Intl works okay, is internal to FSUIPC in any case
Ok-Intl* more or less works using internal derivation, but there are difficulties (explained in
Notes)
Ok-Hack works by hooks or patches or other devilish means
?-Intl May work, untested, but FSUIPC internal in any case
?-SimC Mapped to SimConnect variables, but validity unknown. Needs checking and
feedback please
?-SimE Mostly for write only, mapped to Sim Event, but operation unknown. Needs
checking and feedback please
?? situation unknown – try it or wait for next issue
No-SimC Not working, awaiting fix in SimConnect
No-SimE Not working, Sim Event seems broken, needs fix in FSX?
No-SimC+ Not working, hoping for additions to SimConnect
No Not supported. (Appeals to Pete Dowson, with reasons, please)
Not yet Maybe can do okay, but not yet got around to it!
No info Data unknown, not listed for SimConnect. Not yet followed through
Not tested Maybe already okay, not tested yet
Maybe Question mark, see italic text in “use” section
Problem See italic text in “use” section
N/A Not applicable
Offset Size Use FS Read FS Write
0000 32 Reserved for diagnostics
0020 4 Ground altitude in Metres x 256. (see also offset 0B4C) Ok-SimC No
0024 256 READ: Zero terminated string giving the Start-Up situation or Ok-Intl No
flight name, including the path (complete, or from the FS folder)
WRITE: Operates a facility to “spoof” Flight Sim read-out No Ok-Intl
values as supplied to all FSUIPC and WideFS client
applications.
To use this, write the following to offset 0024, as one structure (i.e. one
FSUIPC_Write call):
struct {
WORD offset; // base offset of data to be overridden
WORD length; // length of data (max 252)
BYTE[ ] data; // Up to 252 bytes of data
};
The override is established the first time you do this for a specific offset
+ length combination. Any overlapping setting replaces the previous
one, but re-writing the same one with different data is fast as it merely
writes to the relevant offsets -- the FS data is already being diverted.
Cancel the overrides by writing the same with no data and a length of 0.
If you don't cancel, but don't update, the override will be cancelled after
about 12 seconds (not counting Menu time). Avoid letting this happen,
though -- always explicitly cancel when finishing.
Note that not all FSX values can be overridden in this way, and none of
the normal FSUIPC values can be permanently overridden. However,
this facility does provide direct access to ALL offsets, and you can
easily wreck things and ruin someone's day! Those which are normally
write-protected are not so protected using this facility.
The “Liar.lua” plug-in supplied with the Lua additions demonstrates this
facility, and also shows the only way provided of reading the un-
spoofed values: a privilege afforded only to the Lua ipc.readStruct
facility in the Lua program which actually applies the overrides too.
012C 1 The name of the current Log book—not available in FSX No No
0130 256 The current flight Plan path & file name (in UNC format if Ok-SimC Ok-SimC
WideFS is in use). This can be written to to load a flight. But
note that this normally loads the newer fxml format flights only.
With FSUIPC5, to load an FS9 format .flt file use the full
filename including the .flt, but follow this with another .flt (i.e.
“name.flt.flt”). The extra one will be stripped off leaving the
correct name.
0230 8 “Absolute Time”, in seconds, double float. This is unchecked, Ok-SimC No
but is said to be the time since 12 noon on January 1 st, Year 0000
(?).
0238 1 Hour of local time in FS (0–23) Ok-simC ?-SimE
0239 1 Minute of local time in FS (0–59) Ok-simC ?-SimE
023A 1 Second of time in FS (0–59) Ok-simC Ok-SimE
but
For setting, FSX provides “KEY_CLOCK_SECONDS_ZERO” Only setting
only. No way to directly set a number of seconds. zero when
close – see
Notes
023B 1 Hour of Zulu time in FS (also known at UTC or GMT) Ok-simC Ok-simE
023C 1 Minute of Zulu time in FS2 Ok-simC Ok-simE
023D 1 Zulu day of month in FS (counting from 1) Ok-simC No
023E 2 Day number in year in FS (counting from 1) Ok-simC ?-SimE
0240 2 Zulu year in FS Ok-simC ?-SimE
0242 1 Zulu month of year in FS Ok-simC No
0243 1 Zulu day of week in FS Ok-simC No
0244 1 Local month of year in FS Ok-simC No
0245 1 Local day of month in FS Ok-simC No
0246 2 Local time offset from Zulu (minutes). +ve = behind Zulu, –ve = Ok-simC No
ahead
0248 2 Season: 0=Winter, 1=Spring, 2=Summer, 3=Fall Ok-Intl No
024A 2 Local year in FS Ok-simC No
024C 4 Available FS memory in kilobytes (updated every 10 seconds) Ok-Intl No
See also offsets 0258 and 0290.
0250 1 AI Airline Traffic Density % (0–100). If you increase this you Ok-Intl Ok-Intl
(Hack) (Hack)
will normally see an FS progress bar as it reloads traffic
0251 1 AI General Aviation Traffic Density % (0–100). If you increase Ok-Intl Ok-Intl
(Hack) (Hack)
this you will normally see an FS progress bar as it reloads traffic
0252 1 AI Ships & Ferries Traffic Density % (0–100). If you increase Ok-Intl Ok-Intl
(Hack) (Hack)
this you will normally see an FS progress bar as it reloads traffic
0254 1 Cloud cover density: 5=LOW to 8=MAX. This can be written Ok-Intl ?-Intl
(Hack) (Hack)
to, and it does change the slider position, but whether it directly
affects the cloud drawing isn’t known at present.
0255 1 Cloud simple/complex flag: 0=Simple, 1=Complex. This can be Ok-Intl ?-Intl
(Hack) (Hack)
written to, and it does change the setting, but whether it directly
affects the cloud drawing isn’t known at present.
0256 1 Thermal visualisation setting: 0=None, 1=Natural, 2=Schematic Ok-Intl No
(Hack)
0258 4 Memory currently assigned to FSUIPC4 (including WideServer) Ok-Intl No
See also offset 024C. This is in Bytes.
025C 4 The current total number of AI Traffic aircraft. See offsets 02A2 Ok-Intl No
& 02A4 for separate ground/airborne counts.
0262 2 Pause control (write 1 to pause, 0 to un-pause). N/A Ok-SimE
0264 2 Pause indicator (0=Not paused, 1=Paused) Ok-simE N/A
0266 2 Centre (nose or tail) wheel RPM, as a 16-bit integer Ok-SimC N/A
0268 2 Left wheel RPM, as a 16-bit integer Ok-SimC N/A
026A 2 Right wheel RPM, as a 16-bit integer Ok-SimC N/A
0274 2 Frame rate is given by 32768/this value Ok-SimE N/A
0278 2 Auto-co-ordination (“auto-rudder”), 1=on, 0=off Ok-SimC No
Different to FS9 and before: this setting cannot be changed via
any of the usual controls, or the documented as "settable"
SimVar. It is broken, an FSX/ESP bug!
0280 1 Lights: this operates the NAV, TAXI, PANEL and WING lights. Ok-Intl Ok-Intl
(via 0D0C) (via 0D0C)
For separate switches see offset 0D0C
0281 1 Beacon and Strobe lights. For separate switches see offset 0D0C Ok-Intl Ok-Intl
(via 0D0C) (via 0D0C)
0284 2 ADF1 Standby Frequency: main 3 digits, in Binary Coded Ok-SimC Not
possible to
Decimal. A frequency of 1234.5 will have 0x0234 here and write!
0x0105 in offset 0286.
0286 2 Extended ADF1 Standby Frequency: the high byte contains the Ok-SimC Not
possible to
1000’s digit and the low byte the fraction, so, for a frequency of
write!
1234.5 this offset will contain 0x0105.
0288 2 ADF2 Standby Frequency: main 3 digits, in Binary Coded Ok-SimC Not
possible to
Decimal. A frequency of 1234.5 will have 0x0234 here and
write!
0x0105 in offset 0286.
028A 2 Extended ADF2 Standby Frequency: the high byte contains the Ok-SimC Not
possible to
1000’s digit and the low byte the fraction, so, for a frequency of
write!
1234.5 this offset will contain 0x0105.
028C 1 Landing lights. (See also offset 0D0C). Ok-Intl Ok-Intl
(via 0D0C) (via 0D0C)
0290 4 Maximum available FS contiguous memory block in kilobytes Ok-Intl No
(updated every 10 seconds). See also offset 024C
029B 1 Alternate static air source (0=off, 1=on) Ok-SimC Ok-SimE
029C 1 Pitot Heat switch (0=off, 1=on) Ok-SimC Ok-SimE
02A0 2 Magnetic variation (signed, –ve = West). For degrees Ok-SimC N/A
*360/65536. Convert True headings to Magnetic by subtracting
this value, Magnetic headings to True by adding this value.
02A2 2 The current number of AI Traffic aircraft on the ground. Also Ok-Intl No
see offsets 025C (total count) & 02A4 (airborne count).
02A4 2 The current number of AI Traffic aircraft in the air. Also see Ok-Intl No
offsets 025C (total count) & 02A2 (ground count).
02B2 2 Zoom factor: 64=x1, 128=x2 et cetera No-SimC+ Ok-SimE
02B4 4 GS: Ground Speed, as 65536*metres/sec. Not updated in Slew Ok-SimC No
mode!
02B8 4 TAS: True Air Speed, as knots * 128 Ok-SimC ?-SimC
02BC 4 IAS: Indicated Air Speed, as knots * 128 Ok-SimC ?-SimC
02C4 4 Barber pole airspeed, as knots * 128 Ok-SimC No
02C8 4 Vertical speed, signed, as 256 * metres/sec. For the more usual Ok-SimC ?-SimC
ft/min you need to apply the conversion *60*3.28084/256
02CC 8 Whiskey Compass, degrees in ‘double’ floating point format Ok-SimC ?-SimC
(FLOAT64)
02D4 2 ADF2 Frequency: main 3 digits, in Binary Coded Decimal. See Ok-SimC Ok-SimE
also offset 02D6. A frequency of 1234.5 will have 0x0234 here
and 0x0105 in offset 02D6.
02D6 2 Extended ADF2 frequency. The high byte contains the 1000’s Ok-SimC Ok-SimE
digit and the low byte the fraction, so, for a frequency of 1234.5
this offset will contain 0x0105.
02D8 2 ADF2: relative bearing to NDB ( *360/65536 for degrees, –ve ?-SimC No
left, +ve right)
02DC 6 ADF2 IDENTITY (string supplied: 6 bytes including zero Ok-SimC No
terminator)
02E2 25 ADF2 name (string supplied: 25 bytes including zero terminator) Ok-SimC No
02FB 1 ADF2 morse ID sound (1 = on, 0 = off), read for state, write to ?-SimC ?-SimE
control
0300 2 VOR1 DME distance, 16-bit integer, nm * 10 Ok-SimC No
0302 2 VOR1 DME speed, 16-bit integer, kts * 10 Ok-SimC No
0304 2 VOR1 DME time to station, 16-bit integer, secs * 10 Ok-Intl No
0306 2 VOR2 DME distance, 16-bit integer, nm * 10 Ok-SimC No
0308 2 VOR2 DME speed, 16-bit integer, kts * 10 Ok-SimC No
030A 2 VOR2 DME time to station, 16-bit integer, secs * 10 Ok-Intl No
030C 4 Vertical speed, copy of offset 02C8 whilst airborne, not updated Ok-Intl N/A
whilst the “on ground” flag (0366) is set. Can be used to check
hardness of touchdown (but watch out for bounces which may
change this).
0310 8 Timer (double float, elapsed seconds including fractions, Ok-Intl No
adjusted each ‘tick’ – i.e. 1/18th sec). See also 0368
0318 4 Pressurisation cabin altitude at present (feet, 32-bit integer) ?-SimC No
031C 4 Pressurisation cabin altitude set goal (feet, 32-bit integer) ?-SimC No
0320 4 Pressurisation cabin altitude set change rate (feet/sec, 32-bit ?-SimC No
floating point)
0324 4 Pressurisation cabin pressure differential (lbs/sq.ft, 32-bit ?-SimC No
floating point): set – actual.
0328 4 Pressurisation dump switch (1 = open, 0 = closed) ?-SimC ?-SimE
032C 2 “Plane is in fuel box” flag (same as Scenery BGL variable 0288) No No
032E 2 Reserved (used internally) N/A N/A
0330 2 Altimeter pressure setting (“Kollsman” window). As millibars Ok-SimC Ok-SimE
(hectoPascals) * 16
0332 2 Altimeter pressure secondary setting (“Kollsman” window). As Ok-SimC Ok-SimE
millibars (hectoPascals) * 16. This is the one used in the G1000
gauge.
0334 4 Pushback angle, radians, as a 32-bit Float. Ok-SimC No
0338 4 Pushback X contact, feet, as a 32-bit Float. Ok-SimC No
033C 4 Pushback Y contact, feet, as a 32-bit Float. Ok-SimC No
0340 4 Pushback Z contact, feet, as a 32-bit Float. Ok-SimC No
0344 2 Pushback wait flag, 16-bit integer (probably only 0 or 1) Ok-SimC No
0346 1 Surface condition: 0=normal, 1=wet, 2=icy, 3=snow Ok-SimC No
0347 1 Surface info valid flag. [not working -- ignore] No No
0348 2 Structural ice formation quantity, 0 – 16384 Ok-SimC No
034A 2 Pitot ice formation quantity, 0 – 16384 Ok-SimC No
034C 2 ADF1 Frequency: main 3 digits, in Binary Coded Decimal. See Ok-SimC Ok-SimE
also offset 0356. A frequency of 1234.5 will have 0x0234 here
and 0x0105 in offset 0356.
034E 2 COM1 frequency, 4 digits in BCD format. A frequency of Ok-SimC Ok-SimE
123.45 is represented by 0x2345. The leading 1 is assumed.
0350 2 NAV1 frequency, 4 digits in BCD format. A frequency of Ok-SimC Ok-SimE
113.45 is represented by 0x1345. The leading 1 is assumed.
0352 2 NAV2 frequency, 4 digits in BCD format. A frequency of Ok-SimC Ok-SimE
113.45 is represented by 0x1345. The leading 1 is assumed.
0354 2 Transponder setting, 4 digits in BCD format: 0x1200 means Ok-SimC Ok-SimE
1200 on the dials.
0356 2 Extended ADF1 frequency. The high byte contains the 1000’s Ok-SimC Ok-SimE
digit and the low byte the fraction, so, for a frequency of 1234.5
this offset will contain 0x0105.
0366 2 Aircraft on ground flag (0=airborne, 1=on ground). Not updated Ok-SimC N/A
in Slew mode.
0368 4 Control timer 2 (see also 0310), a 32-bit ‘float’. Ok-Intl No
036C 1 Stall warning (0=no, 1=stall) Ok-SimC No
036D 1 Overspeed warning (0=no, 1=overspeed) Ok-SimC No
036E 1 Turn co-ordinator ball position (slip and skid). –128 is extreme Ok-SimC No
left, +127 is extreme right, 0 is balanced. (See 0374 for more
accuracy)
0371 1 Reserved for ASE weather control flags No No
0372 2 Reliability % (0–100) No No
0374 2 NAV1 or NAV2 select [Not used for several FS releases?] No No
0378 2 DME1 or DME2 select (1=DME1, 2=DME2) Ok-SimC Ok-SimE
037C 2 Turn Rate (for turn coordinator). 0=level, –512=2min Left, Ok-SimC ?-SimC
+512=2min Right (See 0384 for more accuracy)
0380 4 32-bit floating point turn coordinator ball position, –1.0 to +1.0 Ok-SimC No
0384 4 32-bit floating point turn rate, degrees per second Ok-SimC No
(–3.0 to +3.0 is equivalent to the 2 mins left/right range)
03A0 4 1st FSUIPC monitored value (right-hand side of Logging tab), if Ok-Intl n/a
numeric. Provided in 32-bit floating point format
03A4 4 2nd FSUIPC monitored value (right-hand side of Logging tab), Ok-Intl n/a
if numeric. Provided in 32-bit floating point format
03A8 4 3rd FSUIPC monitored value (right-hand side of Logging tab), if Ok-Intl n/a
numeric. Provided in 32-bit floating point format
03AC 4 4th FSUIPC monitored value (right-hand side of Logging tab), if Ok-Intl n/a
numeric. Provided in 32-bit floating point format
03B0 8 Left aileron deflection, in radians, as a double floating point Ok-SimC No
value
03B8 8 Right aileron deflection, in radians, as a double floating point Ok-SimC No
value
03C0 64 The current state of the buttons on actively scanned joysticks Ok-Intl No
(local ones, 0 to 15). Each of the 16 DWORDS contain the 32-
bit state of the joystick 0-15, in order. Button 0 is the least
significant bit (bit 0) in each DWORD.
0400 128 The filename of the last flight (or situation) saved, as an ASCII Ok-SimC N/A
string with a zero terminator. The filetype (.flt or .stn) is not
included. Use the counter at 3BD2 to determine when this has
changed.
0480 8 Aileron trim axis input, 64-bit floating point (double), read-only ?-Intl N/A
0488 8 Rudder trim axis input, 64-bit floating point (double), read-only ?-Intl N/A
0490 8 Aileron trim axis required value, 64-bit floating point (double). N/A ?-Intl
If 2^0 is set in the byte at 04A0, then, when written, this value is
copied to the FS trim (2EB0) instead of the value in 0480
0498 8 Rudder trim axis required value, 64-bit floating point (double). N/A ?-Intl
If 2^1 is set in the byte at 04A0, then, when written, this value is
copied to the FS trim (2EC0) instead of the value in 0488
04A0 1 Aileron and rudder trim connection control. See offsets 480– ?-Intl ?-Intl
0498 above.
2^0 = 1 to disconnect aileron trim (2EB0) from FS
2^1 = 1 to disconnect rudder trim (2EC0) from FS
This byte will be cleared and the connection restored (together
with the most recent axis values) within about 10 seconds of it
being written non-zero, so you need to write this every few
seconds.
04A8 8 Elapsed seconds value, as a double. Accurate to fractions of a Ok No
(from Gauge
second but only updated frame by frame. This value counts Token)
simulated time, stopping in paused and menu modes, speeding
up and slowing down according to the actual sim rate.
04B0 48 Area reserved by FSUIPC. N/A N/A
04B4 2 ADVENTURE WEATHER: This provides the ?-Intl No
TEMPERATURE_SURFACE_ALT in metres. This is used to provide
the METAR reporting station altitude so that the cloud bases can
be converted to AGL.
04BA 2 ADVENTURE WEATHER: This provides the WIND _SURF_TURB which ?-Intl No
is used to provide the surface wind’s upper gust speed in knots,
with zero indicating no gusts.
04BC 2 ADVENTURE WEATHER : This provides the BAROMETRIC _DRIFT ?-Intl No
variable, which is used to provide the difference between the
current aircraft position QNH (which may be in transition), and
the METAR reported QNH as set by the weather control
program. Adding this ‘drift’ value to the pressure will give the
correct value for ATIS reports
04C0 2 ADVENTURE WEATHER: This provides the FSUIPC_VISIBILITY in ?-Intl No
statute miles * 100
04C2 2 ADVENTURE WEATHER : This provides the CLOUD_THUNDER_BASE in ?-Intl No
metres AMSL
04C4 2 ADVENTURE WEATHER: This provides the CLOUD_LOW_BASE in ?-Intl No
metres AMSL
04C6 2 ADVENTURE WEATHER: This provides the CLOUD_HIGH_BASE in ?-Intl No
metres AMSL
04C8 2 Dew point as degrees C *256, for the surface temperature layer, ?-Intl No
read only
04CB 1 Precipitation rate, 0–5, read only. ?-Intl No
04CC 1 Precipitation type, 0=none, 1=rain, 2=snow, read only. ?-Intl No
04CD 1 ADVENTURE WEATHER : This provides the CLOUD_THUNDER_COVER ?-Intl No
0–8
04CE 1 ADVENTURE WEATHER: This provides the CLOUD_LOW_COVER 0–8 ?-Intl No
04CF 1 ADVENTURE WEATHER: This provides the CLOUD_HIGH _COVER 0–8 ?-Intl No
04D2 2 Precipitation control: write hi-byte=type 0–2, low byte=rate 0–5. N/A ?-Intl
Write 0xFFFF to release control back to FS.
04D4 2 Dew point control: degrees C * 256. Sets surface layer dewpoint N/A ?-Intl
only, FSUIPC does rest. Write 0x8000 to release control back to
FS.
04D6 2 Set to 0xFADE if FSUIPC’s weather interface has initialised. Ok-Intl No
04D8 2 Surface layer wind speed, in knots. This may be different to the ?-Intl No
current wind speed at the aircraft—see offset 0E90. This also
provides WIND_SURF_VEL for Adventures.
04DA 2 Surface layer wind direction, *360/65536 to get degrees ?-Intl No
MAGNETIC. This may be different to the current wind direction
at the aircraft—see offset 0E92. This also provides
WIND_SURF_DIR for Adventures.
04DE 2 Weather option control: not supported No No
04E0 88 Area reserved for Project Magenta N/A N/A
0538 8 Design speed VS0 (stall speed full flaps), ft/sec, as a double (64- Ok-SimC No
bit floating point).
0540 8 Design speed VS1 (stall speed clean), ft/sec, as a double (64-bit Ok-SimC No
floating point).
0548 8 Design speed VC (cruise speed), ft/sec, as a double (64-bit Ok-SimC No
floating point).
0550 8 Minimum drag velocity, ft/sec, as a double (64-bit floating Ok-SimC No
point).
0558 4 INITIAL POSITION: Airspeed setting. N/A Ok-SimC
Write the desired airspeed here (in knots), along with, in the
same IPC write, those of the following fields (on-ground,
LLAPBH – Lat/Lon/Alt/Pitch/Bank/Hdg) which you need to set.
FSUIPC4 will use the INITIAL POSITION facility in FSX to
place your aircraft and set the speed.
To set the speed at the current position (but not on ground), just
write this offset and FSUIPC4 will use the following values as
they currently stand.
055C 4 INITIAL POSITION: On-ground setting. N/A Ok-SimC
Note that the values READ here run from 0 to 16384, but will
not match exactly the values written. They seem to follow an
exponential curve, being much lower at the low end (e.g. only
33% of what is written), gradually catching up to meet at the
top.
0BC6 2 Right brake application read-out (0 off, 16383 full: parking Ok-SimC Ok-SimC
brake=16383). You can apply a fixed brake pressure here, or else
use the byte at 0C00 to apply brakes emulating the keypress.
Note that the values READ here run from 0 to 16384, but will
not match exactly the values written. They seem to follow an
exponential curve, being much lower at the low end (e.g. only
33% of what is written), gradually catching up to meet at the
top.
0BC8 2 Parking brake: 0=off, 32767=on Ok-SimC Ok-SimE
0BCA 2 Braking indicator: brake applied if non-zero Ok-SimC N/A
(1=Left, 2=Right, 3=both
0BCC 4 Spoilers arm (0=off, 1=arm for auto deployment) Ok-SimC Ok-SimE
0BD0 4 Spoilers control, 0 off, 4800 arm, then 5620 (7%) to 16383 Ok-SimC Ok-SimC
(100% fully deployed).
The 4800 value is set by arming. Values from 0 to somewhere
close to, but below, 4800 do nothing. The percentage extension
is the proportion of the distance in the range 4800 to 16383, even
though values 4800 to 5619 cannot be used—7% seems to be the
minimum.
0BD4 4 Spoiler Left position indicator (0-16383) Ok-SimC No
0BD8 4 Spoiler Right position indicator (0-16383) Ok-SimC No
0BDC 4 Flaps control, 0=up, 16383=full. The “notches” for different Ok-SimC Ok-SimE
aircraft are spaced equally across this range: calculate the
increment by 16383/(number of positions-1), ignoring fractions.
See also offset 3BFA below.
N.B. Do not expect to read this and see 100% accurate values.
0BE0 4 Flaps position indicator (left). This gives the proportional Ok-SimC* No
(see note)
amount, with 16383=full deflection. It doesn’t correspond to the
equally spaced notches used for the control lever. If you know
the maximum deflection angle you can derive the current angle
by ((max * position indicator) / 16383).
This only gives the (inboard?) trailing edge flaps. Please see
offsets 30E0–30FF for greater details where needed.
0BE4 4 Flaps position indicator (right). This gives the correct Ok-SimC* No
(see note)
proportional amount, with 16384=full deflection. It doesn’t
correspond to the equally spaced notches used for the control
lever.
This only gives the inboard trailing edge flaps. Please see offsets
30E0–30FF for greater details where needed.
0BE8 4 Gear control: 0=Up, 16383=Down Ok-SimC Ok-SimC
0BEC 4 Gear position (nose): 0=full up, 16383=full down Ok-SimC Ok-SimC
0BF0 4 Gear position (right): 0=full up, 16383=full down Ok-SimC Ok-SimC
0BF4 4 Gear position (left): 0=full up, 16383=full down Ok-SimC Ok-Sim
0BF8 4 Unlimited visibility value, as 1600* statute miles. This is the No-SimC+ No
value set in the Display Quality Settings.
0BFC 1 Flaps handle index (0 full up) Ok-SimC Ok-SimC
0BFD 1 Anti-skid Brake active indicator, non-zero when active OK-SimE Ok-SimC
0C00 1 Right toe brake control: 0 – 200, proportional braking with timed N/A Ok-Intl
decay
0C01 1 Left toe brake control: 0 –200, proportional braking with timed N/A Ok-Intl
decay
0C02 2 Aileron trim value/control: –16383 to +16383 [NEW!] Ok-SimC ?-SimC
0C04 2 Rudder trim value/control: –16383 to +16383 [NEW!] Ok-SimC ?-SimC
0C06 2 Helo bank (aileron) trim control: –16383 to +16383, but only Ok-Intl Ok-Intl
when “ApplyHeloTrim” set to ‘Both’.
0C08 2 Steering tiller input value (FSUIPC optional axis), -16384 to Ok-Intl N/A
+16383, if calibrated
0C0A 2 Rudder input value, -16384 to +16383, if calibrated Ok-Intl N/A
0C14 4 ADF2 signal strength Ok-SimC No
0C18 2 International units: 0=US, 1=Metric+feet, 2=Metric+metres ?-SimC No
0C1A 2 Simulation rate *256 (i.e. 256=1x). (The Sim Rate values can’t Ok-SimE No-SimE
(see note)
be written to directly, and the SIM_RATE_SET control does
nothing. At present, FSUIPC4 tries to accommodate writes to
this value by using INCR and DECR. This gives powers of two
values, range 64 to 32768 – i.e. 1/4X to 128X. If you use
intermediate values you will get the next one up or down).
0C1C 4 ADF1 signal strength Ok-SimC No
0C20 9 Local time in character format: “hh:mm:ss” (with zero Ok-Intl No
terminator)
0C29 5 DME1 distance as character string, either “nn.n” or “nnn.” Ok-Intl N/A
(when > 99.9 nm). The 5th character may be a zero or a space.
Don’t rely on it.
0C2E 5 DME1 speed as character string, “nnn” followed by either space Ok-Intl N/A
then zero or just zero.
0C33 5 DME2 distance as character string, either “nn.n” or “nnn.” Ok-Intl N/A
(when > 99.9 nm). The 5th character may be a zero or a space.
Don’t rely on it.
0C38 5 DME2 speed as character string, “nnn” followed by either space Ok-Intl N/A
then zero or just zero.
0C3E 2 Gyro drift amount ( *360/65536 for degrees). Ok-SimC Ok-SimE
Note that whilst it may appear that the value is accurate to
fractions of a degree, the actual setting capability (via an event)
is based on whole degrees, just like the INC/DEC controls. Any
value written here will normally be read back slightly
differently, based upon this granularity.
0C40 2 NAV1 Mag Var (*360/65536 for degrees) Ok-SimC No
(but see
(Note that there are two different data sources for MagVars, and
note)
this may not agree with the airport MagVar for airport-based
VORs)
0C42 2 NAV2 Mag Var (*360/65536 for degrees) Ok-SimC No
(but see
(Note that there are two different data sources for MagVars, and
note)
this may not agree with the airport MagVar for airport-based
VORs)
0C44 2 Realism setting, 0 – 100 Ok-SimC No
0C48 1 NAV1 Localiser Needle: –127 left to +127 right Ok-SimC No
0C49 1 NAV1 Glideslope Needle: –119 up to +119 down Ok-SimC No
0C4A 1 NAV1 Back Course flags: Ok-SimC No
(see note)
0 BC available
1 Localiser tuned in
2 On Back Course (Not found for FSX)
7 Station active (even if no BC)
0C4B 1 NAV1 To/From flag: 0=not active, 1=To, 2=From Ok-SimC No
0C4C 1 NAV1 GS flag: TRUE if GS alive Ok-SimC No
0C4D 1 NAV1 code flags, bits used as follows: Ok-SimC No
(see notes)
0 DME available
1 TACAN (Not found for FSX)
2 Voice available (Not found for FSX)
3 No signal available
4 DME/GS co-located (Not found for FSX)
5 No back course
6 GS available
7 This is a localiser (else it’s a VOR)
0C4E 2 NAV1 OBS setting (degrees, 0–359) Ok-SimC Ok-SimE
0C50 2 NAV1 radial ( *360/65536 for degrees). Note that this is in Ok-SimC No
degrees Magnetic for a VOR, but TRUE for an ILS LOC.
0C52 4 NAV1 signal strength: Ok-SimC No
For Localisers, seems to be either 0 or 256
For VORs varies from 0 to over 1,000,000 when really close!
0C56 2 NAV1: relative bearing to VOR1, in degrees (0–359) Ok-SimC No
0C59 1 NAV2 Localiser Needle: –127 left to +127 right Ok-SimC No
0C5A 1 NAV2 Back Course flags: Ok-SimC No
(but see
0 BC available
note)
1 Localiser tuned in
2 On Back Course (Not found for FSX)
7 Station active (even if no BC)
0C5B 1 NAV2 To/From flag: 0=not active, 1=To, 2=From Ok-SimC No
0C5C 2 NAV2: relative bearing to VOR2, in degrees (0–359) Ok-SimC No
0C5E 2 NAV2 OBS setting (degrees, 0–359) Ok-SimC Ok-SimE
0C60 2 NAV2 radial ( *360/65536 for degrees). Note that this is in Ok-SimC No
degrees Magnetic for a VOR, but TRUE for an ILS LOC.
0C62 4 NAV2 signal strength: Ok-SimC No
For Localisers, seems to be either 0 or 256
For VORs varies from 0 to over 1,000,000 when really close!
0C6A 2 ADF1: relative bearing to NDB ( *360/65536 for degrees, –ve Ok-SimC No
left, +ve right)
0C6C 2 ADF1: dial bearing, where adjustable (in degrees, 1–360) ?-SimC ?-SimE
0C6E 1 NAV2 Glideslope Needle: –127 up to +127 down ?-SimC No
0C6F 1 NAV2 GS flag: TRUE if GS alive ?-SimC No
0C70 1 NAV2 code flags, bits used as follows: Ok-SimC No
(see notes)
0 DME available
1 TACAN (Not found for FSX)
2 Voice available (Not found for FSX)
3 No signal available
4 DME/GS co-located (Not found for FSX)
5 No back course
6 GS available
7 This is a localiser (else it’s a VOR)
0C92 2 Texture quality, 0–3, as on slider in Display Quality No No
0D0C 2 Lights, a switch for each one (bits from lo to hi): Ok-SimC Ok-SimE
(Intl decode)
0 Navigation
1 Beacon
2 Landing
3 Taxi
4 Strobes
5 Instruments
6 Recognition
7 Wing
8 Logo
9 Cabin
0D50 24 The Tower Latitude (8 bytes), Longitude (8 bytes) and Altitude No-SimC+ No-SimC+
(8 bytes) in the same format as 0560–0577 above.
0D6C 4 Parameter associated with any Macro, Lua or L:Var request sent N/A Ok-Intl
to the following offset (0D70)
0D70 128 Macros and Lua requests N/A Ok-Intl
0E04 2 Default 738 and A321 EFIS: ND map items shown: Ok-Lvar Ok-Lvar
738: 0=WPT, 1=APT, 2=NDB, 3=VOR
A321: 0=WPT, 1=VOR, 2=NDB, 3=APT
0E06 2 Default 738 EFIS: ND VOR/ADF1 switch: Ok-Lvar Ok-Lvar
0=VOR, 1=OFF, 2=ADF
0E08 2 Default 738 EFIS: ND VOR/ADF2 switch: Ok-Lvar Ok-Lvar
0=VOR, 1=OFF, 2=ADF
0E0A 2 Default 738 EFIS: ND arc=0, centred=1 Ok-Lvar Ok-Lvar
0E0C 2 Default 738 EFIS: AP speed/mach C/O button (pressed if 1, not Ok-Lvar No
pressed if 0). Only useful reading. Write has no effect except
graphical.
0E0E 2 Default A321 EFIS: ND mode: Ok-Lvar Ok-Lvar
0=ILS, 1=VOR, 2=NAV, 3=ARC
0E10 2 Default A321 EFIS: ND VOR/ADF1 switch: Ok-Lvar Ok-Lvar
0=VOR, 1=OFF, 2=ADF
0E12 2 Default A321 EFIS: ND VOR/ADF2 switch: Ok-Lvar Ok-Lvar
0=VOR, 1=OFF, 2=ADF
0E14 2 Default A321 EFIS: ND InHg/hPA switch, 0=InHg, 1=hPA Ok-Lvar Ok-Lvar
0E16 2 Default A321 EFIS: ND ILS mode button, 0 = off, 1=on Ok-Lvar Ok-Lvar
0E18 2 Default A321 EFIS: AP speed/mach C/O button (pressed if 1, Ok-Lvar No
not pressed if 0). Only useful reading. Write has no effect except
graphical.
0E1A 2 Default A321 EFIS: Altitude change rate switch (0 = 100, Ok-Lvar Ok-Lvar
1=1000)
0E80 4 ICAO id of nearest weather station, if FSUIPC4 is reading Ok-Intl No
weather. This is 4 ASCII characters, no zero terminator.
0E84 1 At aircraft altitude: cloud type, 1–10, if the aircraft is in a cloud Ok-Intl No
layer. Otherwise 0
0E85 1 At aircraft altitude: cloud coverage in Oktas (0-8) Ok-Intl No
0E86 2 At aircraft altitude: cloud icing lelel, 0-4 Ok-Intl No
0E88 2 At aircraft altitude: cloud turbulence level 0-255 (see 0EFC). Ok-Intl No
(Actual values 0, 72, 144, 216, 252)
0E8A 2 Current visibility (Statue miles * 100) (“Ambient visibility”) Ok-SimC No-SimC
0E8C 2 Outside Air Temperature (OAT), degrees C * 256 Ok-SimC No
(“Ambient Temperature”)
0E8E 2 Dew point, degrees C * 256. This is the interpolated value for Ok-SimC No
the aircraft altitude, as supplied by FSX.
0E90 2 Ambient wind speed (at aircraft) in knots Ok-SimC No-SimC
0E92 2 Ambient wind direction (at aircraft), *360/65536 to get degrees Ok-SimC No-SimC
True.
0E94 2 At aircraft altitude: wind gusting value: max speed in knots, or 0 Ok-Intl No
if no gusts
0E96 2 At aircraft altitude: Wind directional variation—degrees in the Ok-Intl No
same units as wind directions
0E98 2 At aircraft altitude: Wind turbulence value, 0–255, just like Ok-Intl No
offset 0ED2, etc (Actual values 0, 64, 128, 192, 255)
0E9A 112 FS98 style Current Aircraft Weather* as Set: details follow. [See Ok-SimC See 0F1A
(but see
0F1C for Global weather setting area]
notes)
N.B. See also 0E8A above, which is the “current” visibility
equivalent of the global setting at 0F8C.
These loadings can be changed, and this does have some effect,
but are changes are being promulgated to the overall weights
(offsets 30C0, 30C8, 3BFC) and balance (2EF8)? Needs
checking in FSX.
1F80 40 N/A Ok-Intl
Write-only area for a TCAS_DATA structure, used to add
entries to the TCAS data tables (but NOT to create AI aircraft,
please note!). The 40-byte format is as for the TCAS_DATA
structure (see offset F080). You need to write it all as one
FSUIPC_Write block. You cannot read back what you have
written here.
You can add more writes to the same (or other) offsets before
actually sending them (e.g. via FSUIPC_Process). The only
important thing is that the whole TCAS_DATA structure is
written in one block, with the length obviously set to 40.
The data this structure should contain is as follows:
id Any id number UNIQUE to all aircraft you supply. It
does not have to be unique to the AI aircraft. FSUIPC
keeps an internal flag to distinguish the two types.
[Note that if in the future this field is re-used for other
indications, FSUIPC may have to adjust the value
supplied].
lat, lon, alt, hdg, gs, vs, com1
As possible: all would be good, but obviously a
minimum of lat/lon/alt.
idATC Any string of up to 14, plus a zero terminator, to
identify the aircraft. This doesn't need to be unique but
it could be rather confusing to the user if it isn't.
To erase an aircraft provide the specific id for that entry, and set
the idATC field to null (i.e. zero length string, just a zero).
In any case, FSUIPC will automatically erase any externally
supplied aircraft after about 8–12 seconds if it receives no
further updates in that time. Even if the aircraft is static you'll
need to supply updates for it regularly.
Apart from the user-adjustable range, which is applied, FSUIPC
is not performing any filtering for these aircraft—i.e. you can
include aircraft on the ground if required. However, once the
airborne TCAS table is full (current capacity 96) whether with
AI aircraft, MP aircraft, or a mixture, no others will be accepted
until slots become free. So in this sense slot management is up to
you.
2000 8 Turbine Engine 1 N1 value (%) as a double (FLOAT64). This is Ok-SimC ?-SimC
for jets and turboprops—it has no meaning on reciprocating prop
aircraft.
2008 8 Turbine Engine 1 N2 value (%) as a double (FLOAT64). This is Ok-SimC ?-SimC
for jets and turboprops—it has no meaning on reciprocating prop
aircraft.
2010 8 Turbine Engine 1 corrected N1 value (%) as a double Ok-SimC ?-SimC
(FLOAT64). This is for jets and turboprops—it has no meaning
on reciprocating prop aircraft.
2018 8 Turbine Engine 1 corrected N2 value (%) as a double Ok-SimC ?-SimC
(FLOAT64). This is for jets and turboprops—it has no meaning
on reciprocating prop aircraft.
2020 8 Turbine Engine 1 corrected fuel flow (pounds per hour) as a Ok-SimC ?-SimC
double (FLOAT64). This is for jets and turboprops—it has no
meaning on reciprocating prop aircraft.
2028 8 Turbine Engine 1 max torque fraction (range 0.0–1.0) as a ?-SimC ?-SimC
double (FLOAT64).
2030 8 Turbine Engine 1 EPR as a double (FLOAT64). This is for jets Ok-SimC ?-SimC
and turboprops.
2038 8 Turbine Engine 1 ITT (interstage turbine temperature) in degrees Ok-SimC ?-SimC
Rankine, as a double (FLOAT64). This is for jets and
turboprops.
2048 4 Turbine Engine 1 Afterburner switch (1 = on, 0 = off) Ok-SimC ?-SimE
204C 8 Turbine Engine 1 jet thrust, in pounds, as a double (FLOAT64). Ok-SimC No
This is the jet thrust. See 2410 for propeller thrust (turboprops
have both).
2054 4 Turbine Engine 1 Tank Selector: 0=None, 1=All, 2=Left, Ok-SimC Ok-SimE
3=Right, 4=LeftAux, 5=RightAux, 6=Centre, 7=Centre2,
8=Centre3, 9=External1, 10=External2, 11=Right Tip, 12=Left
Tip, 13=Crossfeed, 14=Crossfeed LtoR, 15=Crossfeed RtoL,
16=Crossfeed both, 17=External, 18=Isolate, 19=Left Main,
20=Right Main
2058 4 Turbine Engine 1 Tanks Used, a bit mask: Ok-SimC No
0 Center 1
1 Center 2
2 Center 3
3 Left Main
4 Left Aux
5 Left Tip
6 Right Main
7 Right Aux
8 Right Tip
9 External 1
10 External 2
See also offset 3109 above, and also offsets 3328–3339, which
provide the live axis values, post calibration. These would have
been applied to FS if not prevented by the flags above.
Applications can use these facilities to provide a responsive “fly-
by-wire” control.
310B 1 Controls the joystick connection to the slewing controls, and the N/A ?-Intl
other two separate throttle controls.
This is really two 32-bit integers. The first contains the Control
number (normally 65536 upwards), as seen in my FS Controls
lists. The second integer is used for the parameter, such as the
scaled axis value, where this is appropriate. Always write all 8
bytes in one IPC block if a parameter is used, as FSUIPC will
fire the control when you write to 3110.
32F0 4 This DWORD controls some protected mode facilities in Not yet Not yet
FSUIPC, designed to set known conditions in FSUIPC and
prevent access to specific menus, whilst an application is
running. Support in FSX not planned yet, and not assured.
32F4 2 The 16-bit ID of the last menu command item accessed in FS. No No
Not planned for FSX.
32F6 2 FSUIPC selected technical option inhibits. Not yet Not yet
Set bits here to turn off specific options and prevent the user
turning them back on, for a limited time (max 14 seconds). To
keep options turned off you need to write this mask at regular
intervals (e.g. every 5 seconds).
Note that this is not obeyed if the user has selected to option to
disallow all external control of his options. If he has done this,
you can detect it by reading this location back within the time
limit. If it is zero, not the value written, then the user is
preventing your control over his settings.
Bits allocated are as follows (bit 0 = 2^0 bit), but support for
most of these isn’t planned for FSX at present in any case.
In the last two cases, whether the message scrolls or not depends
upon the setting of the “Options—Settings—General—Text
Display” option (?). The time limit only applies when scrolling is
off, otherwise the message simply expires when fully scrolled
off the screen.
32FC 2 AIR file change counter (incremented by FSUIPC whenever the Ok-Intl N/A
AIR file as defined at offset 3C00 changes).
330A 2 Fixed read-only pattern, set to 0xFADE. Use this to check that Ok-Intl N/A
the values in 3304-3308 are valid (Note: the supplied LIB writes
its version number here, but this has no effect and is only for
assistance when viewing LOG files).
330C 2 Assorted status flags, the only ones which are of use to ?-Intl N/A
applications being:
2^1 When set this indicates that programs have full access
to the IPC not. This can be read without triggering the message
box to users which tells them of an unaccredited access attempt.
Note that on WideClient it will always be set, assuming
WideServer is registered on the FS PC. (should always be 1 in
FSUIPC4)
2^4 Set when the user Throttle Sync option (in the Hot
Keys page of FSUIPC options) is enabled.
330E 1 Count of external IPC applications seen connecting since the No No
session began. Keeps increasing till it gets to 255 then stays at
that value.
330F 17 Reserved area for WideFS KeySend facility
3320 2 This word is used to activate a facility supported by WideFS to Ok-Intl Ok-Intl
automatically shut down the PCs running WideServer (i.e. this
one) and WideClient. The .ini files of each WideFS component
which is to activate the shutdown needs the
“AllowShutdown=Yes” parameter included. The application
performing the shut down action must write 0xABCD to this
offset.
The same value can be calculated from the actual altitude and the
difference between the QNH and the altimeter “Kollsman”
pressure setting, but this value ensures agreement.
3328 2 Elevator Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
332A 2 Aileron Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
332C 2 Rudder Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
332E 2 Throttle Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A). This is the single throttle, applied to whichever engines
are denoted by the bits in offset 0888.
3330 2 Throttle 1 Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
3332 2 Throttle 2 Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
3334 2 Throttle 3 Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
3336 2 Throttle 4 Axis input value, post calibration, just before being ?-Intl N/A
applied to the simulation (if allowed to by the byte at offset
310A).
3338 2 Elevator Trim Axis input value, post calibration, just before ?-Intl N/A
being applied to the simulation (if allowed to by the byte at
offset 310A).
333A 2 Throttle lower limit. This is normally 0 if no reverse is available, ?-SimC No
otherwise gives the reverse limit such as –4096 (for 25%).
333C 2 WideFS flags: those used so far are:
2^0 1 =if TCP is being used, 0 if SPX
2^1 1 if connected at all, 0 is waiting for
connections
(In FSX/P3D these two states may be a little confused. Not also
that FSX/P3D does not freeze whilst navigating menus – it only
does so in the dialogues themselves, and then not all of them)
3366 1 This byte reflects the FS2004 “Engine on Fire” flags. I’m not Ok-SimC Ok-SimC
sure if FS actually simulates such events, but it appears to have
allocated Gauge-accessible variables to indicate them. This byte
uses bits 2^0–2^3 as flags for fires in Engines 1 to 4,
respectively.
3367 1 This byte shows doors that are open, one bit per door: Ok-SimC Ok-SimE
2^0 = Exit1 … 2^3 = Exit 4.
N.B. FSUIPC4 does handle up to 8 doors, one for each bit 0-7. Whether FSX can
actually process Exits 5-8 is unknown however.
3368 4 Reserved for PFC.DLL events.
336C 2 Frame rate calling counter. This is simply a number that is Ok-Intl N/A
incremented each time FSUIPC is entered from FS using the
entry related to frame rates.
336E 2 Toe brake axes have been selected as “Set” in FSUIPC’s joystick Ok-Intl N/A
pages if this is non-zero. Byte 336E is non-zero for Left Brake,
byte 336F for Right Brake.
Note that this only means that the user has told FSUIPC to
handle the toe braking, by pressing “Set”. It will only actually do
so if it sees brake messages.
3370 4 Four single byte PFC driver “alive” counters:
3370 = COM port read thread alive and running
3371 = Elevator trim motor action (0=off, 1=up, 2=dn)
3372 = COM port write thread alive
3373 = Main FS chain alive
N.B. without the main FS chain running the other three aren’t
maintained in any case, so mean nothing.
3374 4 This is the “live” millisecond count as used in the FSUIPC Log. Ok-Intl N/A
It is updated on each FS chained call to FSUIPC.
3378 4 This is the millisecond timestamp value of the most recent line in Ok-Intl N/A
the current FSUIPC Log. It is updated when each line is logged.
337C 1 Propeller de-ice switches, (1 = on, 0 = off), read for state, write ?-SimC ?-SimC
to control: one bit for each prop, bits 0—3 = Props 1--4
337D 1 Structural de-ice switch, (1 = on, 0 = off), read for state, write to Ok-SimC Ok-SimC
control.
337E 2 FSUIPC activity count. Simply a number that is incremented Ok-Intl N/A
every time FSUIPC receives a call or message from Flight
Simulator. This can be used through WideFS to check if FS is
still active, for example. Note that when FS is loading aircraft or
scenery/textures, this value may not change for many seconds as
FSUIPC is then not getting any processor time at all.
3380 128 Message text area: Ok-Intl Ok-Intl
(see 32FA)
The text is truncated if longer than 127 characters, there always
being a zero terminator provided.
You can write messages to this area, always zero terminated, for
display on the FS windshield or via ShowText or other
applications. After placing the message text, you must write the
16-bit timer value to offset 32FA to make FSUIPC send the
message (see 32FA above).
3400 2 FSUIPC logging options, reading and setting, bit-oriented with Ok-Intl Ok-Intl
But see
bits used as follows (bit numbers from bit 0 = least significant):
Note!
0 = logging enabled (ignored, as logging is always enabled nowadays)
1 = weather
2 = IPC writes
3 = IPC reads
4 = Extras
5 = Extended, technical button and key logging
6 = VRI comms
7 = com HID
8 = L:Vars
9 = Axes
10 = Events
11 = Button/key standard logging
12 = Lua logging separate
Note that FSUIPC revents writes to this offset unless the User allows it to
happen. This is via the [General] section parameter:
LogOptionsProtect =Yes
If you need to allow programs to change the logging, change this to ‘No’ before
running FS.
3402 2 Current P3D4 mode, indicated by a flag bit as follows (by bit Ok-PDK N/A
number, 0 = 2^0):
0 Pause
1 Slew
2 Disabled
3 Crash
4 Freeze position
5 Freeze attitude
6 Freeze altitude
7 Freeze Lat/Lon
8 SimDirector
9 SimDirector World Editor
10 Recording active
11 Recording playback
12 Instant replay
Note that initially all 16 bits will be set. By the time a program
reads this it should reflect the above modes. If it remaind all set
(-1 or 0xFFFF) then something has failed interfacing to the PDK.
In this case other things in FSUIPC won’t be working either.
3410 2 Assorted indicator flags. These are the only ones currently set Ok-Intl N/A
(bit numbers, bit 0 = 2^0):
4 Engine 1 Reverser is set but inhibited*
5 Engine 2 Reverser is set but inhibited*
6 Engine 3 Reverser is set but inhibited*
7 Engine 4 Reverser is set but inhibited*
* Reverser inhibits are set in offset 32F8. Note that these flags
will be cleared only when the inhibit is removed or the relevant
throttle input goes positive (i.e. not just to idle).
3412 2 Spoiler Axis input value, post calibration, just before being Ok-Intl N/A
applied to the simulation (if allowed to by the byte at offset
341A). Copy this to 0BD0 for normal spoiler action.
3414 2 Flaps Axis input value, post calibration, just before being applied Ok-Intl N/A
to the simulation (if allowed to by the byte at offset 341A). Copy
this to 0BDC for normal flaps action.
3416 2 Left Brake Axis input value, post calibration, just before being Ok-Intl N/A
applied to the simulation (if allowed to by the byte at offset
341A). Copy this to 0BC4 for normal left brake action.
3418 2 Right Brake Axis input value, post calibration, just before being Ok-Intl N/A
applied to the simulation (if allowed to by the byte at offset
341A). Copy this to 0BC6 for normal right brake action.
341A 1 Controls the joystick connection for ancillary axis controls, N/A OK-Intl
currently Left and Right brake, flaps and spoiler axes. Normally
all zero, set the following bits to actually disconnect the specific
joystick axes (from least significant bit = 0):
Note that if FS is paused, then the freeze lasts until the pause is
released and re-engaged.
3542 2 Standby altimeter pressure setting (“Kollsman” window). As Ok-Intl Ok-Intl
millibars (hectoPascals) * 16. [This is used by FSUIPC to
maintain offset 3544. It is not used by FS at all]
3544 4 This is the standby altimeter reading in feet (or metres, if the Ok-Intl Ok-Intl
user is running with the preference for altitudes in metres), as a
32-bit signed integer. Please check offset 0C18 to determine
when metres are used (0C18 contains ‘2’).
Note that this value fluctuates slightly. It is not clear whether this
a bug, or an artefact of the physics simulation, but the empty
weight (1330) and the payload data (1400) may be used to get
a static value.
3C00 256 Full pathname of the current AIR file (in UNC form when Ok-SimE No
(small
applicable *). This is zero padded to fill the 256 bytes available. difference,
When this changes the 16-bit counter at 32FC is incremented, so see
interested programs don’t have to keep on reading the whole 256 description)
bytes to check.
Note: If you are accessing this from a Gauge, it has been reported that it
will not contain the correct aircraft path until FSX loads the gauges
completely and begins the update sequence
PANEL_SERVICE_PRE_UPDATE ...
PANEL_SERVICE_POST_UPDATE
* UNC paths are only used if WideFS is in use
3D00 256 Name of the current aircraft (from the “title” parameter in the Ok-SimC No
AIRCRAFT.CFG file).
3E00 256 Path of the Flight Simulator installation, down to and including Ok-Intl No
the FS main folder and a following \ character. If the PC is on a
Network and WideFS is in use, then if possible the full UNC
(universal naming convention) path is given. Examples are:
D:\FS2000\ (non-Network)
\\MyMainPC\drived\FS2000\
(Network, named PC and named shared drive))
3F00 2 To load or save a Flight (.FLT) you first set up the pathname N/A Ok-SimC
(and optional description) at offset 3F04 below, then write here.
Write one of these values:
0 to simply load the specified flight/situation.
1 to save the flight/situation with no description
257 to save the flight/situation with a description
If you are Loading a file, please allow time for the file to load
before expecting any further meaningful response across the
FSUIPC interface. FSUIPC will probably not be able to respond
for several seconds even on the fastest machines.
3F02 2 FLT/STN file loading counter (incremented by FSUIPC Ok- N/A
Intl/SimC
whenever the FLT file, as defined at offset 3F04 changes or the
same FLT is reloaded).
If FSUIPC4 re-initialises the SimConnect link at any time (e.g.
because of timeout), the flight name provided may change at the
same time, due to the way SimConnect operates and FSUIPC
obtains the flight names. The value in offset 3BF6 also updates
when SimConnect is re-initialised, so this may help distinguish
the cause of the change.
3F04 252 READ: Ok-SimC Ok-SimC
Pathname of the currently loaded FLT file, excluding the FS
main path (see 3E00) if applicable, else the full path, in UNC
format if WideFS is in use. This is zero padded to fill the 252
bytes available, or truncated if longer.
WRITE:
Write the file name for the FLT+WX file you wish to Load or
Save. The name can include the final “.flt” but this will be
discarded in any case. You can specify a folder (existing within
FS’s main folder) for Loading, but files can only be saved to
your “My Documents” FS folder. If you give a path for saving, it
is discarded. There must be a zero terminator.
Class: 0 BRAKE
1 WHEEL
2 SCRAPE
3 SKID
4 FLOAT
5 WRUDDER
6 SKI
Surface: 0 CONCRETE
1 GRASS
2 WATER
3 GRASS_BUMPY
4 ASPHALT
5 SHORT_GRASS
6 LONG_GRASS
7 HARD_TURF
8 SNOW
9 ICE
10 URBAN
11 FOREST
12 DIRT
13 CORAL
14 GRAVEL
15 OIL_TREATED
16 STEEL_MATS
17 BITUMINUS
18 BRICK
19 MACADAM
20 PLANKS
21 SAND
22 SHALE
23 TARMAC
24 WRIGHT_FLYER_TRA
Direction: 0 ROLLING
1 SLIDING
Condition: 0 DRY
1 RAIN
2 ICE
3 SNOW
8680 32 Camera name for use with the following facility N/A OK-Intl
(Prepar3D version 2 or later, only).
Offsets 86A0, 86A4, 86A8, 86AC, 86B0 and 86B4 (ie 6 consecutive
32-bit values) should be written with the 6 float parameters for
SimConnect_CameraSetRelative6DOF. The action is triggered by a
write to 86A0, so either write that parameter last, or, better, write all 24
bytes as one structure, in one Write. If you are using VB remember that
hex values like 86A0 will be rendered as FFFF86A0 unless you take
steps to ensure no sign propagation.
When used with Prepar3D version 2 or later you can also select the
specific camera, by name. To do this, before writing the 6 float values to
offsets 86A0-86B4 as described above, write a zero byte to offset 8680.
This will make it refer to the default camera. Alternatively you can first
write the Camera Name to offset 8680-869F, as a zero-terminated
ASCIIZ character string of up to 32 bytes (including terminator). This
will than make FSUIPC use the function
SimConnect_CameraSetRelative6DofByName
instead of the default camera version.
Note that, for this extra facility to work, you must be using Prepar3D
version 2 or later (earlier versions do not have this function), and
FSUIPC must be able to load the newer versions of
SimConnectP3D2.DLL (or SimConnectP3D3.dll for P3Dv3).
86E0 2 Traffic Limiter: limit value Intl Intl
86E2 1 Traffic Limiter: target frame rate value Intl Intl
86E3 1 Traffic Limiter: ground preference value Intl Intl
86E4 1 Traffic Limiter: planned airports preference value Intl Intl
86E5 1 Traffic Limiter: airports preference value Intl Intl
86E6 1 Traffic Limiter: near preference value Intl Intl
86E7 1 Traffic Limiter: reserved Intl Intl
9540 64 Current aircraft Profile name (63 chars aSCII + zero term). Intl No
9690 24 Details of the nearest ground AI aircraft, as follows:
Byte Size Content
0 4 32-bit integer identifying the aircraft (FSUIPC type ID)
4 4 Latitude as 32-bit float
8 4 Longitude as 32-bit float
12 4 Altitude as 32-bit float
16 2 Heading as 16-bit integer
18 2 Ground speed as 16-bit integer
20 2 Vertical speed as 16-bit integer
22 2 COM1 frequency
(1dd.dd where 0xdddd is the value here)
96A8 24 Details of the nearest airborne AI aircraft, same data as above
9800 1024 Used by Wideclient's Lua display control
9C00 1024 Used for the ASE Weather reading facilities
A000 512 Free for general use, for example in button or keys
programming.
A200 3584 Reserved
B000 4096 FSX and beyond: METAR weather reading and writing (i.e. Ok-SimC Ok-SimC
(but see
using the special FSX extended METAR strings of up to 2000
next entry
characters each): for reads of
B000–B7FF = Weather writing area (WRITE) B000-B7FF)
Just write string in FSX METAR format.
B800–BFFF = Weather at requested location (READ)
For ICAO ID or Lat/Lon written in CCxx area.
Note: see next entry for other use of B000-B7FF when
READING instead of WRITING.
B000 2048 4 bytes N/A
FSUIPC4 and FSUIPC5: This area is used to hold (see
the event.textmenu() data for WideClient Lua plug-ins. previous
It can be accessed by FSUIPC applications wishing to entry)