def load(self, filename, host="localhost", port=6499): print "Tuner.load " + str(port) basename = os.path.basename(str(filename)) fileroot, ext = os.path.splitext(basename) if filename == "": error = QtGui.QErrorMessage(self) error.showMessage( "Error, you must specify an autopilot.xml config file name" ) return elif not os.path.exists(filename): error = QtGui.QErrorMessage(self) error.showMessage( filename + ": does not exist" ) return try: self.xml = ET.parse(filename) except: error = QtGui.QErrorMessage(self) error.showMessage( filename + ": xml parse error:\n" + str(sys.exc_info()[1]) ) return self.filename = str(filename) self.fileroot, ext = os.path.splitext(self.filename) root = self.xml.getroot() # Route follow parameters self.L1 = L1Controller(changefunc=self.onChange, host=host, port=port) self.L1.parse_xml( root.find('L1_controller') ) self.tabs.addTab( self.L1.get_widget(), "L1" ) # PID controller parameters for i,pid_node in enumerate(root.findall('component')): e = pid_node.find('module') if e != None and e.text != None: comp_type = e.text else: comp_type = 'unknown' print "component found:", comp_type if comp_type == 'pid_component': pid = Component(index=i, changefunc=self.onChange, host=host, port=port, type="pid") elif comp_type == 'pid_vel_component': pid = Component(index=i, changefunc=self.onChange, host=host, port=port, type="vel") else: print "unknown ..." next pid.parse_xml(pid_node) self.components.append(pid) self.tabs.addTab( pid.get_widget(), pid.get_name() )