]> git.mxchange.org Git - flightgear.git/blobdiff - scripts/python/FlightGear.py
Add aubmodels to AI objects
[flightgear.git] / scripts / python / FlightGear.py
index ec28425e4e65b028c70d92ad6198a2b4de0a13b9..26afbe8046e736be2c738997fde0cb4102052e40 100644 (file)
@@ -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)