Пример #1
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        subpanel.__init__(self)
        self.ui = Ui_vehicleConfiguration()
        self.ui.setupUi(self)
        self.image = QtGui.QPixmap("./resources/Quad+.png")

        self.ui.updateButton.clicked.connect(self.updateConfiguration)
 def __init__(self):
     QtGui.QWidget.__init__(self)
     subpanel.__init__(self)
     self.ui = Ui_vehicleConfiguration()
     self.ui.setupUi(self)
     self.image = QtGui.QPixmap("./resources/Quad+.png")
     
     self.ui.updateButton.clicked.connect(self.updateConfiguration)
class vehicleConfiguration(QtGui.QWidget, subpanel):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        subpanel.__init__(self)
        self.ui = Ui_vehicleConfiguration()
        self.ui.setupUi(self)
        self.image = QtGui.QPixmap("./resources/Quad+.png")
        
        self.ui.updateButton.clicked.connect(self.updateConfiguration)

    def resizeEvent(self, event):
        self.displayVehicle()
        
    def displayVehicle(self):
        width = self.ui.configView.width() - 50
        height = self.ui.configView.height() - 50
        scaledImage = self.image.scaled(width, height, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
        self.ui.configView.setPixmap(scaledImage)
        self.ui.configView.setAlignment(QtCore.Qt.AlignCenter)
        
    def start(self, xmlSubPanel, boardConfiguration):
        self.boardConfiguration = boardConfiguration
        if self.comm.isConnected():       
            for spec in self.boardConfiguration:
                if "Flight Config: " in spec:
                    vehicle = spec.split("Flight Config: ")
                    vehicleFile = self.xml.find(xmlSubPanel + "/VehicleGraphics/Vehicle/[@Name='" + vehicle[1] + "']")
                    self.image = QtGui.QPixmap(vehicleFile.text)
                    self.displayVehicle()
                    break
            
            # Populate configuration list
            rowCount = len(self.boardConfiguration)
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(rowCount)
            self.ui.configSpecs.setColumnCount(1)
            
            for currentRow in range(rowCount):
                spec = QtGui.QTableWidgetItem("   " + self.boardConfiguration[currentRow])
                spec.setTextColor(QtCore.Qt.white)
                spec.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(currentRow, 0, spec)
            self.ui.configSpecs.resizeColumnToContents(0)
        else:
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(2)
            self.ui.configSpecs.setColumnCount(1)
            messageList = ["Connect AeroQuad to Retrieve", "Vehicle Configuration..."]
            for row in range(len(messageList)):
                message = QtGui.QTableWidgetItem(messageList[row])                           
                message.setTextColor(QtCore.Qt.white)
                message.setTextAlignment(QtCore.Qt.AlignCenter)
                message.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(row, 0, message)
                self.ui.configSpecs.resizeColumnToContents(0)
        
    def updateConfiguration(self):
        if self.comm.isConnected():
            self.status("Updating Vehicle Status...")
            configCommand = self.xml.find(".Settings/BoardConfiguration").text
            self.comm.write(configCommand)
            rowCount = int(self.comm.waitForRead())
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(rowCount)
            self.ui.configSpecs.setColumnCount(1)
            for currentRow in range(rowCount):
                config = self.comm.waitForRead()
                spec = QtGui.QTableWidgetItem("   " + config)
                spec.setTextColor(QtCore.Qt.white)
                spec.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(currentRow, 0, spec)
            self.ui.configSpecs.resizeColumnToContents(0)
            self.status("Vehicle Status Updated")
        else:
            self.status("Connect to the AeroQuad first to update status.")
Пример #4
0
class vehicleConfiguration(QtGui.QWidget, subpanel):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        subpanel.__init__(self)
        self.ui = Ui_vehicleConfiguration()
        self.ui.setupUi(self)
        self.image = QtGui.QPixmap("./resources/Quad+.png")

        self.ui.updateButton.clicked.connect(self.updateConfiguration)

    def resizeEvent(self, event):
        self.displayVehicle()

    def displayVehicle(self):
        width = self.ui.configView.width() - 50
        height = self.ui.configView.height() - 50
        scaledImage = self.image.scaled(width, height,
                                        QtCore.Qt.KeepAspectRatio,
                                        QtCore.Qt.SmoothTransformation)
        self.ui.configView.setPixmap(scaledImage)
        self.ui.configView.setAlignment(QtCore.Qt.AlignCenter)

    def start(self, xmlSubPanel, boardConfiguration):
        self.boardConfiguration = boardConfiguration
        if self.comm.isConnected():
            vehicle = self.boardConfiguration["Flight Config"]
            vehicleFile = self.xml.find(xmlSubPanel +
                                        "/VehicleGraphics/Vehicle/[@Name='" +
                                        vehicle + "']")
            self.image = QtGui.QPixmap(vehicleFile.text)
            self.displayVehicle()

            # Populate configuration list
            rowCount = len(self.boardConfiguration)
            configName = self.boardConfiguration.keys()
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(rowCount)
            self.ui.configSpecs.setColumnCount(1)

            for currentRow in range(rowCount):
                spec = QtGui.QTableWidgetItem(
                    "   " + configName[currentRow] + ": " +
                    self.boardConfiguration[configName[currentRow]])
                spec.setTextColor(QtCore.Qt.white)
                spec.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(currentRow, 0, spec)
            self.ui.configSpecs.resizeColumnToContents(0)
        else:
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(2)
            self.ui.configSpecs.setColumnCount(1)
            messageList = [
                "Connect AeroQuad to Retrieve", "Vehicle Configuration..."
            ]
            for row in range(len(messageList)):
                message = QtGui.QTableWidgetItem(messageList[row])
                message.setTextColor(QtCore.Qt.white)
                message.setTextAlignment(QtCore.Qt.AlignCenter)
                message.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(row, 0, message)
                self.ui.configSpecs.resizeColumnToContents(0)

    def updateConfiguration(self):
        if self.comm.isConnected():
            self.status("Updating Vehicle Status...")
            configCommand = self.xml.find(".Settings/BoardConfiguration").text
            self.comm.write(configCommand)
            rowCount = int(self.comm.waitForRead())
            self.ui.configSpecs.clear()
            self.ui.configSpecs.setRowCount(rowCount)
            self.ui.configSpecs.setColumnCount(1)
            for currentRow in range(rowCount):
                config = self.comm.waitForRead()
                spec = QtGui.QTableWidgetItem("   " + config)
                spec.setTextColor(QtCore.Qt.white)
                spec.setFlags(QtCore.Qt.ItemIsTristate)
                self.ui.configSpecs.setItem(currentRow, 0, spec)
            self.ui.configSpecs.resizeColumnToContents(0)
            self.status("Vehicle Status Updated")
        else:
            self.status("Connect to the AeroQuad first to update status.")