X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=scripts%2Fpython%2FFlightGear.py;h=26afbe8046e736be2c738997fde0cb4102052e40;hb=72c5a314e6daa5052165310a600c4a9a4c20e43f;hp=ec28425e4e65b028c70d92ad6198a2b4de0a13b9;hpb=f69a1c8f665608873b4d1d456de7156a092b9caf;p=flightgear.git diff --git a/scripts/python/FlightGear.py b/scripts/python/FlightGear.py index ec28425e4..26afbe804 100644 --- a/scripts/python/FlightGear.py +++ b/scripts/python/FlightGear.py @@ -87,7 +87,7 @@ class FlightGear: # Connect to flightgear telnet server. fg = FlightGear('myhost', 5500) # parking brake on - fg['/controls/parking-brake'] = 1 + fg['/controls/gear/brake-parking'] = 1 # Get current heading heading = fg['/orientation/heading-deg'] @@ -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(); @@ -110,48 +110,42 @@ class FlightGear: Where possible the value is converted to the equivalent Python type. """ s = self.telnet.get(key)[0] - (name,x,value,type) = s.split() + match = re.compile( '[^=]*=\s*\'([^\']*)\'\s*([^\r]*)\r').match( s ) + if not match: + return None + value,type = match.groups() + #value = match.group(1) + #type = match.group(2) if value == '': return None - else: - value = value[1:-1] # strip quote characters - #print "name=%s,value=%s,type=%s" % (name,value,type) - if type == '(double)': - return float(value) - elif type == '(int)': - return int(value) - elif type == '(bool)': - if value == 'true': - return 1 - else: - return 0 + + if type == '(double)': + return float(value) + elif type == '(int)': + return int(value) + elif type == '(bool)': + if value == 'true': + return 1 else: - return value - + return 0 + else: + return value + def __setitem__(self, key, value): - """Set a FlightGear property value. - """ + """Set a FlightGear property value.""" self.telnet.set( key, value ) def quit(self): - """Close the telnet connection to FlightGear. - """ + """Close the telnet connection to FlightGear.""" if self.telnet: self.telnet.quit() self.telnet = None def view_next(self): - """ - """ - self.telnet._putcmd('view next') - self.telnet._getresp() + #move to next view + self.telnet.set( "/command/view/next", "true") def view_prev(self): - """ - """ - self.telnet._putcmd('view prev') - self.telnet._getresp() + #move to next view + self.telnet.set( "/command/view/prev", "true") - def wait_for_prop_eq(self, prop, value, interval = 0.5): - while self.__getitem__(prop) != value: - time.sleep(interval)