243
218
auto_coordination = fgGetNode("/sim/auto-coordination", true);
221
static inline void _SetRoot( simgear::TiedPropertyList & tiedProperties, const char * root, int index = 0 )
223
tiedProperties.setRoot( fgGetNode( root, index, true ) );
248
227
FGControls::bind ()
253
fgTie("/controls/flight/aileron", this,
254
&FGControls::get_aileron, &FGControls::set_aileron);
255
fgSetArchivable("/controls/flight/aileron");
257
fgTie("/controls/flight/aileron-trim", this,
258
&FGControls::get_aileron_trim, &FGControls::set_aileron_trim);
259
fgSetArchivable("/controls/flight/aileron-trim");
261
fgTie("/controls/flight/elevator", this,
262
&FGControls::get_elevator, &FGControls::set_elevator);
263
fgSetArchivable("/controls/flight/elevator");
265
fgTie("/controls/flight/elevator-trim", this,
266
&FGControls::get_elevator_trim, &FGControls::set_elevator_trim);
267
fgSetArchivable("/controls/flight/elevator-trim");
269
fgTie("/controls/flight/rudder", this,
270
&FGControls::get_rudder, &FGControls::set_rudder);
271
fgSetArchivable("/controls/flight/rudder");
273
fgTie("/controls/flight/rudder-trim", this,
274
&FGControls::get_rudder_trim, &FGControls::set_rudder_trim);
275
fgSetArchivable("/controls/flight/rudder-trim");
277
fgTie("/controls/flight/flaps", this,
278
&FGControls::get_flaps, &FGControls::set_flaps);
279
fgSetArchivable("/controls/flight/flaps");
281
fgTie("/controls/flight/slats", this,
282
&FGControls::get_slats, &FGControls::set_slats);
283
fgSetArchivable("/controls/flight/slats");
285
fgTie("/controls/flight/BLC", this,
286
&FGControls::get_BLC, &FGControls::set_BLC);
287
fgSetArchivable("/controls/flight/BLC");
289
fgTie("/controls/flight/spoilers", this,
290
&FGControls::get_spoilers, &FGControls::set_spoilers);
291
fgSetArchivable("/controls/flight/spoilers");
293
fgTie("/controls/flight/speedbrake", this,
294
&FGControls::get_speedbrake, &FGControls::set_speedbrake);
295
fgSetArchivable("/controls/flight/speedbrake");
297
fgTie("/controls/flight/wing-sweep", this,
298
&FGControls::get_wing_sweep, &FGControls::set_wing_sweep);
299
fgSetArchivable("/controls/flight/wing-sweep");
301
fgTie("/controls/flight/wing-fold", this,
302
&FGControls::get_wing_fold, &FGControls::set_wing_fold);
303
fgSetArchivable("/controls/flight/wing-fold");
305
fgTie("/controls/flight/drag-chute", this,
306
&FGControls::get_drag_chute, &FGControls::set_drag_chute);
307
fgSetArchivable("/controls/flight/drag-chute");
310
fgTie("/controls/engines/throttle_idle", this,
311
&FGControls::get_throttle_idle, &FGControls::set_throttle_idle);
312
fgSetArchivable("/controls/engines/throttle_idle");
314
for (index = 0; index < MAX_ENGINES; index++) {
315
char name[MAX_NAME_LEN];
316
snprintf(name, MAX_NAME_LEN,
317
"/controls/engines/engine[%d]/throttle", index);
318
fgTie(name, this, index,
319
&FGControls::get_throttle, &FGControls::set_throttle);
320
fgSetArchivable(name);
322
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/starter", index);
323
fgTie(name, this, index,
324
&FGControls::get_starter, &FGControls::set_starter);
325
fgSetArchivable(name);
327
snprintf(name, MAX_NAME_LEN,
328
"/controls/engines/engine[%d]/fuel-pump", index);
329
fgTie(name, this, index,
330
&FGControls::get_fuel_pump, &FGControls::set_fuel_pump);
331
fgSetArchivable(name);
333
snprintf(name, MAX_NAME_LEN,
334
"/controls/engines/engine[%d]/fire-switch", index);
335
fgTie(name, this, index,
336
&FGControls::get_fire_switch, &FGControls::set_fire_switch);
337
fgSetArchivable(name);
339
snprintf(name, MAX_NAME_LEN,
340
"/controls/engines/engine[%d]/fire-bottle-discharge", index);
341
fgTie(name, this, index,
342
&FGControls::get_fire_bottle_discharge,
343
&FGControls::set_fire_bottle_discharge);
344
fgSetArchivable(name);
346
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/cutoff", index);
347
fgTie(name, this, index,
348
&FGControls::get_cutoff, &FGControls::set_cutoff);
349
fgSetArchivable(name);
351
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/mixture", index);
352
fgTie(name, this, index,
353
&FGControls::get_mixture, &FGControls::set_mixture);
354
fgSetArchivable(name);
356
snprintf(name, MAX_NAME_LEN,
357
"/controls/engines/engine[%d]/propeller-pitch", index);
358
fgTie(name, this, index,
359
&FGControls::get_prop_advance,
360
&FGControls::set_prop_advance);
361
fgSetArchivable(name);
363
snprintf(name, MAX_NAME_LEN,
364
"/controls/engines/engine[%d]/magnetos", index);
365
fgTie(name, this, index,
366
&FGControls::get_magnetos, &FGControls::set_magnetos);
367
fgSetArchivable(name);
369
snprintf(name, MAX_NAME_LEN,
370
"/controls/engines/engine[%d]/feed_tank", index);
371
fgTie(name, this, index,
372
&FGControls::get_feed_tank, &FGControls::set_feed_tank);
373
fgSetArchivable(name);
376
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/WEP", index);
377
fgTie(name, this, index,
378
&FGControls::get_nitrous_injection,
379
&FGControls::set_nitrous_injection);
380
fgSetArchivable(name);
382
snprintf(name, MAX_NAME_LEN,
383
"/controls/engines/engine[%d]/cowl-flaps-norm", index);
384
fgTie(name, this, index,
385
&FGControls::get_cowl_flaps_norm,
386
&FGControls::set_cowl_flaps_norm);
387
fgSetArchivable(name);
389
snprintf(name, MAX_NAME_LEN,
390
"/controls/engines/engine[%d]/propeller-feather", index);
391
fgTie(name, this, index,
392
&FGControls::get_feather, &FGControls::set_feather);
393
fgSetArchivable(name);
395
snprintf(name, MAX_NAME_LEN,
396
"/controls/engines/engine[%d]/ignition", index);
397
fgTie(name, this, index,
398
&FGControls::get_ignition, &FGControls::set_ignition);
399
fgSetArchivable(name);
401
snprintf(name, MAX_NAME_LEN,
402
"/controls/engines/engine[%d]/augmentation", index);
403
fgTie(name, this, index,
404
&FGControls::get_augmentation,
405
&FGControls::set_augmentation);
406
fgSetArchivable(name);
408
snprintf(name, MAX_NAME_LEN,
409
"/controls/engines/engine[%d]/reverser", index);
410
fgTie(name, this, index,
411
&FGControls::get_reverser, &FGControls::set_reverser);
412
fgSetArchivable(name);
414
snprintf(name, MAX_NAME_LEN,
415
"/controls/engines/engine[%d]/water-injection", index);
416
fgTie(name, this, index,
417
&FGControls::get_water_injection,
418
&FGControls::set_water_injection);
419
fgSetArchivable(name);
421
snprintf(name, MAX_NAME_LEN,
422
"/controls/engines/engine[%d]/condition", index);
423
fgTie(name, this, index,
424
&FGControls::get_condition, &FGControls::set_condition);
425
fgSetArchivable(name);
429
fgTie("/controls/fuel/dump-valve", this,
430
&FGControls::get_dump_valve, &FGControls::set_dump_valve);
431
fgSetArchivable("/controls/fuel/dump-valve");
433
for (index = 0; index < MAX_TANKS; index++) {
434
char name[MAX_NAME_LEN];
435
snprintf(name, MAX_NAME_LEN,
436
"/controls/fuel/tank[%d]/fuel_selector", index);
437
fgTie(name, this, index,
438
&FGControls::get_fuel_selector,
439
&FGControls::set_fuel_selector);
440
fgSetArchivable(name);
442
snprintf(name, MAX_NAME_LEN, "/controls/fuel/tank[%d]/to_engine", index);
443
fgTie(name, this, index,
444
&FGControls::get_to_engine, &FGControls::set_to_engine);
445
fgSetArchivable(name);
447
snprintf(name, MAX_NAME_LEN, "/controls/fuel/tank[%d]/to_tank", index);
448
fgTie(name, this, index,
449
&FGControls::get_to_tank, &FGControls::set_to_tank);
450
fgSetArchivable(name);
452
for (i = 0; i < MAX_BOOSTPUMPS; i++) {
453
char name[MAX_NAME_LEN];
454
snprintf(name, MAX_NAME_LEN,
455
"/controls/fuel/tank[%d]/boost-pump[%d]", index, i);
456
fgTie(name, this, index * 2 + i,
457
&FGControls::get_boost_pump,
458
&FGControls::set_boost_pump);
459
fgSetArchivable(name);
464
fgTie("/controls/gear/brake-left", this,
465
&FGControls::get_brake_left,
466
&FGControls::set_brake_left);
467
fgSetArchivable("/controls/gear/brake-left");
469
fgTie("/controls/gear/brake-right", this,
470
&FGControls::get_brake_right,
471
&FGControls::set_brake_right);
472
fgSetArchivable("/controls/gear/brake-right");
474
fgTie("/controls/gear/copilot-brake-left", this,
475
&FGControls::get_copilot_brake_left,
476
&FGControls::set_copilot_brake_left);
477
fgSetArchivable("/controls/gear/copilot-brake-left");
479
fgTie("/controls/gear/copilot-brake-right", this,
480
&FGControls::get_copilot_brake_right,
481
&FGControls::set_copilot_brake_right);
482
fgSetArchivable("/controls/gear/copilot-brake-right");
484
fgTie("/controls/gear/brake-parking", this,
485
&FGControls::get_brake_parking,
486
&FGControls::set_brake_parking);
487
fgSetArchivable("/controls/gear/brake-parking");
489
fgTie("/controls/gear/steering", this,
490
&FGControls::get_steering, &FGControls::set_steering);
491
fgSetArchivable("/controls/gear/steering");
493
fgTie("/controls/gear/nose-wheel-steering", this,
494
&FGControls::get_nose_wheel_steering,
495
&FGControls::set_nose_wheel_steering);
496
fgSetArchivable("/controls/gear/nose-wheel-steering");
498
fgTie("/controls/gear/gear-down", this,
499
&FGControls::get_gear_down, &FGControls::set_gear_down);
500
fgSetArchivable("/controls/gear/gear-down");
502
fgTie("/controls/gear/antiskid", this,
503
&FGControls::get_antiskid, &FGControls::set_antiskid);
504
fgSetArchivable("/controls/gear/antiskid");
506
fgTie("/controls/gear/tailhook", this,
507
&FGControls::get_tailhook, &FGControls::set_tailhook);
508
fgSetArchivable("/controls/gear/tailhook");
510
fgTie("/controls/gear/launchbar", this,
511
&FGControls::get_launchbar, &FGControls::set_launchbar);
512
fgSetArchivable("/controls/gear/launchbar");
514
fgTie("/controls/gear/catapult-launch-cmd", this,
515
&FGControls::get_catapult_launch_cmd, &FGControls::set_catapult_launch_cmd);
516
fgSetArchivable("/controls/gear/catapult-launch-cmd");
518
fgTie("/controls/gear/tailwheel-lock", this,
519
&FGControls::get_tailwheel_lock,
520
&FGControls::set_tailwheel_lock);
521
fgSetArchivable("/controls/gear/tailwheel-lock");
523
for (index = 0; index < MAX_WHEELS; index++) {
524
char name[MAX_NAME_LEN];
525
snprintf(name, MAX_NAME_LEN,
526
"/controls/gear/wheel[%d]/alternate-extension", index);
527
fgTie(name, this, index,
528
&FGControls::get_alternate_extension,
529
&FGControls::set_alternate_extension);
530
fgSetArchivable(name);
534
fgTie("/controls/anti-ice/wing-heat", this,
535
&FGControls::get_wing_heat, &FGControls::set_wing_heat);
536
fgSetArchivable("/controls/anti-ice/wing-heat");
538
fgTie("/controls/anti-ice/pitot-heat", this,
539
&FGControls::get_pitot_heat, &FGControls::set_pitot_heat);
540
fgSetArchivable("/controls/anti-ice/pitot-heat");
542
fgTie("/controls/anti-ice/wiper", this,
543
&FGControls::get_wiper, &FGControls::set_wiper);
544
fgSetArchivable("/controls/anti-ice/wiper");
546
fgTie("/controls/anti-ice/window-heat", this,
547
&FGControls::get_window_heat, &FGControls::set_window_heat);
548
fgSetArchivable("/controls/anti-ice/window-heat");
550
for (index = 0; index < MAX_ENGINES; index++) {
551
char name[MAX_NAME_LEN];
552
snprintf(name, MAX_NAME_LEN,
553
"/controls/anti-ice/engine[%d]/carb-heat", index);
554
fgTie(name, this, index,
555
&FGControls::get_carb_heat, &FGControls::set_carb_heat);
556
fgSetArchivable(name);
558
snprintf(name, MAX_NAME_LEN,
559
"/controls/anti-ice/engine[%d]/inlet-heat", index);
560
fgTie(name, this, index,
561
&FGControls::get_inlet_heat, &FGControls::set_inlet_heat);
562
fgSetArchivable(name);
566
for (index = 0; index < MAX_HYD_SYSTEMS; index++) {
567
char name[MAX_NAME_LEN];
568
snprintf(name, MAX_NAME_LEN,
569
"/controls/hydraulic/system[%d]/engine-pump", index);
570
fgTie(name, this, index,
571
&FGControls::get_engine_pump, &FGControls::set_engine_pump);
572
fgSetArchivable(name);
574
snprintf(name, MAX_NAME_LEN,
575
"/controls/hydraulic/system[%d]/electric-pump", index);
576
fgTie(name, this, index,
577
&FGControls::get_electric_pump,
578
&FGControls::set_electric_pump);
579
fgSetArchivable(name);
583
fgTie("/controls/electric/battery-switch", this,
584
&FGControls::get_battery_switch,
585
&FGControls::set_battery_switch);
586
fgSetArchivable("/controls/electric/battery-switch");
588
fgTie("/controls/electric/external-power", this,
589
&FGControls::get_external_power,
590
&FGControls::set_external_power);
591
fgSetArchivable("/controls/electric/external-power");
593
fgTie("/controls/electric/APU-generator", this,
594
&FGControls::get_APU_generator,
595
&FGControls::set_APU_generator);
596
fgSetArchivable("/controls/electric/APU-generator");
598
for (index = 0; index < MAX_ENGINES; index++) {
599
char name[MAX_NAME_LEN];
600
snprintf(name, MAX_NAME_LEN,
601
"/controls/electric/engine[%d]/generator", index);
602
fgTie(name, this, index,
603
&FGControls::get_generator_breaker,
604
&FGControls::set_generator_breaker);
605
fgSetArchivable(name);
607
snprintf(name, MAX_NAME_LEN,
608
"/controls/electric/engine[%d]/bus-tie", index);
609
fgTie(name, this, index,
610
&FGControls::get_bus_tie,
611
&FGControls::set_bus_tie);
612
fgSetArchivable(name);
616
fgTie("/controls/pneumatic/APU-bleed", this,
617
&FGControls::get_APU_bleed,
618
&FGControls::set_APU_bleed);
619
fgSetArchivable("/controls/pneumatic/APU-bleed");
621
for (index = 0; index < MAX_ENGINES; index++) {
622
char name[MAX_NAME_LEN];
623
snprintf(name, MAX_NAME_LEN,
624
"/controls/pneumatic/engine[%d]/bleed", index);
625
fgTie(name, this, index,
626
&FGControls::get_engine_bleed,
627
&FGControls::set_engine_bleed);
628
fgSetArchivable(name);
632
fgTie("/controls/pressurization/mode", this,
633
&FGControls::get_mode, &FGControls::set_mode);
634
fgSetArchivable("/controls/pressurization/mode");
636
fgTie("/controls/pressurization/dump", this,
637
&FGControls::get_dump, &FGControls::set_dump);
638
fgSetArchivable("/controls/pressurization/dump");
640
fgTie("/controls/pressurization/outflow-valve", this,
641
&FGControls::get_outflow_valve,
642
&FGControls::set_outflow_valve);
643
fgSetArchivable("/controls/pressurization/outflow-valve");
645
for (index = 0; index < MAX_PACKS; index++) {
646
char name[MAX_NAME_LEN];
647
snprintf(name, MAX_NAME_LEN,
648
"/controls/pressurization/pack[%d]/pack-on", index);
649
fgTie(name, this, index,
650
&FGControls::get_pack_on, &FGControls::set_pack_on);
651
fgSetArchivable(name);
655
fgTie("/controls/lighting/landing-lights", this,
656
&FGControls::get_landing_lights,
657
&FGControls::set_landing_lights);
658
fgSetArchivable("/controls/lighting/landing-lights");
660
fgTie("/controls/lighting/turn-off-lights", this,
661
&FGControls::get_turn_off_lights,
662
&FGControls::set_turn_off_lights);
663
fgSetArchivable("/controls/lighting/turn-off-lights");
665
fgTie("/controls/lighting/taxi-light", this,
666
&FGControls::get_taxi_light, &FGControls::set_taxi_light);
667
fgSetArchivable("/controls/lighting/taxi-light");
669
fgTie("/controls/lighting/logo-lights", this,
670
&FGControls::get_logo_lights, &FGControls::set_logo_lights);
671
fgSetArchivable("/controls/lighting/logo-lights");
673
fgTie("/controls/lighting/nav-lights", this,
674
&FGControls::get_nav_lights, &FGControls::set_nav_lights);
675
fgSetArchivable("/controls/lighting/nav-lights");
677
fgTie("/controls/lighting/beacon", this,
678
&FGControls::get_beacon, &FGControls::set_beacon);
679
fgSetArchivable("/controls/lighting/beacon");
681
fgTie("/controls/lighting/strobe", this,
682
&FGControls::get_strobe, &FGControls::set_strobe);
683
fgSetArchivable("/controls/lighting/strobe");
685
fgTie("/controls/lighting/panel-norm", this,
686
&FGControls::get_panel_norm, &FGControls::set_panel_norm);
687
fgSetArchivable("/controls/lighting/panel-norm");
689
fgTie("/controls/lighting/instruments-norm", this,
690
&FGControls::get_instruments_norm,
691
&FGControls::set_instruments_norm);
692
fgSetArchivable("/controls/lighting/instruments-norm");
694
fgTie("/controls/lighting/dome-norm", this,
695
&FGControls::get_dome_norm, &FGControls::set_dome_norm);
696
fgSetArchivable("/controls/lighting/dome-norm");
699
fgTie("/controls/armament/master-arm", this,
700
&FGControls::get_master_arm, &FGControls::set_master_arm);
701
fgSetArchivable("/controls/armament/master-arm");
703
fgTie("/controls/armament/station-select", this,
704
&FGControls::get_station_select,
705
&FGControls::set_station_select);
706
fgSetArchivable("/controls/armament/station-select");
708
fgTie("/controls/armament/release-all", this,
709
&FGControls::get_release_ALL,
710
&FGControls::set_release_ALL);
711
fgSetArchivable("/controls/armament/release-all");
713
for (index = 0; index < MAX_STATIONS; index++) {
714
char name[MAX_NAME_LEN];
715
snprintf(name, MAX_NAME_LEN,
716
"/controls/armament/station[%d]/stick-size", index);
717
fgTie(name, this, index,
718
&FGControls::get_stick_size, &FGControls::set_stick_size);
719
fgSetArchivable(name);
721
snprintf(name, MAX_NAME_LEN,
722
"/controls/armament/station[%d]/release-stick", index);
723
fgTie(name, this, index,
724
&FGControls::get_release_stick, &FGControls::set_release_stick);
725
fgSetArchivable(name);
727
snprintf(name, MAX_NAME_LEN,
728
"/controls/armament/station[%d]/release-all", index);
729
fgTie(name, this, index,
730
&FGControls::get_release_all, &FGControls::set_release_all);
731
fgSetArchivable(name);
733
snprintf(name, MAX_NAME_LEN,
734
"/controls/armament/station[%d]/jettison-all", index);
735
fgTie(name, this, index,
736
&FGControls::get_jettison_all, &FGControls::set_jettison_all);
737
fgSetArchivable(name);
741
fgTie("/controls/seat/vertical-adjust", this,
742
&FGControls::get_vertical_adjust,
743
&FGControls::set_vertical_adjust);
744
fgSetArchivable("/controls/seat/vertical-adjust");
746
fgTie("/controls/seat/fore-aft-adjust", this,
747
&FGControls::get_fore_aft_adjust,
748
&FGControls::set_fore_aft_adjust);
749
fgSetArchivable("/controls/seat/fore-aft-adjust");
751
for (index = 0; index < MAX_EJECTION_SEATS; index++) {
752
char name[MAX_NAME_LEN];
753
snprintf(name, MAX_NAME_LEN,
754
"/controls/seat/eject[%d]/initiate", index);
755
fgTie(name, this, index,
756
&FGControls::get_ejection_seat,
757
&FGControls::set_ejection_seat);
758
fgSetArchivable(name);
760
snprintf(name, MAX_NAME_LEN,
761
"/controls/seat/eject[%d]/status", index);
763
fgTie(name, this, index,
764
&FGControls::get_eseat_status,
765
&FGControls::set_eseat_status);
767
fgSetArchivable(name);
770
fgTie("/controls/seat/cmd_selector_valve", this,
771
&FGControls::get_cmd_selector_valve,
772
&FGControls::set_cmd_selector_valve);
773
fgSetArchivable("/controls/seat/eject/cmd_selector_valve");
777
fgTie("/controls/APU/off-start-run", this,
778
&FGControls::get_off_start_run,
779
&FGControls::set_off_start_run);
780
fgSetArchivable("/controls/APU/off-start-run");
782
fgTie("/controls/APU/fire-switch", this,
783
&FGControls::get_APU_fire_switch,
784
&FGControls::set_APU_fire_switch);
785
fgSetArchivable("/controls/APU/fire-switch");
788
for (index = 0; index < MAX_AUTOPILOTS; index++) {
789
char name[MAX_NAME_LEN];
790
snprintf(name, MAX_NAME_LEN,
791
"/controls/autoflight/autopilot[%d]/engage", index);
792
fgTie(name, this, index,
793
&FGControls::get_autopilot_engage,
794
&FGControls::set_autopilot_engage);
795
fgSetArchivable(name);
798
fgTie("/controls/autoflight/autothrottle-arm", this,
799
&FGControls::get_autothrottle_arm,
800
&FGControls::set_autothrottle_arm);
801
fgSetArchivable("/controls/autoflight/autothrottle-arm");
803
fgTie("/controls/autoflight/autothrottle-engage", this,
804
&FGControls::get_autothrottle_engage,
805
&FGControls::set_autothrottle_engage);
806
fgSetArchivable("/controls/autoflight/autothrottle-engage");
808
fgTie("/controls/autoflight/heading-select", this,
809
&FGControls::get_heading_select,
810
&FGControls::set_heading_select);
811
fgSetArchivable("/controls/autoflight/heading-select");
813
fgTie("/controls/autoflight/altitude-select", this,
814
&FGControls::get_altitude_select,
815
&FGControls::set_altitude_select);
816
fgSetArchivable("/controls/autoflight/altitude-select");
818
fgTie("/controls/autoflight/bank-angle-select", this,
819
&FGControls::get_bank_angle_select,
820
&FGControls::set_bank_angle_select);
821
fgSetArchivable("/controls/autoflight/bank-angle-select");
823
fgTie("/controls/autoflight/vertical-speed-select", this,
824
&FGControls::get_vertical_speed_select,
825
&FGControls::set_vertical_speed_select);
826
fgSetArchivable("/controls/autoflight/vertical-speed-select");
828
fgTie("/controls/autoflight/speed-select", this,
829
&FGControls::get_speed_select,
830
&FGControls::set_speed_select);
831
fgSetArchivable("/controls/autoflight/speed-select");
833
fgTie("/controls/autoflight/mach-select", this,
834
&FGControls::get_mach_select,
835
&FGControls::set_mach_select);
836
fgSetArchivable("/controls/autoflight/mach-select");
838
fgTie("/controls/autoflight/vertical-mode", this,
839
&FGControls::get_vertical_mode,
840
&FGControls::set_vertical_mode);
841
fgSetArchivable("/controls/autoflight/vertical-mode");
843
fgTie("/controls/autoflight/lateral-mode", this,
844
&FGControls::get_lateral_mode,
845
&FGControls::set_lateral_mode);
846
fgSetArchivable("/controls/autoflight/lateral-mode");
232
_SetRoot( _tiedProperties, "/controls/flight" );
234
_tiedProperties.Tie( "aileron", this, &FGControls::get_aileron, &FGControls::set_aileron )
235
->setAttribute( SGPropertyNode::ARCHIVE, true );
237
_tiedProperties.Tie( "aileron-trim", this, &FGControls::get_aileron_trim, &FGControls::set_aileron_trim )
238
->setAttribute( SGPropertyNode::ARCHIVE, true );
240
_tiedProperties.Tie( "elevator", this, &FGControls::get_elevator, &FGControls::set_elevator )
241
->setAttribute( SGPropertyNode::ARCHIVE, true );
243
_tiedProperties.Tie( "elevator-trim", this, &FGControls::get_elevator_trim, &FGControls::set_elevator_trim )
244
->setAttribute( SGPropertyNode::ARCHIVE, true );
246
_tiedProperties.Tie( "rudder", this, &FGControls::get_rudder, &FGControls::set_rudder )
247
->setAttribute( SGPropertyNode::ARCHIVE, true );
249
_tiedProperties.Tie( "rudder-trim", this, &FGControls::get_rudder_trim, &FGControls::set_rudder_trim )
250
->setAttribute( SGPropertyNode::ARCHIVE, true );
252
_tiedProperties.Tie( "flaps", this, &FGControls::get_flaps, &FGControls::set_flaps )
253
->setAttribute( SGPropertyNode::ARCHIVE, true );
255
_tiedProperties.Tie( "slats", this, &FGControls::get_slats, &FGControls::set_slats )
256
->setAttribute( SGPropertyNode::ARCHIVE, true );
258
_tiedProperties.Tie( "BLC", this, &FGControls::get_BLC, &FGControls::set_BLC )
259
->setAttribute( SGPropertyNode::ARCHIVE, true );
261
_tiedProperties.Tie( "spoilers", this, &FGControls::get_spoilers, &FGControls::set_spoilers )
262
->setAttribute( SGPropertyNode::ARCHIVE, true );
264
_tiedProperties.Tie( "speedbrake", this, &FGControls::get_speedbrake, &FGControls::set_speedbrake )
265
->setAttribute( SGPropertyNode::ARCHIVE, true );
267
_tiedProperties.Tie( "wing-sweep", this, &FGControls::get_wing_sweep, &FGControls::set_wing_sweep )
268
->setAttribute( SGPropertyNode::ARCHIVE, true );
270
_tiedProperties.Tie( "wing-fold", this, &FGControls::get_wing_fold, &FGControls::set_wing_fold )
271
->setAttribute( SGPropertyNode::ARCHIVE, true );
273
_tiedProperties.Tie( "drag-chute", this, &FGControls::get_drag_chute, &FGControls::set_drag_chute )
274
->setAttribute( SGPropertyNode::ARCHIVE, true );
277
_tiedProperties.setRoot( fgGetNode("/controls/engines", true ) );
279
_tiedProperties.Tie( "throttle_idle", this, &FGControls::get_throttle_idle, &FGControls::set_throttle_idle )
280
->setAttribute( SGPropertyNode::ARCHIVE, true );
282
for (index = 0; index < MAX_ENGINES; index++) {
283
_SetRoot(_tiedProperties, "/controls/engines/engine", index );
285
_tiedProperties.Tie( "throttle", this, index, &FGControls::get_throttle, &FGControls::set_throttle )
286
->setAttribute( SGPropertyNode::ARCHIVE, true );
288
_tiedProperties.Tie( "starter", this, index, &FGControls::get_starter, &FGControls::set_starter )
289
->setAttribute( SGPropertyNode::ARCHIVE, true );
291
_tiedProperties.Tie( "fuel-pump", this, index, &FGControls::get_fuel_pump, &FGControls::set_fuel_pump )
292
->setAttribute( SGPropertyNode::ARCHIVE, true );
294
_tiedProperties.Tie( "fire-switch", this, index, &FGControls::get_fire_switch, &FGControls::set_fire_switch )
295
->setAttribute( SGPropertyNode::ARCHIVE, true );
297
_tiedProperties.Tie( "fire-bottle-discharge", this, index, &FGControls::get_fire_bottle_discharge, &FGControls::set_fire_bottle_discharge )
298
->setAttribute( SGPropertyNode::ARCHIVE, true );
300
_tiedProperties.Tie( "cutoff", this, index, &FGControls::get_cutoff, &FGControls::set_cutoff )
301
->setAttribute( SGPropertyNode::ARCHIVE, true );
303
_tiedProperties.Tie( "mixture", this, index, &FGControls::get_mixture, &FGControls::set_mixture )
304
->setAttribute( SGPropertyNode::ARCHIVE, true );
306
_tiedProperties.Tie( "propeller-pitch", this, index, &FGControls::get_prop_advance, &FGControls::set_prop_advance )
307
->setAttribute( SGPropertyNode::ARCHIVE, true );
309
_tiedProperties.Tie( "magnetos", this, index, &FGControls::get_magnetos, &FGControls::set_magnetos )
310
->setAttribute( SGPropertyNode::ARCHIVE, true );
312
_tiedProperties.Tie( "feed_tank", this, index, &FGControls::get_feed_tank, &FGControls::set_feed_tank )
313
->setAttribute( SGPropertyNode::ARCHIVE, true );
315
_tiedProperties.Tie( "WEP", this, index, &FGControls::get_nitrous_injection, &FGControls::set_nitrous_injection )
316
->setAttribute( SGPropertyNode::ARCHIVE, true );
318
_tiedProperties.Tie( "cowl-flaps-norm", this, index, &FGControls::get_cowl_flaps_norm, &FGControls::set_cowl_flaps_norm )
319
->setAttribute( SGPropertyNode::ARCHIVE, true );
321
_tiedProperties.Tie( "propeller-feather", this, index, &FGControls::get_feather, &FGControls::set_feather )
322
->setAttribute( SGPropertyNode::ARCHIVE, true );
324
_tiedProperties.Tie( "ignition", this, index, &FGControls::get_ignition, &FGControls::set_ignition )
325
->setAttribute( SGPropertyNode::ARCHIVE, true );
327
_tiedProperties.Tie( "augmentation", this, index, &FGControls::get_augmentation, &FGControls::set_augmentation )
328
->setAttribute( SGPropertyNode::ARCHIVE, true );
330
_tiedProperties.Tie( "reverser", this, index, &FGControls::get_reverser, &FGControls::set_reverser )
331
->setAttribute( SGPropertyNode::ARCHIVE, true );
333
_tiedProperties.Tie( "water-injection", this, index, &FGControls::get_water_injection, &FGControls::set_water_injection )
334
->setAttribute( SGPropertyNode::ARCHIVE, true );
336
_tiedProperties.Tie( "condition", this, index, &FGControls::get_condition, &FGControls::set_condition )
337
->setAttribute( SGPropertyNode::ARCHIVE, true );
341
_SetRoot( _tiedProperties, "/controls/fuel" );
343
_tiedProperties.Tie( "dump-valve", this, &FGControls::get_dump_valve, &FGControls::set_dump_valve)
344
->setAttribute( SGPropertyNode::ARCHIVE, true );
346
for (index = 0; index < MAX_TANKS; index++) {
347
_SetRoot( _tiedProperties, "/controls/fuel/tank", index );
349
_tiedProperties.Tie( "fuel_selector", this, index, &FGControls::get_fuel_selector, &FGControls::set_fuel_selector)
350
->setAttribute( SGPropertyNode::ARCHIVE, true );
352
_tiedProperties.Tie( "to_engine", this, index, &FGControls::get_to_engine, &FGControls::set_to_engine)
353
->setAttribute( SGPropertyNode::ARCHIVE, true );
355
_tiedProperties.Tie( "to_tank", this, index, &FGControls::get_to_tank, &FGControls::set_to_tank)
356
->setAttribute( SGPropertyNode::ARCHIVE, true );
358
for (i = 0; i < MAX_BOOSTPUMPS; i++) {
359
_tiedProperties.Tie( "boost-pump", i,
360
this, index * 2 + i, &FGControls::get_boost_pump, &FGControls::set_boost_pump)
361
->setAttribute( SGPropertyNode::ARCHIVE, true );
366
_SetRoot( _tiedProperties, "/controls/gear" );
368
_tiedProperties.Tie( "brake-left", this, &FGControls::get_brake_left, &FGControls::set_brake_left)
369
->setAttribute( SGPropertyNode::ARCHIVE, true );
371
_tiedProperties.Tie( "brake-right", this, &FGControls::get_brake_right, &FGControls::set_brake_right)
372
->setAttribute( SGPropertyNode::ARCHIVE, true );
374
_tiedProperties.Tie( "copilot-brake-left", this, &FGControls::get_copilot_brake_left, &FGControls::set_copilot_brake_left)
375
->setAttribute( SGPropertyNode::ARCHIVE, true );
377
_tiedProperties.Tie( "copilot-brake-right", this, &FGControls::get_copilot_brake_right, &FGControls::set_copilot_brake_right)
378
->setAttribute( SGPropertyNode::ARCHIVE, true );
380
_tiedProperties.Tie( "brake-parking", this, &FGControls::get_brake_parking, &FGControls::set_brake_parking)
381
->setAttribute( SGPropertyNode::ARCHIVE, true );
383
_tiedProperties.Tie( "steering", this, &FGControls::get_steering, &FGControls::set_steering)
384
->setAttribute( SGPropertyNode::ARCHIVE, true );
386
_tiedProperties.Tie( "nose-wheel-steering", this, &FGControls::get_nose_wheel_steering, &FGControls::set_nose_wheel_steering)
387
->setAttribute( SGPropertyNode::ARCHIVE, true );
389
_tiedProperties.Tie( "gear-down", this, &FGControls::get_gear_down, &FGControls::set_gear_down)
390
->setAttribute( SGPropertyNode::ARCHIVE, true );
392
_tiedProperties.Tie( "antiskid", this, &FGControls::get_antiskid, &FGControls::set_antiskid)
393
->setAttribute( SGPropertyNode::ARCHIVE, true );
395
_tiedProperties.Tie( "tailhook", this, &FGControls::get_tailhook, &FGControls::set_tailhook)
396
->setAttribute( SGPropertyNode::ARCHIVE, true );
398
_tiedProperties.Tie( "launchbar", this, &FGControls::get_launchbar, &FGControls::set_launchbar)
399
->setAttribute( SGPropertyNode::ARCHIVE, true );
401
_tiedProperties.Tie( "catapult-launch-cmd", this, &FGControls::get_catapult_launch_cmd, &FGControls::set_catapult_launch_cmd)
402
->setAttribute( SGPropertyNode::ARCHIVE, true );
404
_tiedProperties.Tie( "tailwheel-lock", this, &FGControls::get_tailwheel_lock, &FGControls::set_tailwheel_lock)
405
->setAttribute( SGPropertyNode::ARCHIVE, true );
407
for (index = 0; index < MAX_WHEELS; index++) {
408
_SetRoot( _tiedProperties, "/controls/gear/wheel", index );
409
_tiedProperties.Tie( "alternate-extension", this, index, &FGControls::get_alternate_extension, &FGControls::set_alternate_extension)
410
->setAttribute( SGPropertyNode::ARCHIVE, true );
414
_SetRoot( _tiedProperties, "/controls/anti-ice" );
416
_tiedProperties.Tie( "wing-heat", this, &FGControls::get_wing_heat, &FGControls::set_wing_heat)
417
->setAttribute( SGPropertyNode::ARCHIVE, true );
419
_tiedProperties.Tie( "pitot-heat", this, &FGControls::get_pitot_heat, &FGControls::set_pitot_heat)
420
->setAttribute( SGPropertyNode::ARCHIVE, true );
422
_tiedProperties.Tie( "wiper", this, &FGControls::get_wiper, &FGControls::set_wiper)
423
->setAttribute( SGPropertyNode::ARCHIVE, true );
425
_tiedProperties.Tie( "window-heat", this, &FGControls::get_window_heat, &FGControls::set_window_heat)
426
->setAttribute( SGPropertyNode::ARCHIVE, true );
428
for (index = 0; index < MAX_ENGINES; index++) {
429
_SetRoot( _tiedProperties, "/controls/anti-ice/engine", index );
431
_tiedProperties.Tie( "carb-heat", this, index, &FGControls::get_carb_heat, &FGControls::set_carb_heat)
432
->setAttribute( SGPropertyNode::ARCHIVE, true );
434
_tiedProperties.Tie( "inlet-heat", this, index, &FGControls::get_inlet_heat, &FGControls::set_inlet_heat)
435
->setAttribute( SGPropertyNode::ARCHIVE, true );
439
for (index = 0; index < MAX_HYD_SYSTEMS; index++) {
440
_SetRoot( _tiedProperties, "/controls/hydraulic/system", index );
442
_tiedProperties.Tie( "engine-pump", this, index, &FGControls::get_engine_pump, &FGControls::set_engine_pump)
443
->setAttribute( SGPropertyNode::ARCHIVE, true );
445
_tiedProperties.Tie( "electric-pump", this, index, &FGControls::get_electric_pump, &FGControls::set_electric_pump)
446
->setAttribute( SGPropertyNode::ARCHIVE, true );
450
_SetRoot( _tiedProperties, "/controls/electric" );
452
_tiedProperties.Tie( "battery-switch", this, &FGControls::get_battery_switch, &FGControls::set_battery_switch)
453
->setAttribute( SGPropertyNode::ARCHIVE, true );
455
_tiedProperties.Tie( "external-power", this, &FGControls::get_external_power, &FGControls::set_external_power)
456
->setAttribute( SGPropertyNode::ARCHIVE, true );
458
_tiedProperties.Tie( "APU-generator", this, &FGControls::get_APU_generator, &FGControls::set_APU_generator)
459
->setAttribute( SGPropertyNode::ARCHIVE, true );
461
for (index = 0; index < MAX_ENGINES; index++) {
462
_SetRoot( _tiedProperties, "/controls/electric/engine", index );
464
_tiedProperties.Tie( "generator", this, index, &FGControls::get_generator_breaker, &FGControls::set_generator_breaker)
465
->setAttribute( SGPropertyNode::ARCHIVE, true );
467
_tiedProperties.Tie( "bus-tie", this, index, &FGControls::get_bus_tie, &FGControls::set_bus_tie)
468
->setAttribute( SGPropertyNode::ARCHIVE, true );
472
_SetRoot( _tiedProperties, "/controls/pneumatic" );
474
_tiedProperties.Tie( "APU-bleed", this, &FGControls::get_APU_bleed, &FGControls::set_APU_bleed)
475
->setAttribute( SGPropertyNode::ARCHIVE, true );
477
for (index = 0; index < MAX_ENGINES; index++) {
478
_SetRoot( _tiedProperties, "/controls/pneumatic/engine", index );
480
_tiedProperties.Tie( "bleed", this, index, &FGControls::get_engine_bleed, &FGControls::set_engine_bleed)
481
->setAttribute( SGPropertyNode::ARCHIVE, true );
485
_SetRoot( _tiedProperties, "/controls/pressurization" );
487
_tiedProperties.Tie( "mode", this, &FGControls::get_mode, &FGControls::set_mode)
488
->setAttribute( SGPropertyNode::ARCHIVE, true );
490
_tiedProperties.Tie( "dump", this, &FGControls::get_dump, &FGControls::set_dump)
491
->setAttribute( SGPropertyNode::ARCHIVE, true );
493
_tiedProperties.Tie( "outflow-valve", this, &FGControls::get_outflow_valve, &FGControls::set_outflow_valve)
494
->setAttribute( SGPropertyNode::ARCHIVE, true );
496
for (index = 0; index < MAX_PACKS; index++) {
497
_SetRoot( _tiedProperties, "/controls/pressurization/pack", index );
499
_tiedProperties.Tie( "pack-on", this, index, &FGControls::get_pack_on, &FGControls::set_pack_on)
500
->setAttribute( SGPropertyNode::ARCHIVE, true );
504
_SetRoot( _tiedProperties, "/controls/lighting" );
506
_tiedProperties.Tie( "landing-lights", this, &FGControls::get_landing_lights, &FGControls::set_landing_lights)
507
->setAttribute( SGPropertyNode::ARCHIVE, true );
509
_tiedProperties.Tie( "turn-off-lights", this, &FGControls::get_turn_off_lights, &FGControls::set_turn_off_lights)
510
->setAttribute( SGPropertyNode::ARCHIVE, true );
512
_tiedProperties.Tie( "taxi-light", this, &FGControls::get_taxi_light, &FGControls::set_taxi_light)
513
->setAttribute( SGPropertyNode::ARCHIVE, true );
515
_tiedProperties.Tie( "logo-lights", this, &FGControls::get_logo_lights, &FGControls::set_logo_lights)
516
->setAttribute( SGPropertyNode::ARCHIVE, true );
518
_tiedProperties.Tie( "nav-lights", this, &FGControls::get_nav_lights, &FGControls::set_nav_lights)
519
->setAttribute( SGPropertyNode::ARCHIVE, true );
521
_tiedProperties.Tie( "beacon", this, &FGControls::get_beacon, &FGControls::set_beacon)
522
->setAttribute( SGPropertyNode::ARCHIVE, true );
524
_tiedProperties.Tie( "strobe", this, &FGControls::get_strobe, &FGControls::set_strobe)
525
->setAttribute( SGPropertyNode::ARCHIVE, true );
527
_tiedProperties.Tie( "panel-norm", this, &FGControls::get_panel_norm, &FGControls::set_panel_norm)
528
->setAttribute( SGPropertyNode::ARCHIVE, true );
530
_tiedProperties.Tie( "instruments-norm", this, &FGControls::get_instruments_norm, &FGControls::set_instruments_norm)
531
->setAttribute( SGPropertyNode::ARCHIVE, true );
533
_tiedProperties.Tie( "dome-norm", this, &FGControls::get_dome_norm, &FGControls::set_dome_norm)
534
->setAttribute( SGPropertyNode::ARCHIVE, true );
537
_SetRoot( _tiedProperties, "/controls/armament" );
539
_tiedProperties.Tie( "master-arm", this, &FGControls::get_master_arm, &FGControls::set_master_arm)
540
->setAttribute( SGPropertyNode::ARCHIVE, true );
542
_tiedProperties.Tie( "station-select", this, &FGControls::get_station_select, &FGControls::set_station_select)
543
->setAttribute( SGPropertyNode::ARCHIVE, true );
545
_tiedProperties.Tie( "release-all", this, &FGControls::get_release_ALL, &FGControls::set_release_ALL)
546
->setAttribute( SGPropertyNode::ARCHIVE, true );
548
for (index = 0; index < MAX_STATIONS; index++) {
549
_SetRoot( _tiedProperties, "/controls/armament/station", index );
551
_tiedProperties.Tie( "stick-size", this, index, &FGControls::get_stick_size, &FGControls::set_stick_size)
552
->setAttribute( SGPropertyNode::ARCHIVE, true );
554
_tiedProperties.Tie( "release-stick", this, index, &FGControls::get_release_stick, &FGControls::set_release_stick)
555
->setAttribute( SGPropertyNode::ARCHIVE, true );
557
_tiedProperties.Tie( "release-all", this, index, &FGControls::get_release_all, &FGControls::set_release_all)
558
->setAttribute( SGPropertyNode::ARCHIVE, true );
560
_tiedProperties.Tie( "jettison-all", this, index, &FGControls::get_jettison_all, &FGControls::set_jettison_all)
561
->setAttribute( SGPropertyNode::ARCHIVE, true );
565
_SetRoot( _tiedProperties, "/controls/seat" );
567
_tiedProperties.Tie( "vertical-adjust", this, &FGControls::get_vertical_adjust, &FGControls::set_vertical_adjust)
568
->setAttribute( SGPropertyNode::ARCHIVE, true );
570
_tiedProperties.Tie( "fore-aft-adjust", this, &FGControls::get_fore_aft_adjust, &FGControls::set_fore_aft_adjust)
571
->setAttribute( SGPropertyNode::ARCHIVE, true );
573
_tiedProperties.Tie( "cmd_selector_valve", this, &FGControls::get_cmd_selector_valve, &FGControls::set_cmd_selector_valve)
574
->setAttribute( SGPropertyNode::ARCHIVE, true );
576
for (index = 0; index < MAX_EJECTION_SEATS; index++) {
577
_SetRoot( _tiedProperties, "/controls/seat/eject", index );
579
_tiedProperties.Tie( "initiate", this, index, &FGControls::get_ejection_seat, &FGControls::set_ejection_seat)
580
->setAttribute( SGPropertyNode::ARCHIVE, true );
582
_tiedProperties.Tie( "status", this, index, &FGControls::get_eseat_status, &FGControls::set_eseat_status)
583
->setAttribute( SGPropertyNode::ARCHIVE, true );
587
_SetRoot( _tiedProperties, "/controls/APU" );
589
_tiedProperties.Tie( "off-start-run", this, &FGControls::get_off_start_run, &FGControls::set_off_start_run)
590
->setAttribute( SGPropertyNode::ARCHIVE, true );
592
_tiedProperties.Tie( "fire-switch", this, &FGControls::get_APU_fire_switch, &FGControls::set_APU_fire_switch)
593
->setAttribute( SGPropertyNode::ARCHIVE, true );
596
for (index = 0; index < MAX_AUTOPILOTS; index++) {
598
_SetRoot( _tiedProperties, "/controls/autoflight/autopilot", index );
600
_tiedProperties.Tie( "engage", this, index, &FGControls::get_autopilot_engage, &FGControls::set_autopilot_engage)
601
->setAttribute( SGPropertyNode::ARCHIVE, true );
604
_SetRoot( _tiedProperties, "/controls/autoflight/" );
606
_tiedProperties.Tie( "autothrottle-arm", this, &FGControls::get_autothrottle_arm, &FGControls::set_autothrottle_arm)
607
->setAttribute( SGPropertyNode::ARCHIVE, true );
609
_tiedProperties.Tie( "autothrottle-engage", this, &FGControls::get_autothrottle_engage, &FGControls::set_autothrottle_engage)
610
->setAttribute( SGPropertyNode::ARCHIVE, true );
612
_tiedProperties.Tie( "heading-select", this, &FGControls::get_heading_select, &FGControls::set_heading_select)
613
->setAttribute( SGPropertyNode::ARCHIVE, true );
615
_tiedProperties.Tie( "altitude-select", this, &FGControls::get_altitude_select, &FGControls::set_altitude_select)
616
->setAttribute( SGPropertyNode::ARCHIVE, true );
618
_tiedProperties.Tie( "bank-angle-select", this, &FGControls::get_bank_angle_select, &FGControls::set_bank_angle_select)
619
->setAttribute( SGPropertyNode::ARCHIVE, true );
621
_tiedProperties.Tie( "vertical-speed-select", this, &FGControls::get_vertical_speed_select, &FGControls::set_vertical_speed_select)
622
->setAttribute( SGPropertyNode::ARCHIVE, true );
624
_tiedProperties.Tie( "speed-select", this, &FGControls::get_speed_select, &FGControls::set_speed_select)
625
->setAttribute( SGPropertyNode::ARCHIVE, true );
627
_tiedProperties.Tie( "mach-select", this, &FGControls::get_mach_select, &FGControls::set_mach_select)
628
->setAttribute( SGPropertyNode::ARCHIVE, true );
630
_tiedProperties.Tie( "vertical-mode", this, &FGControls::get_vertical_mode, &FGControls::set_vertical_mode)
631
->setAttribute( SGPropertyNode::ARCHIVE, true );
633
_tiedProperties.Tie( "lateral-mode", this, &FGControls::get_lateral_mode, &FGControls::set_lateral_mode)
634
->setAttribute( SGPropertyNode::ARCHIVE, true );
850
637
void FGControls::unbind ()
853
//Tie control properties.
854
fgUntie("/controls/flight/aileron");
855
fgUntie("/controls/flight/aileron-trim");
856
fgUntie("/controls/flight/elevator");
857
fgUntie("/controls/flight/elevator-trim");
858
fgUntie("/controls/flight/rudder");
859
fgUntie("/controls/flight/rudder-trim");
860
fgUntie("/controls/flight/flaps");
861
fgUntie("/controls/flight/slats");
862
fgUntie("/controls/flight/BLC");
863
fgUntie("/controls/flight/spoilers");
864
fgUntie("/controls/flight/speedbrake");
865
fgUntie("/controls/flight/wing-sweep");
866
fgUntie("/controls/flight/wing-fold");
867
fgUntie("/controls/flight/drag-chute");
868
for (index = 0; index < MAX_ENGINES; index++) {
869
char name[MAX_NAME_LEN];
870
snprintf(name, MAX_NAME_LEN,
871
"/controls/engines/engine[%d]/throttle", index);
873
snprintf(name, MAX_NAME_LEN,
874
"/controls/engines/engine[%d]/feed_tank", index);
876
snprintf(name, MAX_NAME_LEN,
877
"/controls/engines/engine[%d]/starter", index);
879
snprintf(name, MAX_NAME_LEN,
880
"/controls/engines/engine[%d]/fuel_pump", index);
882
snprintf(name, MAX_NAME_LEN,
883
"/controls/engines/engine[%d]/fire-switch", index);
885
snprintf(name, MAX_NAME_LEN,
886
"/controls/engines/engine[%d]/fire-bottle-discharge", index);
888
snprintf(name, MAX_NAME_LEN,
889
"/controls/engines/engine[%d]/throttle_idle", index);
891
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/cutoff", index);
893
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/mixture", index);
895
snprintf(name, MAX_NAME_LEN,
896
"/controls/engines/engine[%d]/propeller-pitch", index);
898
snprintf(name, MAX_NAME_LEN,
899
"/controls/engines/engine[%d]/magnetos", index);
901
snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/WEP", index);
903
snprintf(name, MAX_NAME_LEN,
904
"/controls/engines/engine[%d]/cowl-flaps-norm", index);
906
snprintf(name, MAX_NAME_LEN,
907
"/controls/engines/engine[%d]/propeller-feather", index);
909
snprintf(name, MAX_NAME_LEN,
910
"/controls/engines/engine[%d]/ignition", index);
912
snprintf(name, MAX_NAME_LEN,
913
"/controls/engines/engine[%d]/augmentation", index);
915
snprintf(name, MAX_NAME_LEN,
916
"/controls/engines/engine[%d]/reverser", index);
918
snprintf(name, MAX_NAME_LEN,
919
"/controls/engines/engine[%d]/water-injection", index);
921
snprintf(name, MAX_NAME_LEN,
922
"/controls/engines/engine[%d]/condition", index);
925
fgUntie("/controls/fuel/dump-valve");
926
for (index = 0; index < MAX_TANKS; index++) {
927
char name[MAX_NAME_LEN];
928
snprintf(name, MAX_NAME_LEN,
929
"/controls/fuel/tank[%d]/fuel_selector", index);
931
snprintf(name, MAX_NAME_LEN, "/controls/fuel/tank[%d]/to_engine", index);
933
snprintf(name, MAX_NAME_LEN, "/controls/fuel/tank[%d]/to_tank", index);
935
for (i = 0; index < MAX_BOOSTPUMPS; i++) {
936
snprintf(name, MAX_NAME_LEN,
937
"/controls/fuel/tank[%d]/boost-pump[%d]", index, i);
941
fgUntie("/controls/gear/brake-left");
942
fgUntie("/controls/gear/brake-right");
943
fgUntie("/controls/gear/brake-parking");
944
fgUntie("/controls/gear/steering");
945
fgUntie("/controls/gear/nose-wheel-steering");
946
fgUntie("/controls/gear/gear-down");
947
fgUntie("/controls/gear/antiskid");
948
fgUntie("/controls/gear/tailhook");
949
fgUntie("/controls/gear/launchbar");
950
fgUntie("/controls/gear/catapult-launch-cmd");
951
fgUntie("/controls/gear/tailwheel-lock");
952
for (index = 0; index < MAX_WHEELS; index++) {
953
char name[MAX_NAME_LEN];
954
snprintf(name, MAX_NAME_LEN,
955
"/controls/gear/wheel[%d]/alternate-extension", index);
958
fgUntie("/controls/anti-ice/wing-heat");
959
fgUntie("/controls/anti-ice/pitot-heat");
960
fgUntie("/controls/anti-ice/wiper");
961
fgUntie("/controls/anti-ice/window-heat");
962
for (index = 0; index < MAX_ENGINES; index++) {
963
char name[MAX_NAME_LEN];
964
snprintf(name, MAX_NAME_LEN,
965
"/controls/anti-ice/engine[%d]/carb-heat", index);
967
snprintf(name, MAX_NAME_LEN,
968
"/controls/anti-ice/engine[%d]/inlet-heat", index);
971
for (index = 0; index < MAX_HYD_SYSTEMS; index++) {
972
char name[MAX_NAME_LEN];
973
snprintf(name, MAX_NAME_LEN,
974
"/controls/hydraulic/system[%d]/engine-pump", index);
976
snprintf(name, MAX_NAME_LEN,
977
"/controls/hydraulic/system[%d]/electric-pump", index);
980
fgUntie("/controls/electric/battery-switch");
981
fgUntie("/controls/electric/external-power");
982
fgUntie("/controls/electric/APU-generator");
983
for (index = 0; index < MAX_ENGINES; index++) {
984
char name[MAX_NAME_LEN];
985
snprintf(name, MAX_NAME_LEN,
986
"/controls/electric/engine[%d]/generator", index);
988
snprintf(name, MAX_NAME_LEN,
989
"/controls/electric/engine[%d]/bus-tie", index);
992
fgUntie("/controls/pneumatic/APU-bleed");
993
for (index = 0; index < MAX_ENGINES; index++) {
994
char name[MAX_NAME_LEN];
995
snprintf(name, MAX_NAME_LEN,
996
"/controls/pneumatic/engine[%d]/bleed", index);
999
fgUntie("/controls/pressurization/mode");
1000
fgUntie("/controls/pressurization/dump");
1001
for (index = 0; index < MAX_PACKS; index++) {
1002
char name[MAX_NAME_LEN];
1003
snprintf(name, MAX_NAME_LEN,
1004
"/controls/pressurization/pack[%d]/pack-on", index);
1007
fgUntie("/controls/lighting/landing-lights");
1008
fgUntie("/controls/lighting/turn-off-lights");
1009
fgUntie("/controls/lighting/taxi-light");
1010
fgUntie("/controls/lighting/logo-lights");
1011
fgUntie("/controls/lighting/nav-lights");
1012
fgUntie("/controls/lighting/beacon");
1013
fgUntie("/controls/lighting/strobe");
1014
fgUntie("/controls/lighting/panel-norm");
1015
fgUntie("/controls/lighting/instruments-norm");
1016
fgUntie("/controls/lighting/dome-norm");
1018
fgUntie("/controls/armament/master-arm");
1019
fgUntie("/controls/armament/station-select");
1020
fgUntie("/controls/armament/release-all");
1021
for (index = 0; index < MAX_STATIONS; index++) {
1022
char name[MAX_NAME_LEN];
1023
snprintf(name, MAX_NAME_LEN,
1024
"/controls/armament/station[%d]/stick-size", index);
1026
snprintf(name, MAX_NAME_LEN,
1027
"/controls/armament/station[%d]/release-stick", index);
1029
snprintf(name, MAX_NAME_LEN,
1030
"/controls/armament/station[%d]/release-all", index);
1032
snprintf(name, MAX_NAME_LEN,
1033
"/controls/armament/station[%d]/jettison-all", index);
1037
fgUntie("/controls/seat/vertical-adjust");
1038
fgUntie("/controls/seat/fore-aft-adjust");
1039
for (index = 0; index < MAX_EJECTION_SEATS; index++) {
1040
char name[MAX_NAME_LEN];
1041
snprintf(name, MAX_NAME_LEN,
1042
"/controls/seat/eject[%d]/initiate", index);
1044
snprintf(name, MAX_NAME_LEN,
1045
"/controls/seat/eject[%d]/status", index);
1048
fgUntie("/controls/seat/cmd_selector_valve");
1050
fgUntie("/controls/APU/off-start-run");
1051
fgUntie("/controls/APU/fire-switch");
1052
for (index = 0; index < MAX_AUTOPILOTS; index++) {
1053
char name[MAX_NAME_LEN];
1054
snprintf(name, MAX_NAME_LEN,
1055
"/controls/autoflight/autopilot[%d]/engage", index);
1058
fgUntie("/controls/autoflight/autothrottle-arm");
1059
fgUntie("/controls/autoflight/autothrottle-engage");
1060
fgUntie("/controls/autoflight/heading-select");
1061
fgUntie("/controls/autoflight/altitude-select");
1062
fgUntie("/controls/autoflight/bank-angle-select");
1063
fgUntie("/controls/autoflight/vertical-speed-select");
1064
fgUntie("/controls/autoflight/speed-select");
1065
fgUntie("/controls/autoflight/mach-select");
1066
fgUntie("/controls/autoflight/vertical-mode");
1067
fgUntie("/controls/autoflight/lateral-mode");
639
_tiedProperties.Untie();