def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) # TODO: figure out way to configure for different comm types (TCP, MAVLINK, etc) self.comm = AQSerial() # Default main window conditions self.ui.buttonDisconnect.setEnabled(False) self.ui.buttonConnect.setEnabled(True) self.ui.comPort.setEnabled(True) self.ui.baudRate.setEnabled(True) self.ui.status.setText("Not connected to the AeroQuad") self.availablePorts = [] self.updateComPortSelection() self.updateBaudRates() self.boardConfiguration = {} self.manualConnect = True # Update comm port combo box to use last used comm port defaultComPort = xml.find("./Settings/DefaultComPort").text commIndex = self.ui.comPort.findText(defaultComPort) if commIndex == -1: commIndex = 0 self.ui.comPort.setCurrentIndex(commIndex) # Load splash screen splash = Ui_splashScreen() splash.setupUi(splash) self.ui.subPanel.addWidget(splash) # Dynamically configure board type menu and subPanel menu from XML configuration file self.configureSubPanelMenu() self.activeSubPanel = None self.activeSubPanelName = "" # Connect GUI slots and signals self.ui.comPort.return_handler = self.connectBoard self.ui.buttonConnect.clicked.connect(self.connectBoard) self.ui.buttonDisconnect.clicked.connect(self.disconnectBoard) self.ui.actionExit.triggered.connect(QtGui.qApp.quit) self.ui.comPort.currentIndexChanged.connect(self.updateDetectedPorts) self.ui.actionBootUpDelay.triggered.connect(self.updateBootUpDelay) self.ui.actionCommTimeout.triggered.connect(self.updateCommTimeOut)