1 | # Multi-dataref query test program for the Python client library
|
---|
2 |
|
---|
3 | #------------------------------------------------------------------------------
|
---|
4 |
|
---|
5 | if __name__ == "__main__":
|
---|
6 | import sys
|
---|
7 | import time
|
---|
8 | from xplra import XPlane, ProtocolException
|
---|
9 |
|
---|
10 | xplane = XPlane()
|
---|
11 |
|
---|
12 | dontregister = "dontregister" in sys.argv
|
---|
13 |
|
---|
14 | try:
|
---|
15 | print "Connecting to X-Plane..."
|
---|
16 | xplane.connect()
|
---|
17 | print "Connected to X-Plane."
|
---|
18 | print
|
---|
19 |
|
---|
20 | wrongGetter = xplane.createMultiGetter();
|
---|
21 | wrongGetter.addInt("sim/time/local_date_days");
|
---|
22 | wrongGetter.addInt("sim/time/paused");
|
---|
23 | wrongGetter.addInt("sim/time/hello_te_lo");
|
---|
24 | wrongGetter.addFloat("sim/time/zulu_time_sec");
|
---|
25 | wrongGetter.addInt("sim/operation/prefs/replay_mode");
|
---|
26 |
|
---|
27 | print "Executing a multi-dataref getter with an invalid dataref..."
|
---|
28 | try:
|
---|
29 | wrongGetter.execute();
|
---|
30 | print ">>>>>>>>>>>>>>>>>>>>> Succeeded, but it should not have!!!!"
|
---|
31 | except ProtocolException, e:
|
---|
32 | print "Caught protocol exception: " + str(e)
|
---|
33 | print
|
---|
34 |
|
---|
35 | print "Executing a registered multi-dataref getter with an invalid dataref..."
|
---|
36 | wrongGetter.register()
|
---|
37 | try:
|
---|
38 | wrongGetter.execute();
|
---|
39 | print ">>>>>>>>>>>>>>>>>>>>> Succeeded, but it should not have!!!!"
|
---|
40 | except ProtocolException, e:
|
---|
41 | print "Caught protocol exception: " + str(e)
|
---|
42 | print
|
---|
43 |
|
---|
44 | getter = xplane.createMultiGetter()
|
---|
45 |
|
---|
46 | tailnumID = getter.addByteArray("sim/aircraft/view/acf_tailnum", 40)
|
---|
47 | daysID = getter.addInt("sim/time/local_date_days")
|
---|
48 | zuluSecID = getter.addFloat("sim/time/zulu_time_sec")
|
---|
49 | pausedID = getter.addInt("sim/time/paused")
|
---|
50 | latitudeID = getter.addDouble("sim/flightmodel/position/latitude")
|
---|
51 | longitudeID = getter.addDouble("sim/flightmodel/position/longitude")
|
---|
52 | replayID = getter.addInt("sim/operation/prefs/replay_mode")
|
---|
53 | overspeedID = getter.addInt("sim/flightmodel/failures/over_vne")
|
---|
54 | stalledID = getter.addInt("sim/flightmodel/failures/stallwarning")
|
---|
55 | onTheGroundID = getter.addInt("sim/flightmodel/failures/onground_any")
|
---|
56 | emptyWeightID = getter.addFloat("sim/aircraft/weight/acf_m_empty")
|
---|
57 | payloadWeightID = getter.addFloat("sim/flightmodel/weight/m_fixed")
|
---|
58 | grossWeightID = getter.addFloat("sim/flightmodel/weight/m_total")
|
---|
59 | headingID = getter.addFloat("sim/flightmodel/position/psi")
|
---|
60 | pitchID = getter.addFloat("sim/flightmodel/position/theta")
|
---|
61 | bankID = getter.addFloat("sim/flightmodel/position/phi")
|
---|
62 | iasID = getter.addFloat("sim/flightmodel/position/indicated_airspeed2")
|
---|
63 | machID = getter.addFloat("sim/flightmodel/misc/machno")
|
---|
64 | groundSpeedID = getter.addFloat("sim/flightmodel/position/groundspeed")
|
---|
65 | vsID = getter.addFloat("sim/flightmodel/position/vh_ind_fpm2")
|
---|
66 | radioAltitudeID = getter.addFloat("sim/flightmodel/position/y_agl")
|
---|
67 | altitudeID = getter.addFloat("sim/flightmodel/position/elevation")
|
---|
68 | gLoadID = getter.addFloat("sim/flightmodel/forces/g_nrml")
|
---|
69 | flapsControlID = getter.addFloat("sim/flightmodel/controls/flaprqst")
|
---|
70 | flapsLeftID = getter.addFloat("sim/flightmodel/controls/flaprat")
|
---|
71 | flapsRightID = getter.addFloat("sim/flightmodel/controls/flap2rat")
|
---|
72 | navLightsID = getter.addInt("sim/cockpit/electrical/nav_lights_on")
|
---|
73 | beaconLightsID = getter.addInt("sim/cockpit/electrical/beacon_lights_on")
|
---|
74 | strobeLightsID = getter.addInt("sim/cockpit/electrical/strobe_lights_on")
|
---|
75 | landingLightsID = getter.addInt("sim/cockpit/electrical/landing_lights_on")
|
---|
76 | pitotID = getter.addInt("sim/cockpit/switches/pitot_heat_on")
|
---|
77 | parkingID = getter.addFloat("sim/flightmodel/controls/parkbrake")
|
---|
78 | gearControlID = getter.addInt("sim/cockpit2/controls/gear_handle_down")
|
---|
79 | noseGearID = getter.addFloatArray("sim/flightmodel2/gear/deploy_ratio", 1)
|
---|
80 | altimeterID = getter.addFloat("sim/cockpit/misc/barometer_setting")
|
---|
81 | qnhID = getter.addFloat("sim/flightmodel/misc/Qstatic")
|
---|
82 | navTypesID = getter.addIntArray("sim/cockpit/radios/nav_type", 6)
|
---|
83 | busVoltsID = getter.addFloatArray("sim/cockpit2/electrical/bus_volts", 4)
|
---|
84 |
|
---|
85 | if dontregister:
|
---|
86 | getter.finalize()
|
---|
87 | else:
|
---|
88 | print "Registering getter..."
|
---|
89 | getter.register()
|
---|
90 | print "Registered getter."
|
---|
91 | print
|
---|
92 |
|
---|
93 | while True:
|
---|
94 | getter.execute()
|
---|
95 | print "tail number: '%s', days: %d, zuluSec: %f" % \
|
---|
96 | (getter.getString(tailnumID), getter[daysID], getter[zuluSecID])
|
---|
97 | print "paused=%d, replay=%d, overspeed=%d, stalled=%d, onTheGround=%d" % \
|
---|
98 | (getter[pausedID], getter[replayID], getter[overspeedID],
|
---|
99 | getter[stalledID], getter[onTheGroundID])
|
---|
100 | print "emptyWeight=%f, payloadWeight=%f, grossWeight=%f" % \
|
---|
101 | (getter[emptyWeightID], getter[payloadWeightID],
|
---|
102 | getter[grossWeightID])
|
---|
103 | print "latitude=%f, longitude=%f, radioAltitude=%f, altitude=%f, gLoad=%f" % \
|
---|
104 | (getter[latitudeID], getter[longitudeID],
|
---|
105 | getter[radioAltitudeID]/.3048, getter[altitudeID]/.3048,
|
---|
106 | getter[gLoadID])
|
---|
107 | print "heading=%f, pitch=%f, bank=%f, ias=%f, mach=%f, groundSpeed=%f, vs=%f" % \
|
---|
108 | (getter[headingID], getter[pitchID], getter[bankID],
|
---|
109 | getter[iasID], getter[machID], getter[groundSpeedID],
|
---|
110 | getter[vsID]);
|
---|
111 | print "flapsControl=%f, flapsLeft=%f, flapsRight=%f" % \
|
---|
112 | (getter[flapsControlID], getter[flapsLeftID],
|
---|
113 | getter[flapsRightID]);
|
---|
114 | print "Lights: NAV: %d, beacon: %d, strobe: %d, landing: %d" % \
|
---|
115 | (getter[navLightsID], getter[beaconLightsID],
|
---|
116 | getter[strobeLightsID], getter[landingLightsID]);
|
---|
117 | print "pitot: %d, parking: %f, gearControl: %d, noseGear: %f" % \
|
---|
118 | (getter[pitotID], getter[parkingID],
|
---|
119 | getter[gearControlID], getter[noseGearID][0]);
|
---|
120 | print "altimeter: %f, qnh: %f" % \
|
---|
121 | (getter[altimeterID], getter[qnhID]);
|
---|
122 | print "NAV types:", getter[navTypesID]
|
---|
123 | print "bus voltages:", getter[busVoltsID]
|
---|
124 | print
|
---|
125 | time.sleep(1.0)
|
---|
126 |
|
---|
127 | except Exception as e:
|
---|
128 | print ">>>>>>>>>>>>>>>>>>>>>> Exception caught:", str(e)
|
---|
129 | finally:
|
---|
130 | xplane.disconnect()
|
---|