From 1d15a9272b962f32c07f22f9ee56d014fffa2930 Mon Sep 17 00:00:00 2001 From: mfranz Date: Sun, 29 Oct 2006 12:34:26 +0000 Subject: [PATCH] George PATTERSON: "Flightgear.py - Added the procedures view_next and view_prev demo.py - altered the wait five seconds to the new property path and allowed for the script to be started after five seconds of simulation file (/sim/time/elapsed-sec). - the section of code was changed to a pythonism as python does not support do-while loops, instead you break out of a continuous loop. - Commented out the fg.wait_for_prop_eq() method as I haven't rewritten that part of the code yet. Not sure of the best way to do that. Those lines may not be necessary any more." mf: removed trailing spaces; I updated the pyc, too, but I really think it shouldn't be in CVS at all.(?) --- scripts/python/FlightGear.py | 13 +++++++++++-- scripts/python/FlightGear.pyc | Bin 6550 -> 5173 bytes scripts/python/demo.py | 22 +++++++++++++--------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/scripts/python/FlightGear.py b/scripts/python/FlightGear.py index 9b71d57da..26afbe804 100644 --- a/scripts/python/FlightGear.py +++ b/scripts/python/FlightGear.py @@ -100,7 +100,7 @@ class FlightGear: except socket.error, msg: self.telnet = None raise socket.error, msg - + def __del__(self): # Ensure telnet connection is closed cleanly. self.quit(); @@ -130,7 +130,7 @@ class FlightGear: return 0 else: return value - + def __setitem__(self, key, value): """Set a FlightGear property value.""" self.telnet.set( key, value ) @@ -140,3 +140,12 @@ class FlightGear: if self.telnet: self.telnet.quit() self.telnet = None + + def view_next(self): + #move to next view + self.telnet.set( "/command/view/next", "true") + + def view_prev(self): + #move to next view + self.telnet.set( "/command/view/prev", "true") + diff --git a/scripts/python/FlightGear.pyc b/scripts/python/FlightGear.pyc index 65a976c2acce54c636d058f6af14588bb52937d9..c58cba9a3e7471e5a0c047c6cbe33c4649daf690 100644 GIT binary patch literal 5173 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 literal 6550 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 Xeb2EPd=_7+`3GOC-IhD;9=-G*#FSrH diff --git a/scripts/python/demo.py b/scripts/python/demo.py index 8f32c8232..a0e986c63 100644 --- a/scripts/python/demo.py +++ b/scripts/python/demo.py @@ -5,8 +5,12 @@ def main(): fg = FlightGear('localhost', 5500) # Wait five seconds for simulator to settle down - while fg['/sim/time/elapsed-ms'] < 5000: + while 1: + if fg['/sim/time/elapsed-sec'] > 5: + break time.sleep(1.0) + print fg['/sim/time/elapsed-sec'] + # parking brake on fg['/controls/parking-brake'] = 1 @@ -17,14 +21,14 @@ def main(): fg.view_next() fg['/sim/current-view/goal-heading-offset-deg'] = 180.0 - fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 180.0) - + #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 180.0) + fg['/sim/current-view/goal-heading-offset-deg'] = 90.0 - fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 90.0) - + #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 90.0) + fg['/sim/current-view/goal-heading-offset-deg'] = 0.0 - fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 0.0) - + #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 0.0) + time.sleep(2.0) # Switch back to cockpit view @@ -34,9 +38,9 @@ def main(): # Flaps to take off position fg['/controls/flaps'] = 0.34 - fg.wait_for_prop_eq('/surface-positions/flap-pos-norm', 0.34) + #fg.wait_for_prop_eq('/surface-positions/flap-pos-norm', 0.34) fg.quit() - + if __name__ == '__main__': main() -- 2.39.5