Example #1
0
class BootloaderPage(BasePage):
    start = pyqtSignal()
    stop = pyqtSignal()

    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.nextEnabled = False

        title = QLabel("Programming Bootloader")
        switchesLabel = QLabel(
            "Set the MX2+ DIP switches for bootloader programming as shown below.\nThen power-cycle the SmartDrive."
        )
        switchesLabel.setWordWrap(True)
        self.pixMap = QtGui.QPixmap(
            resource.path('images/bootloaderProgramming.jpg'))

        self.progressBar = ProgressBar()
        self.startButton = QPushButton("Start")
        self.startButton.clicked.connect(self.onStart)
        self.startButton.show()
        self.stopButton = QPushButton("Stop")
        self.stopButton.clicked.connect(self.onStop)
        self.stopButton.hide()

        self.labels = [
            title, switchesLabel, self.progressBar, self.startButton,
            self.stopButton
        ]

        self.picture = QLabel(self)
        self.picture.setPixmap(
            self.pixMap.scaled(self.getPictureSize(), Qt.KeepAspectRatio))

        self.layout.addWidget(title)
        self.layout.addWidget(switchesLabel)
        self.layout.addWidget(self.picture)
        self.layout.addWidget(self.progressBar)
        self.layout.addWidget(self.startButton)
        self.layout.addWidget(self.stopButton)

    @pyqtSlot()
    def onEnter(self):
        self.onStart()

    @pyqtSlot()
    def reset(self):
        self.onStop()
        self.progressBar.setProgress(0, '')
        self.nextEnabled = False

    @pyqtSlot(str)
    def onBootloaderFailed(self, status):
        msg = status.replace('\n', '<br>')
        QMessageBox.critical(self, 'Bootloader Programming Failure', msg,
                             QMessageBox.Ok, QMessageBox.Ok)
        self.onStop()

    @pyqtSlot()
    def onBootloaderFinished(self):
        self.stopButton.hide()
        self.nextEnabled = True
        self.progressBar.setProgress(100, 'Bootloader Programming Complete!')
        super().finished.emit()

    @pyqtSlot(int, str)
    def onProgressUpdate(self, percent, status):
        self.progressBar.setProgress(percent, status)

    @pyqtSlot()
    def onStart(self):
        self.start.emit()
        self.startButton.hide()
        self.stopButton.show()

    @pyqtSlot()
    def onStop(self):
        self.stop.emit()
        self.startButton.show()
        self.stopButton.hide()
Example #2
0
class BLEPage(BasePage):
    start = pyqtSignal()
    stop = pyqtSignal()

    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.nextEnabled = False

        title = QLabel("Programming SmartDrive Bluetooth")
        self.progressBar = ProgressBar()
        self.startButton = QPushButton("Start")
        self.startButton.clicked.connect(self.onStart)
        self.startButton.show()
        self.stopButton = QPushButton("Stop")
        self.stopButton.clicked.connect(self.onStop)
        self.stopButton.hide()

        label = QLabel("Will now automatically program SmartDrive Bluetooth.")
        label.setWordWrap(True)

        self.sn = QLabel("S/N: ")

        self.lk = QLabel("License: ")

        self.addr = QLabel("Address: ")

        self.labels = [
            title, label, self.sn, self.lk, self.addr, self.progressBar,
            self.startButton, self.stopButton
        ]

        self.layout.addWidget(title)
        self.layout.addWidget(label)
        self.layout.addWidget(self.sn)
        self.layout.addWidget(self.lk)
        self.layout.addWidget(self.addr)
        self.layout.addWidget(self.progressBar)
        self.layout.addWidget(self.startButton)
        self.layout.addWidget(self.stopButton)

    @pyqtSlot()
    def onEnter(self):
        self.onStart()

    @pyqtSlot()
    def reset(self):
        self.onStop()
        self.progressBar.setProgress(0, '')
        self.nextEnabled = False

    @pyqtSlot(str)
    def onFirmwareFailed(self, status):
        msg = status.replace('\n', '<br>')
        QMessageBox.critical(self, 'SmartDrive Bluetooth Programming Failure',
                             msg, QMessageBox.Ok, QMessageBox.Ok)
        self.onStop()

    @pyqtSlot()
    def onFirmwareFinished(self):
        self.stopButton.hide()
        self.nextEnabled = True
        self.progressBar.setProgress(
            100, 'SmartDrive Bluetooth Programming Complete!')
        super().finished.emit()

    @pyqtSlot(int, str)
    def onProgressUpdate(self, percent, status):
        self.progressBar.setProgress(percent, status)

    @pyqtSlot(str, str, str)
    def onDeviceInfo(self, serialNumber, licenseKey, address):
        self.sn.setText('S/N: ' + serialNumber)
        self.lk.setText('License: ' + licenseKey)
        self.addr.setText('Address: ' + address)

    @pyqtSlot()
    def onStart(self):
        self.start.emit()
        self.startButton.hide()
        self.stopButton.show()

    @pyqtSlot()
    def onStop(self):
        self.stop.emit()
        self.startButton.show()
        self.stopButton.hide()