Common aircraft properties: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m (draft)
(draft (with some notes))
Line 3: Line 3:
==WORK IN PROGRESS==
==WORK IN PROGRESS==
TODO: standardise locations most common to existing aircraft to ease transition
TODO: standardise locations most common to existing aircraft to ease transition
With reference from: http://wiki.flightgear.org/Property_Tree/Reference
a suffix of norm means a normalised value e.g. a float/double of 0 to 1 to indicate full deployment or retraction of gears, as opposed to degrees.


With common aircraft properties found in uncommon locations, assigning buttons in joysticks to certain functions became mostly a hit or miss affair. e.g. Speedbrakes and thrust reversers are found in different location in the property tree, even across official FlightGear planes! Without standard locations, joystick code tends to be aircraft specific.
With common aircraft properties found in uncommon locations, assigning buttons in joysticks to certain functions became mostly a hit or miss affair. e.g. Speedbrakes and thrust reversers are found in different location in the property tree, even across official FlightGear planes! Without standard locations, joystick code tends to be aircraft specific.
Line 9: Line 13:


This document will exhaustively list property tree locations where aircraft developers should store their common aircraft properties (if not alias them).
This document will exhaustively list property tree locations where aircraft developers should store their common aircraft properties (if not alias them).
Values in states should be used to set states and to animate cockpit internals like levers. Values in transition properties should be used to animate external objects such as animating a retracting gear.
define /sim/propertystd = 1


==Gear==
==Gear==
Properties marked with an '✲' are standard across all aircraft and should always be set. For example, an old aircraft without any autobrakes should still define /controls/gear/autobrake although set it to 0
Properties marked with an '✲' are standard across all aircraft and should always be set. For example, an old aircraft without any autobrakes should still define /controls/gear/autobrake although set it to 0
===States===
===States===
/controls/gear is a backward compatible alias for /controls/gears<br />
*In /controls/gears
*In /controls/gears
** /controls/gears/brake-parking &#10034;<br />0 = Off<br />1 = On
** /controls/gears/brake-parking &#10034;<br />0 = Off<br />1 = On
** /controls/gears/brake-left<br />a backward compatible alias for /controls/gears/gear[1]/brake (or the property for the left brake)
** /controls/gears/brake-right<br />a backward compatible alias for /controls/gears/gear[2]/brake (or the property for the right brake)
** /controls/gears/inputs/pilot-pedal-toe-left<br />a backward compatible alias for /controls/gears/brake-left
** /controls/gears/inputs/pilot-pedal-toe-right<br />a backward compatible alias for /controls/gears/brake-right
** /controls/gears/inputs/pilot-pedal-heel-left alias for
** /controls/gears/inputs/pilot-pedal-heel-right alias for
** /controls/gears/inputs/copilot-pedal-toe-left<br />a backward compatible alias for /controls/gears/brake-left
** /controls/gears/inputs/copilot-pedal-toe-right<br />a backward compatible alias for /controls/gears/brake-right
** /controls/gears/inputs/copilot-pedal-heel-left alias for
** /controls/gears/inputs/copilot-pedal-heel-right alias for
** /controls/gears/outputs/pilot-pedal-toe-left<br />a backward compatible alias for /controls/gears/brake-left
** /controls/gears/outputs/pilot-pedal-toe-right<br />a backward compatible alias for /controls/gears/brake-right
** /controls/gears/outputs/pilot-pedal-heel-left alias for
** /controls/gears/outputs/pilot-pedal-heel-right alias for
** /controls/gears/outputs/copilot-pedal-toe-left<br />a backward compatible alias for /controls/gears/brake-left
** /controls/gears/outputs/copilot-pedal-toe-right<br />a backward compatible alias for /controls/gears/brake-right
** /controls/gears/outputs/copilot-pedal-heel-left alias for
** /controls/gears/outputs/copilot-pedal-heel-right alias for
** /controls/gears/brake-chokes &#10034;<br />0 = Off<br />1 = On
** /controls/gears/brake-chokes &#10034;<br />0 = Off<br />1 = On
** /controls/gears/antiskid &#10034;<br />0 = Off<br />1 = On
** /controls/gears/antiskid &#10034;<br />0 = Off<br />1 = On
** /controls/gears/autobrake &#10034;<br />0 = Fully Off<br />1 = Fully On
** /controls/gears/autobrake &#10034;<br />0 = Fully Off<br />1 = Fully On
** /controls/gears/launcbar &#10034;
** /controls/gears/launchbar &#10034;
** /controls/gears/servicable &#10034;
** /controls/gears/servicable &#10034;
** /controls/gears/brake-servicable
** /controls/gears/brake-servicable
Line 29: Line 59:
** /controls/gears/brake &#10034;
** /controls/gears/brake &#10034;
** /controls/gears/gear-down<br />0 = Retracted<br />1 = Extended
** /controls/gears/gear-down<br />0 = Retracted<br />1 = Extended
*In /controls/gears/gear[n]
nosewheel-steering alias for gear[0]
tailwheel-lock alias for
wheel[n]/alternate-extension alias for
 
 
*In /controls/gears/gear[n]<br />Due to the complex nature of gear configuration, gear numbering is not enforced. However, where possible, 0=nose, 1=left, 2=right, 3=tail. And where there are multiple, independant struts, they should be grouped under the side they appear. e.g. front strut on the left gear @ gear[1]/gear[0]
** /controls/gears/gear[n]/brakes/temperature
** /controls/gears/gear[n]/brakes/hydraulic-pressure
** /controls/gears/gear[n]/brakes/brake-pressure
** /controls/gears/gear[n]/brakes/available
 
** /controls/gears/gear[n]/tyre/temperature
** /controls/gears/gear[n]/tyre/air-pressure-norm
** /controls/gears/gear[n]/tyre/air-pressure-real
water-brakes
compression-ft
compression-ft
compression-norm
compression-norm
steering-norm
steering-norm
tailhook
tailhook
lights
lights-angle
wheel speed
wheel speed
water rudder
water rudder <-- should this be here?
===Transitions===
===Transitions===
*In /gears/gear[n]
*In /gears/gear[n]
Line 60: Line 106:




radios
==Radios==
The following is for virtual devices. Should you use a a different radio, you should use your own structure and update these values.
e.g. A user will set comm[0] frequency at /instrumentation/comm[n]/frequencies/selected-int. You're device should monitor this value and on change, assume an input. You then do your tests and own logic and set the /instrumentation/comm[n]/output/selected-int. The purpose of this dual step process is to account for faulty instruments. The frequency that Flightgear will then use for audio will be the output/selected-int
To ignore failures, it is ok to alias output to input. Always set values on input though and flightgear will read from output. Only the flightgear F12 menu may read from input.
You should therefore your own input with the default input, and likewise with the outputs
 
 
Common across all radios in /instrumentation/*/<br />e.g. /instrumentation/comm[1]/power/voltage-min
 
** power/voltage-min
** power/voltage-typical
** power/voltage-max
** power/current-typical
** power/current-quiesecent
** power/current-xmit
** power/current-min
** power/current-max
** power/real-voltage (current voltage it is getting)
** power/real-current (current current it is getting)
** power/fused
** power/short-after-fuse
** power/short-before-fuse
** operable
** serviceable (bool)
 
Common across all radios in /instrumentation/*/ except Transponder
** audio/squelch-xmit
** audio/squelch-recv
** audio/volume-xmit
** audio/volume-recv
 
 
===Comms===
* In /instrumentation/comm[n]/
** /instrumentation/comm[n]/frequencies/selected-int
** /instrumentation/comm[n]/frequencies/standby-int
** /instrumentation/comm[n]/input/swap-btn
** /instrumentation/comm[n]/input/test-btn
** /instrumentation/comm[n]/input/ptt-btn
** /instrumentation/comm[n]/output/selected-int
** /instrumentation/comm[n]/output/standby-int
** /instrumentation/comm[n]/illumination
** /instrumentation/comm[n]/ptt
 
====Deprecated====
** frequencies/selected-mhz
** frequencies/standby-mhz
** volume<br />deprecated alias for /instrumentation/comm[n]/audio/volume-recv
 
 
===Transponder===
* In /instrumentation/transponder/
** altitude-valid
** inputs/digit[n] LSB First
** inputs/ident-btn
** inputs/mode
** inputs/altitude
** outputs/mode
** outputs/altitude
** outputs/id-code
** outputs/ident
 
====Deprecated====
** id-code
** ident
** transmitted-id
** /instrumentation/transponder/altitude deprecated alias for /instrumentation/transponder/inputs/altitude
** /instrumentation/transponder/inputs/knob-mode deprecated alias for ** /instrumentation/transponder/inputs/mode
 
 
 
 
 
 
- /instrumentation/adf
adf-btn
bfo-btn
display-mode
error-deg
enroute-timer/running, start-time, time
flight-timer
frequencies/selected-khz, standby-khz
ident = BED
ident-audible
in-range
indicated-bearing-deg
mode
operable
power-btn
fight-display
rotation-deg
serviceable
set-btn
volume-norm
 
- /instrumentation/nav
- /instrumentation/nav
dme
fuel indicator
failures
==Fuel==
* In /controls/fuel/
** dump-valve
** dump-valve-norm (dimenionless dump value normalised to 1 where 1 equals the fuel-flow-litres-max)
** fuel-flow-pressure-norm (dimensionless pressure value) default 1 (negative numbers and numbers beyond 1 allowed)
** fuel-flow-resistance-norm (dimensionless "reverse" pressure value) default 0 (negative numbers and numbers beyond 1 allowed)
** fuel-flow-norm (dimensionless fuel flow value based on pressure minus resistance) default inherited/calculated = 1
** fuel-flow-litres
** fuel-flow-litres-typical //define default max burnrate at max throttle and nose diving
** fuel-density-kgpm3 (average)
** fuel-density-ppg (average)
** total-fuel-norm
*In /controls/fuel/tank[n]/boost-pump[n]/
** fuel-flow-pressure-norm (dimensionless pressure value) default 1 (negative numbers and numbers beyond 1 allowed)
** fuel-flow-resistance-norm (dimensionless "reverse" pressure value) default 0 (negative numbers and numbers beyond 1 allowed)
** fuel-flow-norm (dimensionless fuel flow value based on pressure minus resistance) default inherited/calculated = 1
** fuel-flow-litres
** fuel-flow-litres-typical //define default max burnrate at max throttle and nose diving
** fuel-density-kgpm3 (average)
** fuel-density-ppg (average)
* In /consumables/fuel/weight/
** total-capacity-lbs
** total-capacity-kg
** total-lbs
** total-kg
* In /consumables/fuel/volume/
** total-capacity-litres
** total-capacity-gals_imp
** total-capacity-gals_us
** total-litres
** total-gals_imp
** total-gals_us
* In /consumables/fuel/tank[n]
** level-fuel-norm
* In /consumables/fuel/tank[n]/weight/
** level-capacity-lbs
** level-capacity-kg
** level-lbs
** level-kg
* In /consumables/fuel/tank[n]/volume/
** level-capacity-gals_imp
** level-capacity-gals_us
** level-capacity-litres
** level-gals_imp
** level-gals_us
** level-litres
*Deprecated values
** /consumables/fuel/total-gal_imp deprecated alias for /consumables/fuel/total-gals_imp
** /consumables/fuel/total-gal_us deprecated alias for /consumables/fuel/total-gals_imp
** fuel-selector
** to_engine
** to_tank






fuel




implementation with custom locations: if you require your values be stored in a custom location, be sure to alias them in the standard location: <property alias="../../params/n1"/>h
implementation with custom locations: if you require your values be stored in a custom location, be sure to alias them in the standard location: <property alias="../../params/n1"/>h

Revision as of 07:52, 18 August 2013

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

WORK IN PROGRESS

TODO: standardise locations most common to existing aircraft to ease transition

With reference from: http://wiki.flightgear.org/Property_Tree/Reference

a suffix of norm means a normalised value e.g. a float/double of 0 to 1 to indicate full deployment or retraction of gears, as opposed to degrees.

With common aircraft properties found in uncommon locations, assigning buttons in joysticks to certain functions became mostly a hit or miss affair. e.g. Speedbrakes and thrust reversers are found in different location in the property tree, even across official FlightGear planes! Without standard locations, joystick code tends to be aircraft specific.

There was an attempt to unify it all with a nasal script but after consulation and comments with others, this attempt was replaced with the solution to standardise common aircraft properties in standardised locations.

This document will exhaustively list property tree locations where aircraft developers should store their common aircraft properties (if not alias them).

Values in states should be used to set states and to animate cockpit internals like levers. Values in transition properties should be used to animate external objects such as animating a retracting gear.

define /sim/propertystd = 1

Gear

Properties marked with an '✲' are standard across all aircraft and should always be set. For example, an old aircraft without any autobrakes should still define /controls/gear/autobrake although set it to 0

States

/controls/gear is a backward compatible alias for /controls/gears

  • In /controls/gears
    • /controls/gears/brake-parking ✲
      0 = Off
      1 = On
    • /controls/gears/brake-left
      a backward compatible alias for /controls/gears/gear[1]/brake (or the property for the left brake)
    • /controls/gears/brake-right
      a backward compatible alias for /controls/gears/gear[2]/brake (or the property for the right brake)
    • /controls/gears/inputs/pilot-pedal-toe-left
      a backward compatible alias for /controls/gears/brake-left
    • /controls/gears/inputs/pilot-pedal-toe-right
      a backward compatible alias for /controls/gears/brake-right
    • /controls/gears/inputs/pilot-pedal-heel-left alias for
    • /controls/gears/inputs/pilot-pedal-heel-right alias for
    • /controls/gears/inputs/copilot-pedal-toe-left
      a backward compatible alias for /controls/gears/brake-left
    • /controls/gears/inputs/copilot-pedal-toe-right
      a backward compatible alias for /controls/gears/brake-right
    • /controls/gears/inputs/copilot-pedal-heel-left alias for
    • /controls/gears/inputs/copilot-pedal-heel-right alias for
    • /controls/gears/outputs/pilot-pedal-toe-left
      a backward compatible alias for /controls/gears/brake-left
    • /controls/gears/outputs/pilot-pedal-toe-right
      a backward compatible alias for /controls/gears/brake-right
    • /controls/gears/outputs/pilot-pedal-heel-left alias for
    • /controls/gears/outputs/pilot-pedal-heel-right alias for
    • /controls/gears/outputs/copilot-pedal-toe-left
      a backward compatible alias for /controls/gears/brake-left
    • /controls/gears/outputs/copilot-pedal-toe-right
      a backward compatible alias for /controls/gears/brake-right
    • /controls/gears/outputs/copilot-pedal-heel-left alias for
    • /controls/gears/outputs/copilot-pedal-heel-right alias for
    • /controls/gears/brake-chokes ✲
      0 = Off
      1 = On
    • /controls/gears/antiskid ✲
      0 = Off
      1 = On
    • /controls/gears/autobrake ✲
      0 = Fully Off
      1 = Fully On
    • /controls/gears/launchbar ✲
    • /controls/gears/servicable ✲
    • /controls/gears/brake-servicable
    • /controls/gears/brake-temperature
    • /controls/gears/brake-hydraulic-pressure
    • /controls/gears/tyre-temperature
    • /controls/gears/tyre-pressure
    • /controls/gears/brake-available ✲
    • /controls/gears/retractable ✲
    • /controls/gears/brake ✲
    • /controls/gears/gear-down
      0 = Retracted
      1 = Extended

nosewheel-steering alias for gear[0] tailwheel-lock alias for wheel[n]/alternate-extension alias for


  • In /controls/gears/gear[n]
    Due to the complex nature of gear configuration, gear numbering is not enforced. However, where possible, 0=nose, 1=left, 2=right, 3=tail. And where there are multiple, independant struts, they should be grouped under the side they appear. e.g. front strut on the left gear @ gear[1]/gear[0]
    • /controls/gears/gear[n]/brakes/temperature
    • /controls/gears/gear[n]/brakes/hydraulic-pressure
    • /controls/gears/gear[n]/brakes/brake-pressure
    • /controls/gears/gear[n]/brakes/available
    • /controls/gears/gear[n]/tyre/temperature
    • /controls/gears/gear[n]/tyre/air-pressure-norm
    • /controls/gears/gear[n]/tyre/air-pressure-real

water-brakes compression-ft compression-norm steering-norm tailhook lights lights-angle wheel speed water rudder <-- should this be here?

Transitions

  • In /gears/gear[n]
    • /gears/gear[n]/position-norm
      0 = Fully Retracted
      0.x = Transitioning
      1 = Fully Extended
  • In /controls/gears/gear[n]

brake-pressure 0 0.x 1 friction-ground friction-ground-real friction-bearing friction-bearing-real friction-side-slip friction-side-slip-real


Speedbrakes

engine --thrust reversers

flaps

tailhook


Radios

The following is for virtual devices. Should you use a a different radio, you should use your own structure and update these values. e.g. A user will set comm[0] frequency at /instrumentation/comm[n]/frequencies/selected-int. You're device should monitor this value and on change, assume an input. You then do your tests and own logic and set the /instrumentation/comm[n]/output/selected-int. The purpose of this dual step process is to account for faulty instruments. The frequency that Flightgear will then use for audio will be the output/selected-int To ignore failures, it is ok to alias output to input. Always set values on input though and flightgear will read from output. Only the flightgear F12 menu may read from input. You should therefore your own input with the default input, and likewise with the outputs


Common across all radios in /instrumentation/*/
e.g. /instrumentation/comm[1]/power/voltage-min

    • power/voltage-min
    • power/voltage-typical
    • power/voltage-max
    • power/current-typical
    • power/current-quiesecent
    • power/current-xmit
    • power/current-min
    • power/current-max
    • power/real-voltage (current voltage it is getting)
    • power/real-current (current current it is getting)
    • power/fused
    • power/short-after-fuse
    • power/short-before-fuse
    • operable
    • serviceable (bool)

Common across all radios in /instrumentation/*/ except Transponder

    • audio/squelch-xmit
    • audio/squelch-recv
    • audio/volume-xmit
    • audio/volume-recv


Comms

  • In /instrumentation/comm[n]/
    • /instrumentation/comm[n]/frequencies/selected-int
    • /instrumentation/comm[n]/frequencies/standby-int
    • /instrumentation/comm[n]/input/swap-btn
    • /instrumentation/comm[n]/input/test-btn
    • /instrumentation/comm[n]/input/ptt-btn
    • /instrumentation/comm[n]/output/selected-int
    • /instrumentation/comm[n]/output/standby-int
    • /instrumentation/comm[n]/illumination
    • /instrumentation/comm[n]/ptt

Deprecated

    • frequencies/selected-mhz
    • frequencies/standby-mhz
    • volume
      deprecated alias for /instrumentation/comm[n]/audio/volume-recv


Transponder

  • In /instrumentation/transponder/
    • altitude-valid
    • inputs/digit[n] LSB First
    • inputs/ident-btn
    • inputs/mode
    • inputs/altitude
    • outputs/mode
    • outputs/altitude
    • outputs/id-code
    • outputs/ident

Deprecated

    • id-code
    • ident
    • transmitted-id
    • /instrumentation/transponder/altitude deprecated alias for /instrumentation/transponder/inputs/altitude
    • /instrumentation/transponder/inputs/knob-mode deprecated alias for ** /instrumentation/transponder/inputs/mode




- /instrumentation/adf adf-btn bfo-btn display-mode error-deg enroute-timer/running, start-time, time flight-timer frequencies/selected-khz, standby-khz ident = BED ident-audible in-range indicated-bearing-deg mode operable power-btn fight-display rotation-deg serviceable set-btn volume-norm

- /instrumentation/nav dme

fuel indicator

failures


Fuel

  • In /controls/fuel/
    • dump-valve
    • dump-valve-norm (dimenionless dump value normalised to 1 where 1 equals the fuel-flow-litres-max)
    • fuel-flow-pressure-norm (dimensionless pressure value) default 1 (negative numbers and numbers beyond 1 allowed)
    • fuel-flow-resistance-norm (dimensionless "reverse" pressure value) default 0 (negative numbers and numbers beyond 1 allowed)
    • fuel-flow-norm (dimensionless fuel flow value based on pressure minus resistance) default inherited/calculated = 1
    • fuel-flow-litres
    • fuel-flow-litres-typical //define default max burnrate at max throttle and nose diving
    • fuel-density-kgpm3 (average)
    • fuel-density-ppg (average)
    • total-fuel-norm
  • In /controls/fuel/tank[n]/boost-pump[n]/
    • fuel-flow-pressure-norm (dimensionless pressure value) default 1 (negative numbers and numbers beyond 1 allowed)
    • fuel-flow-resistance-norm (dimensionless "reverse" pressure value) default 0 (negative numbers and numbers beyond 1 allowed)
    • fuel-flow-norm (dimensionless fuel flow value based on pressure minus resistance) default inherited/calculated = 1
    • fuel-flow-litres
    • fuel-flow-litres-typical //define default max burnrate at max throttle and nose diving
    • fuel-density-kgpm3 (average)
    • fuel-density-ppg (average)
  • In /consumables/fuel/weight/
    • total-capacity-lbs
    • total-capacity-kg
    • total-lbs
    • total-kg
  • In /consumables/fuel/volume/
    • total-capacity-litres
    • total-capacity-gals_imp
    • total-capacity-gals_us
    • total-litres
    • total-gals_imp
    • total-gals_us
  • In /consumables/fuel/tank[n]
    • level-fuel-norm
  • In /consumables/fuel/tank[n]/weight/
    • level-capacity-lbs
    • level-capacity-kg
    • level-lbs
    • level-kg
  • In /consumables/fuel/tank[n]/volume/
    • level-capacity-gals_imp
    • level-capacity-gals_us
    • level-capacity-litres
    • level-gals_imp
    • level-gals_us
    • level-litres
  • Deprecated values
    • /consumables/fuel/total-gal_imp deprecated alias for /consumables/fuel/total-gals_imp
    • /consumables/fuel/total-gal_us deprecated alias for /consumables/fuel/total-gals_imp
    • fuel-selector
    • to_engine
    • to_tank





implementation with custom locations: if you require your values be stored in a custom location, be sure to alias them in the standard location: <property alias="../../params/n1"/>h