Updates to the controls properties tree. This is a major update so there may be one or two 'old' refferences left. To simplify the transisition there is a file called README.properties in the docs-mini directory of FlightGear that explains the new controls layout.
This commit is contained in:
parent
a6c1632298
commit
c3cefaf883
12 changed files with 2371 additions and 184 deletions
140
docs-mini/README.properties
Normal file
140
docs-mini/README.properties
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
|
||||||
|
Flight Controls
|
||||||
|
---------------
|
||||||
|
/controls/flight/aileron
|
||||||
|
/controls/flight/aileron-trim
|
||||||
|
/controls/flight/elevator
|
||||||
|
/controls/flight/elevator-trim
|
||||||
|
/controls/flight/rudder
|
||||||
|
/controls/flight/rudder-trim
|
||||||
|
/controls/flight/flaps
|
||||||
|
/controls/flight/slats
|
||||||
|
/controls/flight/BLC // Boundary Layer Control
|
||||||
|
/controls/flight/spoilers
|
||||||
|
/controls/flight/speedbrake
|
||||||
|
/controls/flight/wing-sweep
|
||||||
|
/controls/flight/wing-fold
|
||||||
|
/controls/flight/drag-chute
|
||||||
|
|
||||||
|
Engines
|
||||||
|
-------
|
||||||
|
/controls/engines/throttle_idle
|
||||||
|
/controls/engines/engine[%d]/throttle
|
||||||
|
/controls/engines/engine[%d]/starter
|
||||||
|
/controls/engines/engine[%d]/fuel-pump
|
||||||
|
/controls/engines/engine[%d]/fire-switch
|
||||||
|
/controls/engines/engine[%d]/fire-bottle-discharge
|
||||||
|
/controls/engines/engine[%d]/cutoff
|
||||||
|
/controls/engines/engine[%d]/mixture
|
||||||
|
/controls/engines/engine[%d]/propeller-pitch
|
||||||
|
/controls/engines/engine[%d]/magnetos
|
||||||
|
/controls/engines/engine[%d]/WEP
|
||||||
|
/controls/engines/engine[%d]/cowl-flaps-norm
|
||||||
|
/controls/engines/engine[%d]/feather
|
||||||
|
/controls/engines/engine[%d]/ignition
|
||||||
|
/controls/engines/engine[%d]/augmentation
|
||||||
|
/controls/engines/engine[%d]/reverser
|
||||||
|
/controls/engines/engine[%d]/water-injection
|
||||||
|
/controls/engines/engine[%d]/condition
|
||||||
|
|
||||||
|
Fuel
|
||||||
|
----
|
||||||
|
/controls/fuel/dump-valve
|
||||||
|
/controls/fuel/tank[%d]/fuel_selector
|
||||||
|
/controls/fuel/tank[%d]/to_engine
|
||||||
|
/controls/fuel/tank[%d]/to_tank
|
||||||
|
/controls/fuel/tank[%d]/boost-pump[%d]
|
||||||
|
|
||||||
|
Gear
|
||||||
|
----
|
||||||
|
/controls/gear/parking-brake
|
||||||
|
/controls/gear/steering
|
||||||
|
/controls/gear/gear-down
|
||||||
|
/controls/gear/antiskid
|
||||||
|
/controls/gear/tailhook
|
||||||
|
/controls/gear/tailwheel-lock
|
||||||
|
/controls/gear/wheel[%d]/brake
|
||||||
|
/controls/gear/wheel[%d]/alternate-extension
|
||||||
|
|
||||||
|
Anti-Ice
|
||||||
|
--------
|
||||||
|
/controls/anti-ice/wing-heat
|
||||||
|
/controls/anti-ice/pitot-heat
|
||||||
|
/controls/anti-ice/wiper
|
||||||
|
/controls/anti-ice/window-heat
|
||||||
|
/controls/anti-ice/engine[%d]/carb-heat
|
||||||
|
/controls/anti-ice/engine[%d]/inlet-heat
|
||||||
|
|
||||||
|
Hydraulics
|
||||||
|
----------
|
||||||
|
/controls/hydraulic/system[%d]/engine-pump
|
||||||
|
/controls/hydraulic/system[%d]/electric-pump
|
||||||
|
|
||||||
|
Electric
|
||||||
|
--------
|
||||||
|
/controls/electric/battery-switch
|
||||||
|
/controls/electric/external-power
|
||||||
|
/controls/electric/APU-generator
|
||||||
|
/controls/electric/engine[%d]/generator
|
||||||
|
/controls/electric/engine[%d]/bus-tie
|
||||||
|
|
||||||
|
Pneumatic
|
||||||
|
---------
|
||||||
|
/controls/pneumatic/APU-bleed
|
||||||
|
/controls/pneumatic/engine[%d]/bleed
|
||||||
|
|
||||||
|
Pressurization
|
||||||
|
--------------
|
||||||
|
/controls/pressurization/mode
|
||||||
|
/controls/pressurization/dump
|
||||||
|
/controls/pressurization/outflow-valve
|
||||||
|
/controls/pressurization/pack[%d]/pack-on
|
||||||
|
|
||||||
|
Lights
|
||||||
|
------
|
||||||
|
/controls/lighting/landing-lights
|
||||||
|
/controls/lighting/turn-off-lights
|
||||||
|
/controls/lighting/taxi-light
|
||||||
|
/controls/lighting/logo-lights
|
||||||
|
/controls/lighting/nav-lights
|
||||||
|
/controls/lighting/beacon
|
||||||
|
/controls/lighting/strobe
|
||||||
|
/controls/lighting/panel-norm
|
||||||
|
/controls/lighting/instruments-norm
|
||||||
|
/controls/lighting/dome-norm
|
||||||
|
|
||||||
|
Armament
|
||||||
|
--------
|
||||||
|
/controls/armament/master-arm
|
||||||
|
/controls/armament/station-select
|
||||||
|
/controls/armament/release-all
|
||||||
|
/controls/armament/station[%d]/stick-size
|
||||||
|
/controls/armament/station[%d]/release-stick
|
||||||
|
/controls/armament/station[%d]/release-all
|
||||||
|
/controls/armament/station[%d]/jettison-all
|
||||||
|
|
||||||
|
Seat
|
||||||
|
----
|
||||||
|
/controls/seat/vertical-adjust
|
||||||
|
/controls/seat/fore-aft-adjust
|
||||||
|
/controls/seat/eject
|
||||||
|
|
||||||
|
APU
|
||||||
|
---
|
||||||
|
/controls/APU/off-start-run
|
||||||
|
/controls/APU/fire-switch
|
||||||
|
|
||||||
|
Autoflight
|
||||||
|
----------
|
||||||
|
/controls/autoflight/autopilot[%d]/engage
|
||||||
|
/controls/autoflight/autothrottle-arm
|
||||||
|
/controls/autoflight/autothrottle-engage
|
||||||
|
/controls/autoflight/heading-select
|
||||||
|
/controls/autoflight/altitude-select
|
||||||
|
/controls/autoflight/bank-angle-select
|
||||||
|
/controls/autoflight/vertical-speed-select
|
||||||
|
/controls/autoflight/speed-select
|
||||||
|
/controls/autoflight/mach-select
|
||||||
|
/controls/autoflight/vertical-mode
|
||||||
|
/controls/autoflight/lateral-mode
|
||||||
|
|
|
@ -240,7 +240,7 @@ void FGAutopilot::init ()
|
||||||
roll_out_node = fgGetNode("/autopilot/config/roll-out-deg", true);
|
roll_out_node = fgGetNode("/autopilot/config/roll-out-deg", true);
|
||||||
roll_out_smooth_node = fgGetNode("/autopilot/config/roll-out-smooth-deg", true);
|
roll_out_smooth_node = fgGetNode("/autopilot/config/roll-out-smooth-deg", true);
|
||||||
|
|
||||||
current_throttle = fgGetNode("/controls/throttle");
|
current_throttle = fgGetNode("/controls/engines/engine/throttle");
|
||||||
|
|
||||||
// initialize config properties with defaults (in case config isn't there)
|
// initialize config properties with defaults (in case config isn't there)
|
||||||
if ( TargetClimbRate->getFloatValue() < 1 )
|
if ( TargetClimbRate->getFloatValue() < 1 )
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -53,11 +53,41 @@ public:
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ALL_TANKS = -1,
|
ALL_TANKS = -1,
|
||||||
MAX_TANKS = 4
|
MAX_TANKS = 8
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_BOOSTPUMPS = -1,
|
||||||
|
MAX_BOOSTPUMPS = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_HYD_SYSTEMS = -1,
|
||||||
|
MAX_HYD_SYSTEMS = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_PACKS = -1,
|
||||||
|
MAX_PACKS = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_LIGHTS = -1,
|
||||||
|
MAX_LIGHTS = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_STATIONS = -1,
|
||||||
|
MAX_STATIONS = 12
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALL_AUTOPILOTS = -1,
|
||||||
|
MAX_AUTOPILOTS = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// controls/flight/
|
||||||
double aileron;
|
double aileron;
|
||||||
double aileron_trim;
|
double aileron_trim;
|
||||||
double elevator;
|
double elevator;
|
||||||
|
@ -65,19 +95,143 @@ private:
|
||||||
double rudder;
|
double rudder;
|
||||||
double rudder_trim;
|
double rudder_trim;
|
||||||
double flaps;
|
double flaps;
|
||||||
double throttle[MAX_ENGINES];
|
double slats;
|
||||||
double mixture[MAX_ENGINES];
|
bool BLC; // Boundary Layer Control
|
||||||
bool fuel_pump[MAX_ENGINES];
|
|
||||||
double prop_advance[MAX_ENGINES];
|
|
||||||
double parking_brake;
|
|
||||||
double speed_brake;
|
|
||||||
double spoilers;
|
double spoilers;
|
||||||
double brake[MAX_WHEELS];
|
double speedbrake;
|
||||||
int magnetos[MAX_ENGINES];
|
double wing_sweep;
|
||||||
|
bool wing_fold;
|
||||||
|
bool drag_chute;
|
||||||
|
|
||||||
|
// controls/engines/
|
||||||
bool throttle_idle;
|
bool throttle_idle;
|
||||||
|
|
||||||
|
// controls/engines/engine[n]/
|
||||||
|
double throttle[MAX_ENGINES];
|
||||||
bool starter[MAX_ENGINES];
|
bool starter[MAX_ENGINES];
|
||||||
|
bool fuel_pump[MAX_ENGINES];
|
||||||
|
bool fire_switch[MAX_ENGINES];
|
||||||
|
bool fire_bottle_discharge[MAX_ENGINES];
|
||||||
|
bool cutoff[MAX_ENGINES];
|
||||||
|
double mixture[MAX_ENGINES];
|
||||||
|
double prop_advance[MAX_ENGINES];
|
||||||
|
int magnetos[MAX_ENGINES];
|
||||||
|
bool nitrous_injection[MAX_ENGINES]; // War Emergency Power
|
||||||
|
double cowl_flaps_norm[MAX_ENGINES];
|
||||||
|
bool feather[MAX_ENGINES];
|
||||||
|
int ignition[MAX_ENGINES];
|
||||||
|
bool augmentation[MAX_ENGINES];
|
||||||
|
bool reverser[MAX_ENGINES];
|
||||||
|
bool water_injection[MAX_ENGINES];
|
||||||
|
int condition[MAX_ENGINES]; // turboprop speed select
|
||||||
|
|
||||||
|
// controls/fuel/
|
||||||
|
bool dump_valve;
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/
|
||||||
bool fuel_selector[MAX_TANKS];
|
bool fuel_selector[MAX_TANKS];
|
||||||
|
int to_engine[MAX_TANKS];
|
||||||
|
int to_tank[MAX_TANKS];
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/pump[p]/
|
||||||
|
bool boost_pump[MAX_TANKS * MAX_BOOSTPUMPS];
|
||||||
|
|
||||||
|
// controls/gear/
|
||||||
|
double parking_brake;
|
||||||
|
double steering;
|
||||||
bool gear_down;
|
bool gear_down;
|
||||||
|
bool antiskid;
|
||||||
|
bool tailhook;
|
||||||
|
bool tailwheel_lock;
|
||||||
|
|
||||||
|
// controls/gear/wheel[n]/
|
||||||
|
double brake[MAX_WHEELS];
|
||||||
|
bool alternate_extension[MAX_WHEELS];
|
||||||
|
|
||||||
|
// controls/anti-ice/
|
||||||
|
bool wing_heat;
|
||||||
|
bool pitot_heat;
|
||||||
|
int wiper;
|
||||||
|
bool window_heat;
|
||||||
|
|
||||||
|
// controls/anti-ice/engine[n]/
|
||||||
|
bool carb_heat[MAX_ENGINES];
|
||||||
|
bool inlet_heat[MAX_ENGINES];
|
||||||
|
|
||||||
|
// controls/hydraulic/system[n]/
|
||||||
|
bool engine_pump[MAX_HYD_SYSTEMS];
|
||||||
|
bool electric_pump[MAX_HYD_SYSTEMS];
|
||||||
|
|
||||||
|
// controls/electric/
|
||||||
|
bool battery_switch;
|
||||||
|
bool external_power;
|
||||||
|
bool APU_generator;
|
||||||
|
|
||||||
|
// controls/electric/engine[n]/
|
||||||
|
bool generator_breaker[MAX_ENGINES];
|
||||||
|
bool bus_tie[MAX_ENGINES];
|
||||||
|
|
||||||
|
// controls/pneumatic/
|
||||||
|
bool APU_bleed;
|
||||||
|
|
||||||
|
// controls/pneumatic/engine[n]/
|
||||||
|
bool engine_bleed[MAX_ENGINES];
|
||||||
|
|
||||||
|
// controls/pressurization/
|
||||||
|
int mode;
|
||||||
|
bool dump;
|
||||||
|
double outflow_valve;
|
||||||
|
|
||||||
|
// controls/pressurization/pack[n]/
|
||||||
|
bool pack_on[MAX_PACKS];
|
||||||
|
|
||||||
|
// controls/lighting/
|
||||||
|
bool landing_lights;
|
||||||
|
bool turn_off_lights;
|
||||||
|
bool taxi_light;
|
||||||
|
bool logo_lights;
|
||||||
|
bool nav_lights;
|
||||||
|
bool beacon;
|
||||||
|
bool strobe;
|
||||||
|
double panel_norm;
|
||||||
|
double instruments_norm;
|
||||||
|
double dome_norm;
|
||||||
|
|
||||||
|
// controls/armament/
|
||||||
|
bool master_arm;
|
||||||
|
int station_select;
|
||||||
|
bool release_ALL;
|
||||||
|
|
||||||
|
// controls/armament/station[n]/
|
||||||
|
int stick_size[MAX_STATIONS];
|
||||||
|
bool release_stick[MAX_STATIONS];
|
||||||
|
bool release_all[MAX_STATIONS];
|
||||||
|
bool jettison_all[MAX_STATIONS];
|
||||||
|
|
||||||
|
// controls/seat/
|
||||||
|
double vertical_adjust;
|
||||||
|
double fore_aft_adjust;
|
||||||
|
bool eject;
|
||||||
|
|
||||||
|
// controls/APU/
|
||||||
|
int off_start_run;
|
||||||
|
bool APU_fire_switch;
|
||||||
|
|
||||||
|
// controls/autoflight/autopilot[n]/
|
||||||
|
bool autopilot_engage[MAX_AUTOPILOTS];
|
||||||
|
|
||||||
|
// controls/autoflight/
|
||||||
|
bool autothrottle_arm;
|
||||||
|
bool autothrottle_engage;
|
||||||
|
double heading_select;
|
||||||
|
double altitude_select;
|
||||||
|
double bank_angle_select;
|
||||||
|
double vertical_speed_select;
|
||||||
|
double speed_select;
|
||||||
|
double mach_select;
|
||||||
|
int vertical_mode;
|
||||||
|
int lateral_mode;
|
||||||
|
|
||||||
|
|
||||||
SGPropertyNode * auto_coordination;
|
SGPropertyNode * auto_coordination;
|
||||||
|
|
||||||
|
@ -96,6 +250,7 @@ public:
|
||||||
void reset_all(void);
|
void reset_all(void);
|
||||||
|
|
||||||
// Query functions
|
// Query functions
|
||||||
|
// controls/flight/
|
||||||
inline double get_aileron() const { return aileron; }
|
inline double get_aileron() const { return aileron; }
|
||||||
inline double get_aileron_trim() const { return aileron_trim; }
|
inline double get_aileron_trim() const { return aileron_trim; }
|
||||||
inline double get_elevator() const { return elevator; }
|
inline double get_elevator() const { return elevator; }
|
||||||
|
@ -103,24 +258,170 @@ public:
|
||||||
inline double get_rudder() const { return rudder; }
|
inline double get_rudder() const { return rudder; }
|
||||||
inline double get_rudder_trim() const { return rudder_trim; }
|
inline double get_rudder_trim() const { return rudder_trim; }
|
||||||
inline double get_flaps() const { return flaps; }
|
inline double get_flaps() const { return flaps; }
|
||||||
|
inline double get_slats() const { return slats; }
|
||||||
|
inline bool get_BLC() const { return BLC; }
|
||||||
|
inline double get_spoilers() const { return spoilers; }
|
||||||
|
inline double get_speedbrake() const { return speedbrake; }
|
||||||
|
inline double get_wing_sweep() const { return wing_sweep; }
|
||||||
|
inline bool get_wing_fold() const { return wing_fold; }
|
||||||
|
inline bool get_drag_chute() const { return drag_chute; }
|
||||||
|
|
||||||
|
// controls/engines/
|
||||||
|
inline bool get_throttle_idle() const { return throttle_idle; }
|
||||||
|
|
||||||
|
// controls/engines/engine[n]/
|
||||||
inline double get_throttle(int engine) const { return throttle[engine]; }
|
inline double get_throttle(int engine) const { return throttle[engine]; }
|
||||||
inline double get_mixture(int engine) const { return mixture[engine]; }
|
inline bool get_starter(int engine) const { return starter[engine]; }
|
||||||
inline bool get_fuel_pump(int engine) const { return fuel_pump[engine]; }
|
inline bool get_fuel_pump(int engine) const { return fuel_pump[engine]; }
|
||||||
|
inline bool get_fire_switch(int engine) const { return fire_switch[engine]; }
|
||||||
|
inline bool get_fire_bottle_discharge(int engine) const {
|
||||||
|
return fire_bottle_discharge[engine];
|
||||||
|
}
|
||||||
|
inline bool get_cutoff(int engine) const { return cutoff[engine]; }
|
||||||
|
inline double get_mixture(int engine) const { return mixture[engine]; }
|
||||||
inline double get_prop_advance(int engine) const {
|
inline double get_prop_advance(int engine) const {
|
||||||
return prop_advance[engine];
|
return prop_advance[engine];
|
||||||
}
|
}
|
||||||
inline double get_parking_brake() const { return parking_brake; }
|
|
||||||
inline double get_speed_brake() const { return speed_brake; }
|
|
||||||
inline double get_spoilers() const { return spoilers; }
|
|
||||||
inline double get_brake(int wheel) const { return brake[wheel]; }
|
|
||||||
inline int get_magnetos(int engine) const { return magnetos[engine]; }
|
inline int get_magnetos(int engine) const { return magnetos[engine]; }
|
||||||
inline bool get_starter(int engine) const { return starter[engine]; }
|
inline bool get_nitrous_injection(int engine) const {
|
||||||
|
return nitrous_injection[engine];
|
||||||
|
}
|
||||||
|
inline double get_cowl_flaps_norm(int engine) const {
|
||||||
|
return cowl_flaps_norm[engine];
|
||||||
|
}
|
||||||
|
inline bool get_feather(int engine) const { return feather[engine]; }
|
||||||
|
inline int get_ignition(int engine) const { return ignition[engine]; }
|
||||||
|
inline bool get_augmentation(int engine) const { return augmentation[engine]; }
|
||||||
|
inline bool get_reverser(int engine) const { return reverser[engine]; }
|
||||||
|
inline bool get_water_injection(int engine) const {
|
||||||
|
return water_injection[engine];
|
||||||
|
}
|
||||||
|
inline int get_condition(int engine) const { return condition[engine]; }
|
||||||
|
|
||||||
|
// controls/fuel/
|
||||||
|
inline bool get_dump_valve() const { return dump_valve; }
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/
|
||||||
inline bool get_fuel_selector(int tank) const {
|
inline bool get_fuel_selector(int tank) const {
|
||||||
return fuel_selector[tank];
|
return fuel_selector[tank];
|
||||||
}
|
}
|
||||||
|
inline int get_to_engine(int tank) const { return to_engine[tank]; }
|
||||||
|
inline int get_to_tank(int tank) const { return to_tank[tank]; }
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/pump[p]/
|
||||||
|
inline bool get_boost_pump(int index) const {
|
||||||
|
return boost_pump[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
// controls/gear/
|
||||||
|
inline double get_parking_brake() const { return parking_brake; }
|
||||||
|
inline double get_steering() const { return steering; }
|
||||||
inline bool get_gear_down() const { return gear_down; }
|
inline bool get_gear_down() const { return gear_down; }
|
||||||
|
inline bool get_antiskid() const { return antiskid; }
|
||||||
|
inline bool get_tailhook() const { return tailhook; }
|
||||||
|
inline bool get_tailwheel_lock() const { return tailwheel_lock; }
|
||||||
|
|
||||||
|
// controls/gear/wheel[n]/
|
||||||
|
inline double get_brake(int wheel) const { return brake[wheel]; }
|
||||||
|
inline bool get_alternate_extension(int wheel) const {
|
||||||
|
return alternate_extension[wheel];
|
||||||
|
}
|
||||||
|
|
||||||
|
// controls/anti-ice/
|
||||||
|
inline bool get_wing_heat() const { return wing_heat; }
|
||||||
|
inline bool get_pitot_heat() const { return pitot_heat; }
|
||||||
|
inline int get_wiper() const { return wiper; }
|
||||||
|
inline bool get_window_heat() const { return window_heat; }
|
||||||
|
|
||||||
|
// controls/anti-ice/engine[n]/
|
||||||
|
inline bool get_carb_heat(int engine) const { return carb_heat[engine]; }
|
||||||
|
inline bool get_inlet_heat(int engine) const { return inlet_heat[engine]; }
|
||||||
|
|
||||||
|
// controls/hydraulic/system[n]/
|
||||||
|
inline bool get_engine_pump(int system) const { return engine_pump[system]; }
|
||||||
|
inline bool get_electric_pump(int system) const { return electric_pump[system]; }
|
||||||
|
|
||||||
|
// controls/electric/
|
||||||
|
inline bool get_battery_switch() const { return battery_switch; }
|
||||||
|
inline bool get_external_power() const { return external_power; }
|
||||||
|
inline bool get_APU_generator() const { return APU_generator; }
|
||||||
|
|
||||||
|
// controls/electric/engine[n]/
|
||||||
|
inline bool get_generator_breaker(int engine) const {
|
||||||
|
return generator_breaker[engine];
|
||||||
|
}
|
||||||
|
inline bool get_bus_tie(int engine) const { return bus_tie[engine]; }
|
||||||
|
|
||||||
|
// controls/pneumatic/
|
||||||
|
inline bool get_APU_bleed() const { return APU_bleed; }
|
||||||
|
|
||||||
|
// controls/pneumatic/engine[n]/
|
||||||
|
inline bool get_engine_bleed(int engine) const { return engine_bleed[engine]; }
|
||||||
|
|
||||||
|
// controls/pressurization/
|
||||||
|
inline int get_mode() const { return mode; }
|
||||||
|
inline double get_outflow_valve() const { return outflow_valve; }
|
||||||
|
inline bool get_dump() const { return dump; }
|
||||||
|
|
||||||
|
// controls/pressurization/pack[n]/
|
||||||
|
inline bool get_pack_on(int pack) const { return pack_on[pack]; }
|
||||||
|
|
||||||
|
// controls/lighting/
|
||||||
|
inline bool get_landing_lights() const { return landing_lights; }
|
||||||
|
inline bool get_turn_off_lights() const { return turn_off_lights; }
|
||||||
|
inline bool get_taxi_light() const { return taxi_light; }
|
||||||
|
inline bool get_logo_lights() const { return logo_lights; }
|
||||||
|
inline bool get_nav_lights() const { return nav_lights; }
|
||||||
|
inline bool get_beacon() const { return beacon; }
|
||||||
|
inline bool get_strobe() const { return strobe; }
|
||||||
|
inline double get_panel_norm() const { return panel_norm; }
|
||||||
|
inline double get_instruments_norm() const { return instruments_norm; }
|
||||||
|
inline double get_dome_norm() const { return dome_norm; }
|
||||||
|
|
||||||
|
#ifdef FG_HAVE_ARMAMENT
|
||||||
|
// controls/armament/
|
||||||
|
inline bool get_master_arm() const { return master_arm; }
|
||||||
|
inline int get_station_select() const { return station_select; }
|
||||||
|
inline bool get_release_ALL() const { return release_ALL; }
|
||||||
|
|
||||||
|
// controls/armament/station[n]/
|
||||||
|
inline int get_stick_size(int station) const { return stick_size[station]; }
|
||||||
|
inline bool get_release_stick(int station) const { return release_stick[station]; }
|
||||||
|
inline bool get_release_all(int station) const { return release_all[station]; }
|
||||||
|
inline bool get_jettison_all(int station) const { return jettison_all[station]; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// controls/seat/
|
||||||
|
inline double get_vertical_adjust() const { return vertical_adjust; }
|
||||||
|
inline double get_fore_aft_adjust() const { return fore_aft_adjust; }
|
||||||
|
inline bool get_eject() const { return eject; }
|
||||||
|
|
||||||
|
// controls/APU/
|
||||||
|
inline int get_off_start_run() const { return off_start_run; }
|
||||||
|
inline bool get_APU_fire_switch() const { return APU_fire_switch; }
|
||||||
|
|
||||||
|
// controls/autoflight/
|
||||||
|
inline bool get_autothrottle_arm() const { return autothrottle_arm; }
|
||||||
|
inline bool get_autothrottle_engage() const { return autothrottle_engage; }
|
||||||
|
inline double get_heading_select() const { return heading_select; }
|
||||||
|
inline double get_altitude_select() const { return altitude_select; }
|
||||||
|
inline double get_bank_angle_select() const { return bank_angle_select; }
|
||||||
|
inline double get_vertical_speed_select() const {
|
||||||
|
return vertical_speed_select;
|
||||||
|
}
|
||||||
|
inline double get_speed_select() const { return speed_select; }
|
||||||
|
inline double get_mach_select() const { return mach_select; }
|
||||||
|
inline int get_vertical_mode() const { return vertical_mode; }
|
||||||
|
inline int get_lateral_mode() const { return lateral_mode; }
|
||||||
|
|
||||||
|
// controls/autoflight/autopilot[n]/
|
||||||
|
inline bool get_autopilot_engage(int ap) const {
|
||||||
|
return autopilot_engage[ap];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Update functions
|
// Update functions
|
||||||
|
// controls/flight/
|
||||||
void set_aileron( double pos );
|
void set_aileron( double pos );
|
||||||
void move_aileron( double amt );
|
void move_aileron( double amt );
|
||||||
void set_aileron_trim( double pos );
|
void set_aileron_trim( double pos );
|
||||||
|
@ -135,23 +436,168 @@ public:
|
||||||
void move_rudder_trim( double amt );
|
void move_rudder_trim( double amt );
|
||||||
void set_flaps( double pos );
|
void set_flaps( double pos );
|
||||||
void move_flaps( double amt );
|
void move_flaps( double amt );
|
||||||
|
void set_slats( double pos );
|
||||||
|
void move_slats( double amt );
|
||||||
|
void set_BLC( bool val );
|
||||||
|
void set_spoilers( double pos );
|
||||||
|
void move_spoilers( double amt );
|
||||||
|
void set_speedbrake( double pos );
|
||||||
|
void move_speedbrake( double amt );
|
||||||
|
void set_wing_sweep( double pos );
|
||||||
|
void move_wing_sweep( double amt );
|
||||||
|
void set_wing_fold( bool val );
|
||||||
|
void set_drag_chute( bool val );
|
||||||
|
|
||||||
|
// controls/engines/
|
||||||
|
void set_throttle_idle( bool val );
|
||||||
|
|
||||||
|
// controls/engines/engine[n]/
|
||||||
void set_throttle( int engine, double pos );
|
void set_throttle( int engine, double pos );
|
||||||
void move_throttle( int engine, double amt );
|
void move_throttle( int engine, double amt );
|
||||||
|
void set_starter( int engine, bool flag );
|
||||||
|
void set_fuel_pump( int engine, bool val );
|
||||||
|
void set_fire_switch( int engine, bool val );
|
||||||
|
void set_fire_bottle_discharge( int engine, bool val );
|
||||||
|
void set_cutoff( int engine, bool val );
|
||||||
void set_mixture( int engine, double pos );
|
void set_mixture( int engine, double pos );
|
||||||
void move_mixture( int engine, double amt );
|
void move_mixture( int engine, double amt );
|
||||||
void set_fuel_pump( int engine, bool val );
|
|
||||||
void set_prop_advance( int engine, double pos );
|
void set_prop_advance( int engine, double pos );
|
||||||
void move_prop_advance( int engine, double amt );
|
void move_prop_advance( int engine, double amt );
|
||||||
void set_magnetos( int engine, int pos );
|
void set_magnetos( int engine, int pos );
|
||||||
void move_magnetos( int engine, int amt );
|
void move_magnetos( int engine, int amt );
|
||||||
void set_starter( int engine, bool flag );
|
void set_nitrous_injection( int engine, bool val );
|
||||||
|
void set_cowl_flaps_norm( int engine, double pos );
|
||||||
|
void move_cowl_flaps_norm( int engine, double amt );
|
||||||
|
void set_feather( int engine, bool val );
|
||||||
|
void set_ignition( int engine, int val );
|
||||||
|
void set_augmentation( int engine, bool val );
|
||||||
|
void set_reverser( int engine, bool val );
|
||||||
|
void set_water_injection( int engine, bool val );
|
||||||
|
void set_condition( int engine, int val );
|
||||||
|
|
||||||
|
// controls/fuel
|
||||||
|
void set_dump_valve( bool val );
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/
|
||||||
void set_fuel_selector( int tank, bool pos );
|
void set_fuel_selector( int tank, bool pos );
|
||||||
|
void set_to_engine( int tank, int engine );
|
||||||
|
void set_to_tank( int tank, int dest_tank );
|
||||||
|
|
||||||
|
// controls/fuel/tank[n]/pump[p]
|
||||||
|
void set_boost_pump( int index, bool val );
|
||||||
|
|
||||||
|
// controls/gear/
|
||||||
void set_parking_brake( double pos );
|
void set_parking_brake( double pos );
|
||||||
void set_speed_brake( double pos );
|
void set_steering( double pos );
|
||||||
void set_spoilers( double pos );
|
void move_steering( double amt );
|
||||||
|
void set_gear_down( bool gear );
|
||||||
|
void set_antiskid( bool val );
|
||||||
|
void set_tailhook( bool val );
|
||||||
|
void set_tailwheel_lock( bool val );
|
||||||
|
|
||||||
|
// controls/gear/wheel[n]/
|
||||||
void set_brake( int wheel, double pos );
|
void set_brake( int wheel, double pos );
|
||||||
void move_brake( int wheel, double amt );
|
void move_brake( int wheel, double amt );
|
||||||
void set_gear_down( bool gear );
|
void set_alternate_extension( int wheel, bool val );
|
||||||
|
|
||||||
|
// controls/anti-ice/
|
||||||
|
void set_wing_heat( bool val );
|
||||||
|
void set_pitot_heat( bool val );
|
||||||
|
void set_wiper( int speed );
|
||||||
|
void set_window_heat( bool val );
|
||||||
|
|
||||||
|
// controls/anti-ice/engine[n]/
|
||||||
|
void set_carb_heat( int engine, bool val );
|
||||||
|
void set_inlet_heat( int engine, bool val );
|
||||||
|
|
||||||
|
// controls/hydraulic/system[n]/
|
||||||
|
void set_engine_pump( int system, bool val );
|
||||||
|
void set_electric_pump( int system, bool val );
|
||||||
|
|
||||||
|
// controls/electric/
|
||||||
|
void set_battery_switch( bool val );
|
||||||
|
void set_external_power( bool val );
|
||||||
|
void set_APU_generator( bool val );
|
||||||
|
|
||||||
|
// controls/electric/engine[n]/
|
||||||
|
void set_generator_breaker( int engine, bool val );
|
||||||
|
void set_bus_tie( int engine, bool val );
|
||||||
|
|
||||||
|
// controls/pneumatic/
|
||||||
|
void set_APU_bleed( bool val );
|
||||||
|
|
||||||
|
// controls/pneumatic/engine[n]/
|
||||||
|
void set_engine_bleed( int engine, bool val );
|
||||||
|
|
||||||
|
// controls/pressurization/
|
||||||
|
void set_mode( int mode );
|
||||||
|
void set_outflow_valve( double pos );
|
||||||
|
void move_outflow_valve( double amt );
|
||||||
|
void set_dump( bool val );
|
||||||
|
|
||||||
|
// controls/pressurization/pack[n]/
|
||||||
|
void set_pack_on( int pack, bool val );
|
||||||
|
|
||||||
|
// controls/lighting/
|
||||||
|
void set_landing_lights( bool val );
|
||||||
|
void set_turn_off_lights( bool val );
|
||||||
|
void set_taxi_light( bool val );
|
||||||
|
void set_logo_lights( bool val );
|
||||||
|
void set_nav_lights( bool val );
|
||||||
|
void set_beacon( bool val );
|
||||||
|
void set_strobe( bool val );
|
||||||
|
void set_panel_norm( double intensity );
|
||||||
|
void move_panel_norm( double amt );
|
||||||
|
void set_instruments_norm( double intensity );
|
||||||
|
void move_instruments_norm( double amt );
|
||||||
|
void set_dome_norm( double intensity );
|
||||||
|
void move_dome_norm( double amt );
|
||||||
|
|
||||||
|
#ifdef FG_HAVE_ARMAMENT
|
||||||
|
// controls/armament/
|
||||||
|
void set_master_arm( bool val );
|
||||||
|
void set_station_select( int station );
|
||||||
|
void set_release_ALL( bool val );
|
||||||
|
|
||||||
|
// controls/armament/station[n]/
|
||||||
|
void set_stick_size( int station, int size );
|
||||||
|
void set_release_stick( int station, bool val );
|
||||||
|
void set_release_all( int station, bool val );
|
||||||
|
void set_jettison_all( int station, bool val );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// controls/seat/
|
||||||
|
void set_vertical_adjust( double pos );
|
||||||
|
void move_vertical_adjust( double amt );
|
||||||
|
void set_fore_aft_adjust( double pos );
|
||||||
|
void move_fore_aft_adjust( double amt );
|
||||||
|
void set_eject( bool val );
|
||||||
|
|
||||||
|
// controls/APU/
|
||||||
|
void set_off_start_run( int pos );
|
||||||
|
void set_APU_fire_switch( bool val );
|
||||||
|
|
||||||
|
// controls/autoflight/
|
||||||
|
void set_autothrottle_arm( bool val );
|
||||||
|
void set_autothrottle_engage( bool val );
|
||||||
|
void set_heading_select( double heading );
|
||||||
|
void move_heading_select( double amt );
|
||||||
|
void set_altitude_select( double altitude );
|
||||||
|
void move_altitude_select( double amt );
|
||||||
|
void set_bank_angle_select( double angle );
|
||||||
|
void move_bank_angle_select( double amt );
|
||||||
|
void set_vertical_speed_select( double vs );
|
||||||
|
void move_vertical_speed_select( double amt );
|
||||||
|
void set_speed_select( double speed );
|
||||||
|
void move_speed_select( double amt );
|
||||||
|
void set_mach_select( double mach );
|
||||||
|
void move_mach_select( double amt );
|
||||||
|
void set_vertical_mode( int mode );
|
||||||
|
void set_lateral_mode( int mode );
|
||||||
|
|
||||||
|
// controls/autoflight/autopilot[n]/
|
||||||
|
void set_autopilot_engage( int ap, bool val );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,8 @@ FGEngine::FGEngine(FGFDMExec* exec)
|
||||||
Starter(false),
|
Starter(false),
|
||||||
FuelNeed(0.0), OxidizerNeed(0.0),
|
FuelNeed(0.0), OxidizerNeed(0.0),
|
||||||
Starved(false), Flameout(false), Running(false), Cranking(false),
|
Starved(false), Flameout(false), Running(false), Cranking(false),
|
||||||
|
Augmentation(false), Injection(false), Ignition(false),
|
||||||
|
Reversed(false), Cutoff(true), Nitrous(false),
|
||||||
PctPower(0.0),
|
PctPower(0.0),
|
||||||
EngineNumber(-1),
|
EngineNumber(-1),
|
||||||
TrimMode(false),
|
TrimMode(false),
|
||||||
|
|
|
@ -135,8 +135,10 @@ public:
|
||||||
virtual double GetNozzle(void) { return NozzlePosition; }
|
virtual double GetNozzle(void) { return NozzlePosition; }
|
||||||
virtual bool GetAugmentation(void) { return Augmentation; }
|
virtual bool GetAugmentation(void) { return Augmentation; }
|
||||||
virtual bool GetInjection(void) { return Injection; }
|
virtual bool GetInjection(void) { return Injection; }
|
||||||
virtual bool GetIgnition(void) { return Ignition; }
|
virtual int GetIgnition(void) { return Ignition; }
|
||||||
virtual bool GetReversed(void) { return Reversed; }
|
virtual bool GetReversed(void) { return Reversed; }
|
||||||
|
virtual bool GetCutoff(void) { return Cutoff; }
|
||||||
|
virtual bool GetNitrous(void) { return Nitrous; }
|
||||||
|
|
||||||
virtual double getFuelFlow_gph () const {
|
virtual double getFuelFlow_gph () const {
|
||||||
return FuelFlow_gph;
|
return FuelFlow_gph;
|
||||||
|
@ -162,15 +164,21 @@ public:
|
||||||
return FuelFlow_pph;
|
return FuelFlow_pph;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void SetStarved(bool tt) {Starved = tt;}
|
virtual void SetStarved(bool tt) { Starved = tt; }
|
||||||
virtual void SetStarved(void) {Starved = true;}
|
virtual void SetStarved(void) { Starved = true; }
|
||||||
|
|
||||||
virtual void SetRunning(bool bb) { Running=bb; }
|
virtual void SetRunning(bool bb) { Running=bb; }
|
||||||
virtual void SetName(string name) {Name = name;}
|
virtual void SetName(string name) { Name = name; }
|
||||||
virtual void AddFeedTank(int tkID);
|
virtual void AddFeedTank(int tkID);
|
||||||
|
|
||||||
virtual void SetMagnetos(int m) { Magnetos = m; }
|
virtual void SetMagnetos(int m) { Magnetos = m; }
|
||||||
virtual void SetStarter(bool s) { Starter = s;}
|
virtual void SetStarter(bool s) { Starter = s; }
|
||||||
|
virtual void SetAugmentation(bool a) { Augmentation = a; }
|
||||||
|
virtual void SetInjection(bool i) { Injection = i; }
|
||||||
|
virtual void SetIgnition(int ig) { Ignition = ig; }
|
||||||
|
virtual void SetReverse(bool r) { Reversed = r; }
|
||||||
|
virtual void SetCutoff(bool c) { Cutoff = c; }
|
||||||
|
virtual void SetNitrous(bool n) { Nitrous = n; }
|
||||||
|
|
||||||
/** Calculates the thrust of the engine, and other engine functions.
|
/** Calculates the thrust of the engine, and other engine functions.
|
||||||
@param PowerRequired this is the power required to run the thrusting device
|
@param PowerRequired this is the power required to run the thrusting device
|
||||||
|
@ -251,8 +259,10 @@ protected:
|
||||||
double NozzlePosition;
|
double NozzlePosition;
|
||||||
bool Augmentation;
|
bool Augmentation;
|
||||||
bool Injection;
|
bool Injection;
|
||||||
bool Ignition;
|
int Ignition;
|
||||||
bool Reversed;
|
bool Reversed;
|
||||||
|
bool Cutoff;
|
||||||
|
bool Nitrous;
|
||||||
|
|
||||||
FGFDMExec* FDMExec;
|
FGFDMExec* FDMExec;
|
||||||
FGState* State;
|
FGState* State;
|
||||||
|
|
|
@ -166,9 +166,9 @@ FGJSBsim::FGJSBsim( double dt )
|
||||||
right_aileron_pos_pct
|
right_aileron_pos_pct
|
||||||
=fgGetNode("/surface-positions/right-aileron-pos-norm",true);
|
=fgGetNode("/surface-positions/right-aileron-pos-norm",true);
|
||||||
rudder_pos_pct=fgGetNode("/surface-positions/rudder-pos-norm",true);
|
rudder_pos_pct=fgGetNode("/surface-positions/rudder-pos-norm",true);
|
||||||
speed_brake_pos_pct
|
speedbrake_pos_pct
|
||||||
=fgGetNode("/surface-positions/speed-brake-pos-norm",true);
|
=fgGetNode("/surface-positions/speedbrake-pos-norm",true);
|
||||||
spoiler_pos_pct=fgGetNode("/surface-positions/spoiler-pos-norm",true);
|
spoilers_pos_pct=fgGetNode("/surface-positions/spoilers-pos-norm",true);
|
||||||
|
|
||||||
|
|
||||||
elevator_pos_pct->setDoubleValue(0);
|
elevator_pos_pct->setDoubleValue(0);
|
||||||
|
@ -176,8 +176,8 @@ FGJSBsim::FGJSBsim( double dt )
|
||||||
right_aileron_pos_pct->setDoubleValue(0);
|
right_aileron_pos_pct->setDoubleValue(0);
|
||||||
rudder_pos_pct->setDoubleValue(0);
|
rudder_pos_pct->setDoubleValue(0);
|
||||||
flap_pos_pct->setDoubleValue(0);
|
flap_pos_pct->setDoubleValue(0);
|
||||||
speed_brake_pos_pct->setDoubleValue(0);
|
speedbrake_pos_pct->setDoubleValue(0);
|
||||||
spoiler_pos_pct->setDoubleValue(0);
|
spoilers_pos_pct->setDoubleValue(0);
|
||||||
|
|
||||||
temperature = fgGetNode("/environment/temperature-degc",true);
|
temperature = fgGetNode("/environment/temperature-degc",true);
|
||||||
pressure = fgGetNode("/environment/pressure-inhg",true);
|
pressure = fgGetNode("/environment/pressure-inhg",true);
|
||||||
|
@ -375,15 +375,15 @@ bool FGJSBsim::copy_to_JSBsim() {
|
||||||
FCS->SetDrCmd( -globals->get_controls()->get_rudder() );
|
FCS->SetDrCmd( -globals->get_controls()->get_rudder() );
|
||||||
FCS->SetYawTrimCmd( -globals->get_controls()->get_rudder_trim() );
|
FCS->SetYawTrimCmd( -globals->get_controls()->get_rudder_trim() );
|
||||||
FCS->SetDfCmd( globals->get_controls()->get_flaps() );
|
FCS->SetDfCmd( globals->get_controls()->get_flaps() );
|
||||||
FCS->SetDsbCmd( globals->get_controls()->get_speed_brake() );
|
FCS->SetDsbCmd( globals->get_controls()->get_speedbrake() );
|
||||||
FCS->SetDspCmd( globals->get_controls()->get_spoilers() );
|
FCS->SetDspCmd( globals->get_controls()->get_spoilers() );
|
||||||
|
|
||||||
// Parking brake sets minimum braking
|
// Parking brake sets minimum braking
|
||||||
// level for mains.
|
// level for mains.
|
||||||
double parking_brake = globals->get_controls()->get_parking_brake();
|
double parking_brake = globals->get_controls()->get_parking_brake();
|
||||||
FCS->SetLBrake(FMAX(globals->get_controls()->get_brake(0), parking_brake));
|
FCS->SetLBrake(FMAX(globals->get_controls()->get_brake(0), parking_brake));
|
||||||
FCS->SetRBrake(FMAX(globals->get_controls()->get_brake(1), parking_brake));
|
FCS->SetRBrake(FMAX(globals->get_controls()->get_brake(1), parking_brake));
|
||||||
FCS->SetCBrake( globals->get_controls()->get_brake( 2 ) );
|
FCS->SetCBrake( globals->get_controls()->get_brake(2) );
|
||||||
|
|
||||||
FCS->SetGearCmd( globals->get_controls()->get_gear_down());
|
FCS->SetGearCmd( globals->get_controls()->get_gear_down());
|
||||||
for (i = 0; i < Propulsion->GetNumEngines(); i++) {
|
for (i = 0; i < Propulsion->GetNumEngines(); i++) {
|
||||||
|
@ -395,6 +395,12 @@ bool FGJSBsim::copy_to_JSBsim() {
|
||||||
Propulsion->GetThruster(i)->SetRPM(node->getDoubleValue("rpm"));
|
Propulsion->GetThruster(i)->SetRPM(node->getDoubleValue("rpm"));
|
||||||
eng->SetMagnetos( globals->get_controls()->get_magnetos(i) );
|
eng->SetMagnetos( globals->get_controls()->get_magnetos(i) );
|
||||||
eng->SetStarter( globals->get_controls()->get_starter(i) );
|
eng->SetStarter( globals->get_controls()->get_starter(i) );
|
||||||
|
eng->SetAugmentation( globals->get_controls()->get_augmentation(i) );
|
||||||
|
eng->SetReverse( globals->get_controls()->get_reverser(i) );
|
||||||
|
eng->SetInjection( globals->get_controls()->get_water_injection(i) );
|
||||||
|
eng->SetIgnition( globals->get_controls()->get_ignition(i) );
|
||||||
|
eng->SetCutoff( globals->get_controls()->get_cutoff(i) );
|
||||||
|
eng->SetNitrous( globals->get_controls()->get_nitrous_injection(i) );
|
||||||
}
|
}
|
||||||
|
|
||||||
_set_Runway_altitude( cur_fdm_state->get_Runway_altitude() );
|
_set_Runway_altitude( cur_fdm_state->get_Runway_altitude() );
|
||||||
|
@ -543,8 +549,21 @@ bool FGJSBsim::copy_from_JSBsim() {
|
||||||
node->setDoubleValue("cht-degf", eng->getCylinderHeadTemp_degF());
|
node->setDoubleValue("cht-degf", eng->getCylinderHeadTemp_degF());
|
||||||
node->setDoubleValue("oil-temperature-degf", eng->getOilTemp_degF());
|
node->setDoubleValue("oil-temperature-degf", eng->getOilTemp_degF());
|
||||||
node->setDoubleValue("oil-pressure-psi", eng->getOilPressure_psi());
|
node->setDoubleValue("oil-pressure-psi", eng->getOilPressure_psi());
|
||||||
|
node->setDoubleValue("thrust_lb", eng->GetThrust());
|
||||||
|
node->setDoubleValue("N1", eng->GetN1());
|
||||||
|
node->setDoubleValue("N2", eng->GetN2());
|
||||||
|
node->setDoubleValue("EGT_degC", eng->GetEGT());
|
||||||
|
node->setDoubleValue("fuel-flow_pph", eng->getFuelFlow_pph());
|
||||||
|
node->setDoubleValue("nozzle-pos-norm", eng->GetNozzle());
|
||||||
|
node->setDoubleValue("inlet-pos-norm", eng->GetInlet());
|
||||||
node->setBoolValue("running", eng->GetRunning());
|
node->setBoolValue("running", eng->GetRunning());
|
||||||
node->setBoolValue("cranking", eng->GetCranking());
|
node->setBoolValue("cranking", eng->GetCranking());
|
||||||
|
node->setBoolValue("ignition", eng->GetIgnition());
|
||||||
|
node->setBoolValue("augmentation", eng->GetAugmentation());
|
||||||
|
node->setBoolValue("water-injection", eng->GetInjection());
|
||||||
|
node->setBoolValue("reversed", eng->GetReversed());
|
||||||
|
node->setBoolValue("cutoff", eng->GetCutoff());
|
||||||
|
node->setBoolValue("nitrous", eng->GetNitrous());
|
||||||
}
|
}
|
||||||
|
|
||||||
static const SGPropertyNode *fuel_freeze
|
static const SGPropertyNode *fuel_freeze
|
||||||
|
@ -558,7 +577,8 @@ bool FGJSBsim::copy_from_JSBsim() {
|
||||||
= fgGetNode("/consumables/fuel/tank", i, true);
|
= fgGetNode("/consumables/fuel/tank", i, true);
|
||||||
double contents = Propulsion->GetTank(i)->GetContents();
|
double contents = Propulsion->GetTank(i)->GetContents();
|
||||||
node->setDoubleValue("level-gal_us", contents/6.6);
|
node->setDoubleValue("level-gal_us", contents/6.6);
|
||||||
// node->setDoubleValue("level-lb", contents);
|
node->setDoubleValue("level-lb", contents);
|
||||||
|
// node->setDoubleValue("temperature_degC",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,8 +598,8 @@ bool FGJSBsim::copy_from_JSBsim() {
|
||||||
right_aileron_pos_pct->setDoubleValue( -1*FCS->GetDaLPos(ofNorm) );
|
right_aileron_pos_pct->setDoubleValue( -1*FCS->GetDaLPos(ofNorm) );
|
||||||
rudder_pos_pct->setDoubleValue( -1*FCS->GetDrPos(ofNorm) );
|
rudder_pos_pct->setDoubleValue( -1*FCS->GetDrPos(ofNorm) );
|
||||||
flap_pos_pct->setDoubleValue( FCS->GetDfPos(ofNorm) );
|
flap_pos_pct->setDoubleValue( FCS->GetDfPos(ofNorm) );
|
||||||
speed_brake_pos_pct->setDoubleValue( FCS->GetDsbPos(ofNorm) );
|
speedbrake_pos_pct->setDoubleValue( FCS->GetDsbPos(ofNorm) );
|
||||||
spoiler_pos_pct->setDoubleValue( FCS->GetDspPos(ofNorm) );
|
spoilers_pos_pct->setDoubleValue( FCS->GetDspPos(ofNorm) );
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -257,8 +257,8 @@ private:
|
||||||
SGPropertyNode *right_aileron_pos_pct;
|
SGPropertyNode *right_aileron_pos_pct;
|
||||||
SGPropertyNode *rudder_pos_pct;
|
SGPropertyNode *rudder_pos_pct;
|
||||||
SGPropertyNode *flap_pos_pct;
|
SGPropertyNode *flap_pos_pct;
|
||||||
SGPropertyNode *speed_brake_pos_pct;
|
SGPropertyNode *speedbrake_pos_pct;
|
||||||
SGPropertyNode *spoiler_pos_pct;
|
SGPropertyNode *spoilers_pos_pct;
|
||||||
|
|
||||||
SGPropertyNode *gear_pos_pct;
|
SGPropertyNode *gear_pos_pct;
|
||||||
|
|
||||||
|
|
|
@ -113,19 +113,19 @@ void FGLaRCsim::update( double dt ) {
|
||||||
|
|
||||||
// Fake control-surface positions
|
// Fake control-surface positions
|
||||||
fgSetDouble("/surface-positions/flap-pos-norm",
|
fgSetDouble("/surface-positions/flap-pos-norm",
|
||||||
fgGetDouble("/controls/flaps"));
|
fgGetDouble("/controls/flight/flaps"));
|
||||||
// FIXME: ignoring trim
|
// FIXME: ignoring trim
|
||||||
fgSetDouble("/surface-positions/elevator-pos-norm",
|
fgSetDouble("/surface-positions/elevator-pos-norm",
|
||||||
fgGetDouble("/controls/elevator"));
|
fgGetDouble("/controls/flight/elevator"));
|
||||||
// FIXME: ignoring trim
|
// FIXME: ignoring trim
|
||||||
fgSetDouble("/surface-positions/left-aileron-pos-norm",
|
fgSetDouble("/surface-positions/left-aileron-pos-norm",
|
||||||
fgGetDouble("/controls/aileron"));
|
fgGetDouble("/controls/flight/aileron"));
|
||||||
// FIXME: ignoring trim
|
// FIXME: ignoring trim
|
||||||
fgSetDouble("/surface-positions/right-aileron-pos-norm",
|
fgSetDouble("/surface-positions/right-aileron-pos-norm",
|
||||||
-1 * fgGetDouble("/controls/aileron"));
|
-1 * fgGetDouble("/controls/flight/aileron"));
|
||||||
// FIXME: ignoring trim
|
// FIXME: ignoring trim
|
||||||
fgSetDouble("/surface-positions/rudder-pos-norm",
|
fgSetDouble("/surface-positions/rudder-pos-norm",
|
||||||
fgGetDouble("/controls/rudder"));
|
fgGetDouble("/controls/flight/rudder"));
|
||||||
|
|
||||||
// copy engine state values onto "bus"
|
// copy engine state values onto "bus"
|
||||||
fgSetDouble("/engines/engine/rpm", eng.get_RPM());
|
fgSetDouble("/engines/engine/rpm", eng.get_RPM());
|
||||||
|
|
|
@ -48,7 +48,7 @@ void YASim::printDEBUG()
|
||||||
// fgGetFloat("/engines/engine[0]/epr"),
|
// fgGetFloat("/engines/engine[0]/epr"),
|
||||||
// fgGetFloat("/engines/engine[0]/egt"));
|
// fgGetFloat("/engines/engine[0]/egt"));
|
||||||
|
|
||||||
// printf("gear: %f\n", fgGetFloat("/controls/gear-down"));
|
// printf("gear: %f\n", fgGetFloat("/controls/gear/gear-down"));
|
||||||
|
|
||||||
// printf("alpha %5.1f beta %5.1f\n", get_Alpha()*57.3, get_Beta()*57.3);
|
// printf("alpha %5.1f beta %5.1f\n", get_Alpha()*57.3, get_Beta()*57.3);
|
||||||
|
|
||||||
|
@ -170,20 +170,20 @@ void YASim::init()
|
||||||
// for(i=0; i<m->numThrusters(); i++) {
|
// for(i=0; i<m->numThrusters(); i++) {
|
||||||
// // Sanify the initial input conditions
|
// // Sanify the initial input conditions
|
||||||
// char buf[64];
|
// char buf[64];
|
||||||
// sprintf(buf, "/controls/throttle[%d]", i); fgSetFloat(buf, 0);
|
// sprintf(buf, "/controls/engines/engine[%d]/throttle", i); fgSetFloat(buf, 0);
|
||||||
// sprintf(buf, "/controls/mixture[%d]", i); fgSetFloat(buf, 1);
|
// sprintf(buf, "/controls/engines/engine[%d]/mixture", i); fgSetFloat(buf, 1);
|
||||||
// sprintf(buf, "/controls/propeller-pitch[%d]", i); fgSetFloat(buf, 1);
|
// sprintf(buf, "/controls/engines/engine[%d]/propeller-pitch", i); fgSetFloat(buf, 1);
|
||||||
// sprintf(buf, "/controls/afterburner[%d]", i); fgSetFloat(buf, 0);
|
// sprintf(buf, "/controls/engines/engine[%d]/augmentation", i); fgSetFloat(buf, 0);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// fgSetFloat("/controls/slats", 0);
|
// fgSetFloat("/controls/flight/slats", 0);
|
||||||
// fgSetFloat("/controls/spoilers", 0);
|
// fgSetFloat("/controls/flight/spoilers", 0);
|
||||||
|
|
||||||
// Are we at ground level? If so, lift the plane up so the gear
|
// Are we at ground level? If so, lift the plane up so the gear
|
||||||
// clear the ground.
|
// clear the ground.
|
||||||
double runway_altitude = get_Runway_altitude();
|
double runway_altitude = get_Runway_altitude();
|
||||||
if(get_Altitude() - runway_altitude < 50) {
|
if(get_Altitude() - runway_altitude < 50) {
|
||||||
fgSetBool("/controls/gear-down", false);
|
fgSetBool("/controls/gear/gear-down", false);
|
||||||
float minGearZ = 1e18;
|
float minGearZ = 1e18;
|
||||||
for(i=0; i<a->numGear(); i++) {
|
for(i=0; i<a->numGear(); i++) {
|
||||||
Gear* g = a->getGear(i);
|
Gear* g = a->getGear(i);
|
||||||
|
@ -193,7 +193,7 @@ void YASim::init()
|
||||||
minGearZ = pos[2];
|
minGearZ = pos[2];
|
||||||
}
|
}
|
||||||
_set_Altitude(runway_altitude - minGearZ*M2FT);
|
_set_Altitude(runway_altitude - minGearZ*M2FT);
|
||||||
fgSetBool("/controls/gear-down", true);
|
fgSetBool("/controls/gear/gear-down", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The pilot's eyepoint
|
// The pilot's eyepoint
|
||||||
|
|
|
@ -39,9 +39,9 @@ string axes_humannames[8] = { "elevator", "ailerons", "rudder", "throttle",
|
||||||
"longitudinal view"
|
"longitudinal view"
|
||||||
};
|
};
|
||||||
|
|
||||||
string axes_propnames[8]={ "/controls/elevator","/controls/aileron",
|
string axes_propnames[8]={ "/controls/flight/elevator","/controls/flight/aileron",
|
||||||
"/controls/rudder","/controls/throttle",
|
"/controls/flight/rudder","/controls/engines/engine/throttle",
|
||||||
"/controls/mixture","/controls/pitch",
|
"/controls/engines/engine/mixture","/controls/engines/engine/pitch",
|
||||||
"/sim/views/axes/lat","/sim/views/axes/long"
|
"/sim/views/axes/lat","/sim/views/axes/long"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,10 +54,10 @@ string button_humannames[7]= { "apply all brakes", "apply left brake",
|
||||||
"apply nose-down trim"
|
"apply nose-down trim"
|
||||||
};
|
};
|
||||||
|
|
||||||
string button_propnames[7]={ "/controls/brakes/all", "/controls/brakes[0]",
|
string button_propnames[7]={ "/controls/gear/wheel[-1]/brake", "/controls/gear/wheel[0]/brake",
|
||||||
"/controls/brakes[1]", "/controls/flaps",
|
"/controls/gear/wheel[1]/brake", "/controls/flight/flaps",
|
||||||
"/controls/flaps","/controls/elevator-trim",
|
"/controls/flight/flaps","/controls/flight/elevator-trim",
|
||||||
"/controls/elevator-trim"
|
"/controls/flight/elevator-trim"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -100,56 +100,65 @@ static void htond (double &x)
|
||||||
// Populate the FGNetCtrls structure from the property tree.
|
// Populate the FGNetCtrls structure from the property tree.
|
||||||
void FGProps2NetCtrls( FGNetCtrls *net, bool net_byte_order ) {
|
void FGProps2NetCtrls( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
int i;
|
int i;
|
||||||
|
bool b;
|
||||||
SGPropertyNode * node = fgGetNode("/controls", true);
|
SGPropertyNode * node;
|
||||||
|
SGPropertyNode * tempnode;
|
||||||
|
|
||||||
// fill in values
|
// fill in values
|
||||||
|
node = fgGetNode("/controls/flight", true);
|
||||||
net->version = FG_NET_CTRLS_VERSION;
|
net->version = FG_NET_CTRLS_VERSION;
|
||||||
net->aileron = node->getDoubleValue( "aileron" );
|
net->aileron = node->getDoubleValue( "aileron" );
|
||||||
net->elevator = node->getDoubleValue( "elevator" );
|
net->elevator = node->getDoubleValue( "elevator" );
|
||||||
net->elevator_trim = node->getDoubleValue( "elevator-trim" );
|
net->elevator_trim = node->getDoubleValue( "elevator-trim" );
|
||||||
net->rudder = node->getDoubleValue( "rudder" );
|
net->rudder = node->getDoubleValue( "rudder" );
|
||||||
net->flaps = node->getDoubleValue( "flaps" );
|
net->flaps = node->getDoubleValue( "flaps" );
|
||||||
|
node = fgGetNode("/controls", true);
|
||||||
net->flaps_power
|
net->flaps_power
|
||||||
= node->getDoubleValue( "/systems/electrical/outputs/flaps",
|
= node->getDoubleValue( "/systems/electrical/outputs/flaps",
|
||||||
1.0 ) >= 1.0;
|
1.0 ) >= 1.0;
|
||||||
net->num_engines = FGNetCtrls::FG_MAX_ENGINES;
|
net->num_engines = FGNetCtrls::FG_MAX_ENGINES;
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
|
||||||
|
node = fgGetNode("/controls/engines/engine", i );
|
||||||
net->throttle[i] = node->getDoubleValue( "throttle", 0.0 );
|
net->throttle[i] = node->getDoubleValue( "throttle", 0.0 );
|
||||||
net->mixture[i] = node->getDoubleValue( "mixture", 0.0 );
|
net->mixture[i] = node->getDoubleValue( "mixture", 0.0 );
|
||||||
net->fuel_pump_power[i]
|
|
||||||
= node->getDoubleValue( "/systems/electrical/outputs/fuel-pump",
|
|
||||||
1.0 ) >= 1.0;
|
|
||||||
net->prop_advance[i] = node->getDoubleValue( "propeller-pitch", 0.0 );
|
net->prop_advance[i] = node->getDoubleValue( "propeller-pitch", 0.0 );
|
||||||
net->magnetos[i] = node->getIntValue( "magnetos", 0 );
|
net->magnetos[i] = node->getIntValue( "magnetos", 0 );
|
||||||
if ( i == 0 ) {
|
if ( i == 0 ) {
|
||||||
// cout << "Magnetos -> " << node->getIntValue( "magnetos", 0 );
|
// cout << "Magnetos -> " << node->getIntValue( "magnetos", 0 );
|
||||||
}
|
}
|
||||||
|
if ( i == 0 ) {
|
||||||
|
// cout << "Starter -> " << node->getIntValue( "starter", false )
|
||||||
|
// << endl;
|
||||||
|
}
|
||||||
|
node = fgGetNode("/controls", true);
|
||||||
|
net->fuel_pump_power[i]
|
||||||
|
= node->getDoubleValue( "/systems/electrical/outputs/fuel-pump",
|
||||||
|
1.0 ) >= 1.0;
|
||||||
|
|
||||||
net->starter_power[i]
|
net->starter_power[i]
|
||||||
= node->getDoubleValue( "/systems/electrical/outputs/starter",
|
= node->getDoubleValue( "/systems/electrical/outputs/starter",
|
||||||
1.0 ) >= 1.0;
|
1.0 ) >= 1.0;
|
||||||
if ( i == 0 ) {
|
|
||||||
// cout << " Starter -> " << node->getIntValue( "stater", false )
|
|
||||||
// << endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
net->num_tanks = FGNetCtrls::FG_MAX_TANKS;
|
net->num_tanks = FGNetCtrls::FG_MAX_TANKS;
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_TANKS; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_TANKS; ++i ) {
|
||||||
if ( node->getChild("fuel-selector", i) != 0 ) {
|
node = fgGetNode("/controls/fuel/tank", i);
|
||||||
|
if ( node->getChild("fuel-selector") != 0 ) {
|
||||||
net->fuel_selector[i]
|
net->fuel_selector[i]
|
||||||
= node->getChild("fuel-selector", i)->getDoubleValue();
|
= node->getChild("fuel-selector")->getBoolValue();
|
||||||
} else {
|
} else {
|
||||||
net->fuel_selector[i] = false;
|
net->fuel_selector[i] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
net->num_wheels = FGNetCtrls::FG_MAX_WHEELS;
|
net->num_wheels = FGNetCtrls::FG_MAX_WHEELS;
|
||||||
|
tempnode = fgGetNode("/controls/gear", true);
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_WHEELS; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_WHEELS; ++i ) {
|
||||||
if ( node->getChild("brakes", i) != 0 ) {
|
node = fgGetNode("/controls/gear/wheel", i);
|
||||||
if ( node->getChild("parking-brake")->getDoubleValue() > 0.0 ) {
|
if ( node->getChild("brake") != 0 ) {
|
||||||
|
if ( tempnode->getChild("parking-brake")->getDoubleValue() > 0.0 ) {
|
||||||
net->brake[i] = 1.0;
|
net->brake[i] = 1.0;
|
||||||
} else {
|
} else {
|
||||||
net->brake[i]
|
net->brake[i]
|
||||||
= node->getChild("brakes", i)->getDoubleValue();
|
= node->getChild("brake")->getDoubleValue();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
net->brake[i] = 0.0;
|
net->brake[i] = 0.0;
|
||||||
|
@ -227,7 +236,7 @@ void FGProps2NetCtrls( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
void FGNetCtrls2Props( FGNetCtrls *net, bool net_byte_order ) {
|
void FGNetCtrls2Props( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
SGPropertyNode * node = fgGetNode("/controls", true);
|
SGPropertyNode * node;
|
||||||
|
|
||||||
if ( net_byte_order ) {
|
if ( net_byte_order ) {
|
||||||
// convert from network byte order
|
// convert from network byte order
|
||||||
|
@ -274,7 +283,7 @@ void FGNetCtrls2Props( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
"FlightGear needs version = " << FG_NET_CTRLS_VERSION
|
"FlightGear needs version = " << FG_NET_CTRLS_VERSION
|
||||||
<< " but is receiving version = " << net->version );
|
<< " but is receiving version = " << net->version );
|
||||||
}
|
}
|
||||||
|
node = fgGetNode("/controls/flight", true);
|
||||||
node->setDoubleValue( "aileron", net->aileron );
|
node->setDoubleValue( "aileron", net->aileron );
|
||||||
node->setDoubleValue( "elevator", net->elevator );
|
node->setDoubleValue( "elevator", net->elevator );
|
||||||
node->setDoubleValue( "elevator-trim", net->elevator_trim );
|
node->setDoubleValue( "elevator-trim", net->elevator_trim );
|
||||||
|
@ -284,11 +293,12 @@ void FGNetCtrls2Props( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
fgSetBool( "/systems/electrical/outputs/flaps", net->flaps_power );
|
fgSetBool( "/systems/electrical/outputs/flaps", net->flaps_power );
|
||||||
|
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
|
||||||
node->getChild( "throttle", i )->setDoubleValue( net->throttle[i] );
|
node = fgGetNode("/controls/engines/engine", i);
|
||||||
node->getChild( "mixture", i )->setDoubleValue( net->mixture[i] );
|
node->getChild( "throttle" )->setDoubleValue( net->throttle[i] );
|
||||||
node->getChild( "propeller-pitch", i )
|
node->getChild( "mixture" )->setDoubleValue( net->mixture[i] );
|
||||||
|
node->getChild( "propeller-pitch" )
|
||||||
->setDoubleValue( net->prop_advance[i] );
|
->setDoubleValue( net->prop_advance[i] );
|
||||||
node->getChild( "magnetos", i )->setDoubleValue( net->magnetos[i] );
|
node->getChild( "magnetos" )->setDoubleValue( net->magnetos[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
fgSetBool( "/systems/electrical/outputs/fuel-pump",
|
fgSetBool( "/systems/electrical/outputs/fuel-pump",
|
||||||
|
@ -297,13 +307,16 @@ void FGNetCtrls2Props( FGNetCtrls *net, bool net_byte_order ) {
|
||||||
net->starter_power[0] );
|
net->starter_power[0] );
|
||||||
|
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_TANKS; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_TANKS; ++i ) {
|
||||||
node->getChild( "fuel-selector", i )
|
node = fgGetNode( "/controls/fuel/tank", i );
|
||||||
|
node->getChild( "fuel-selector" )
|
||||||
->setBoolValue( net->fuel_selector[i] );
|
->setBoolValue( net->fuel_selector[i] );
|
||||||
}
|
}
|
||||||
for ( i = 0; i < FGNetCtrls::FG_MAX_WHEELS; ++i ) {
|
for ( i = 0; i < FGNetCtrls::FG_MAX_WHEELS; ++i ) {
|
||||||
node->getChild( "brakes", i )->setDoubleValue( net->brake[i] );
|
node = fgGetNode( "/controls/gear/wheel", i );
|
||||||
|
node->getChild( "brake" )->setDoubleValue( net->brake[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
node = fgGetNode( "/controls/gear", true );
|
||||||
node->setBoolValue( "gear-down", net->gear_handle );
|
node->setBoolValue( "gear-down", net->gear_handle );
|
||||||
|
|
||||||
node = fgGetNode( "/controls/switches", true );
|
node = fgGetNode( "/controls/switches", true );
|
||||||
|
|
Loading…
Reference in a new issue