]> git.mxchange.org Git - flightgear.git/blob - scripts/perl/examples/autopilot.pl
A bit more Makefile massaging.
[flightgear.git] / scripts / perl / examples / autopilot.pl
1 #!/usr/bin/perl
2
3 require "telnet.pl";
4
5 use strict;
6
7
8 sub autopilot_off {
9     my( $fgfs ) = shift;
10
11     &set_prop( $fgfs, "/autopilot/locks/heading", "" );
12     &set_prop( $fgfs, "/autopilot/locks/altitude", "" );
13     &set_prop( $fgfs, "/autopilot/locks/speed", "" );
14 }
15
16
17 sub wing_leveler {
18     my( $fgfs ) = shift;
19     my( $state ) = shift;
20
21     if ( $state ) {
22         &set_prop( $fgfs, "/autopilot/locks/heading", "wing-leveler" );
23     } else {
24         &set_prop( $fgfs, "/autopilot/locks/heading", "" );
25     }
26 }
27
28
29 sub bank_hold {
30     my( $fgfs ) = shift;
31     my( $state ) = shift;
32     my( $bank_deg ) = shift;
33
34     if ( $state ) {
35         &set_prop( $fgfs, "/autopilot/locks/heading", "bank-hold" );
36         &set_prop( $fgfs, "/autopilot/settings/target-bank-deg", $bank_deg );
37     } else {
38         &set_prop( $fgfs, "/autopilot/locks/heading", "" );
39     }
40 }
41
42
43 sub heading_hold {
44     my( $fgfs ) = shift;
45     my( $state ) = shift;
46     my( $hdg_deg ) = shift;
47
48     if ( $state ) {
49         &set_prop( $fgfs, "/autopilot/locks/heading", "dg-heading-hold" );
50         &set_prop( $fgfs, "/autopilot/settings/heading-bug-deg", $hdg_deg );
51     } else {
52         &set_prop( $fgfs, "/autopilot/locks/heading", "" );
53     }
54 }
55
56
57 sub pitch_hold_trim {
58     my( $fgfs ) = shift;
59     my( $state ) = shift;
60     my( $pitch_deg ) = shift;
61
62     if ( $state ) {
63         &set_prop( $fgfs, "/autopilot/locks/altitude", "pitch-hold" );
64         &set_prop( $fgfs, "/autopilot/settings/target-pitch-deg", $pitch_deg );
65     } else {
66         &set_prop( $fgfs, "/autopilot/locks/altitude", "" );
67     }
68 }
69
70
71 sub pitch_hold_yoke {
72     my( $fgfs ) = shift;
73     my( $state ) = shift;
74     my( $pitch_deg ) = shift;
75
76     if ( $state ) {
77         &set_prop( $fgfs, "/autopilot/locks/altitude", "pitch-hold-yoke" );
78         &set_prop( $fgfs, "/autopilot/settings/target-pitch-deg", $pitch_deg );
79     } else {
80         &set_prop( $fgfs, "/autopilot/locks/altitude", "" );
81     }
82 }
83
84
85 sub altitude_hold {
86     my( $fgfs ) = shift;
87     my( $state ) = shift;
88     my( $alt_ft ) = shift;
89
90     if ( $state ) {
91         &set_prop( $fgfs, "/autopilot/locks/altitude", "altitude-hold" );
92         &set_prop( $fgfs, "/autopilot/settings/target-altitude-ft", $alt_ft );
93     } else {
94         &set_prop( $fgfs, "/autopilot/locks/altitude", "" );
95     }
96 }
97
98
99 sub auto_speed_throttle {
100     my( $fgfs ) = shift;
101     my( $state ) = shift;
102     my( $kts ) = shift;
103
104     if ( $state ) {
105         &set_prop( $fgfs, "/autopilot/locks/speed", "speed-with-throttle" );
106         &set_prop( $fgfs, "/autopilot/settings/target-speed-kt", $kts );
107     } else {
108         &set_prop( $fgfs, "/autopilot/locks/speed", "" );
109     }
110 }
111
112
113 sub auto_speed_pitch_trim {
114     my( $fgfs ) = shift;
115     my( $state ) = shift;
116     my( $kts ) = shift;
117
118     if ( $state ) {
119         &set_prop( $fgfs, "/autopilot/locks/speed", "speed-with-pitch-trim" );
120         &set_prop( $fgfs, "/autopilot/settings/target-speed-kt", $kts );
121     } else {
122         &set_prop( $fgfs, "/autopilot/locks/speed", "" );
123     }
124 }
125
126 sub auto_speed_pitch_yoke {
127     my( $fgfs ) = shift;
128     my( $state ) = shift;
129     my( $kts ) = shift;
130
131     if ( $state ) {
132         &set_prop( $fgfs, "/autopilot/locks/speed", "speed-with-pitch-yoke" );
133         &set_prop( $fgfs, "/autopilot/settings/target-speed-kt", $kts );
134     } else {
135         &set_prop( $fgfs, "/autopilot/locks/speed", "" );
136     }
137 }
138
139
140
141