]> git.mxchange.org Git - flightgear.git/blob - scripts/perl/examples/environment.pl
A bit more Makefile massaging.
[flightgear.git] / scripts / perl / examples / environment.pl
1 #!/usr/bin/perl
2
3 require "telnet.pl";
4
5 use strict;
6
7
8 sub set_timeofday {
9     my( $fgfs ) = shift;
10     my( $timeofday ) = shift;
11
12     &send( $fgfs, "run timeofday $timeofday" );
13 }
14
15
16 sub set_env_layer {
17     my( $fgfs ) = shift;
18     my( $layer_type ) = shift;  # boundary or aloft
19     my( $layer_num ) = shift;
20     my( $wind_hdg_deg ) = shift;
21     my( $wind_spd_kt ) = shift;
22     my( $turb_norm ) = shift;
23     my( $temp_degc ) = shift;
24     my( $press_inhg ) = shift;
25     my( $dew_degc ) = shift;
26     my( $vis ) = shift;
27     my( $elevation ) = shift;
28
29     my( $prop, $value );
30     my( %HASH ) = ();
31
32     my( $prefix ) = "/environment/config/$layer_type/entry[$layer_num]";
33     $HASH{ "$prefix/wind-from-heading-deg" } = $wind_hdg_deg;
34     $HASH{ "$prefix/wind-speed-kt" } = $wind_spd_kt;
35     $HASH{ "$prefix/turbulence/magnitude-norm" } = $turb_norm;
36     $HASH{ "$prefix/temperature-degc" } = $temp_degc;
37     $HASH{ "$prefix/pressure-sea-level-inhg" } = $press_inhg;
38     $HASH{ "$prefix/dewpoint-degc" } = $dew_degc;
39     $HASH{ "$prefix/visibility-m" } = $vis;
40     $HASH{ "$prefix/elevation-ft" } = $elevation;
41
42     foreach $prop ( keys(%HASH) ) {
43         $value = $HASH{$prop};
44         print "setting $prop = $value\n";
45         &set_prop( $fgfs, $prop, $value );
46     }
47 }
48
49
50 sub set_oat {
51     my( $fgfs ) = shift;
52     my( $oat ) = shift;
53
54     # set the outside air temperature (simply)
55     &send( $fgfs, "run set-outside-air-temp-degc $oat" );
56 }
57
58
59 sub set_pressure {
60     my( $fgfs ) = shift;
61     my( $pressure_inhg ) = shift;
62
63     my( $layer_type ) = shift;  # boundary or aloft
64     my( $layer_num ) = shift;
65     my( $wind_hdg_deg ) = shift;
66     my( $wind_spd_kt ) = shift;
67     my( $turb_norm ) = shift;
68     my( $temp_degc ) = shift;
69     my( $press_inhg ) = shift;
70     my( $dew_degc ) = shift;
71     my( $vis ) = shift;
72     my( $elevation ) = shift;
73
74     my( $prop, $value );
75     my( %HASH ) = ();
76
77     my( $i );
78
79     for ( $i = 0; $i < 3; ++$i ) {
80         my( $prefix ) = "/environment/config/boundary/entry[$i]";
81         $HASH{ "$prefix/pressure-sea-level-inhg" } = $pressure_inhg;
82     }
83
84     for ( $i = 0; $i < 5; ++$i ) {
85         my( $prefix ) = "/environment/config/aloft/entry[$i]";
86         $HASH{ "$prefix/pressure-sea-level-inhg" } = $pressure_inhg;
87     }
88
89     foreach $prop ( keys(%HASH) ) {
90         $value = $HASH{$prop};
91         print "setting $prop = $value\n";
92         &set_prop( $fgfs, $prop, $value );
93     }
94 }
95
96
97 sub set_cloud_layer {
98     my( $fgfs ) = shift;
99     my( $layer ) = shift;
100     my( $coverage ) = shift;
101     my( $elevation_ft ) = shift;
102     my( $thickness_ft ) = shift;
103     my( $transition_ft ) = shift;
104
105     my( $prop, $value );
106     my( %HASH ) = ();
107
108     $HASH{ "/environment/clouds/layer[$layer]/coverage" } = $coverage;
109     $HASH{ "/environment/clouds/layer[$layer]/elevation-ft" } = $elevation_ft;
110     $HASH{ "/environment/clouds/layer[$layer]/thickness-ft" } = $thickness_ft;
111     $HASH{ "/environment/clouds/layer[$layer]/transition-ft" } = $transition_ft;
112
113     foreach $prop ( keys(%HASH) ) {
114         $value = $HASH{$prop};
115         print "setting $prop = $value\n";
116         &set_prop( $fgfs, $prop, $value );
117     }
118 }
119
120
121 sub reinit_environment() {
122     my( $fgfs ) = shift;
123
124     &send( $fgfs, "run reinit environment" );
125 }