def __init__(self, cfgfile): QtGui.QWidget.__init__(self, None) self.config_file = cfgfile self.config = pyFuriousConfig.parseConfig(self.config_file) self.board = FuriousBoard() self.board.open(self.config['port']) if not self.board.isReady(): QtGui.QMessageBox.information( self, "Error", "Unable to connect to Furious board on %s." % self.config['port'], QtGui.QMessageBox.Ok ) QtGui.qApp.exit(1) quitBtn = QtGui.QPushButton("Quit") self.connect(quitBtn, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()')) saveBtn = QtGui.QPushButton("Save") self.connect(saveBtn, QtCore.SIGNAL('clicked()'), self.saveConfig) buttons = QtGui.QHBoxLayout() buttons.addWidget(saveBtn) buttons.addWidget(quitBtn) layout = QtGui.QVBoxLayout() statusLbl = QtGui.QLabel("Connected on %s" % self.config['port']) layout.addWidget(statusLbl) for sname in self.config['servo']: servo = self.config['servo'][sname] sc = ServoControl(self, sname, servo) layout.addWidget(sc) layout.addLayout(buttons) self.setLayout(layout)
class CalibrationScreen(QtGui.QWidget): """ The main window in this application. """ def __init__(self, cfgfile): QtGui.QWidget.__init__(self, None) self.config_file = cfgfile self.config = pyFuriousConfig.parseConfig(self.config_file) self.board = FuriousBoard() self.board.open(self.config['port']) if not self.board.isReady(): QtGui.QMessageBox.information( self, "Error", "Unable to connect to Furious board on %s." % self.config['port'], QtGui.QMessageBox.Ok ) QtGui.qApp.exit(1) quitBtn = QtGui.QPushButton("Quit") self.connect(quitBtn, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()')) saveBtn = QtGui.QPushButton("Save") self.connect(saveBtn, QtCore.SIGNAL('clicked()'), self.saveConfig) buttons = QtGui.QHBoxLayout() buttons.addWidget(saveBtn) buttons.addWidget(quitBtn) layout = QtGui.QVBoxLayout() statusLbl = QtGui.QLabel("Connected on %s" % self.config['port']) layout.addWidget(statusLbl) for sname in self.config['servo']: servo = self.config['servo'][sname] sc = ServoControl(self, sname, servo) layout.addWidget(sc) layout.addLayout(buttons) self.setLayout(layout) def updateBoardState(self, servo_id, val): self.board.setServo(int(servo_id), val) self.board.update() def saveConfig(self): pyFuriousConfig.saveConfig(self.config, self.config_file) QtGui.QMessageBox.information( self, "Message", "Your configuration has been saved to %s." % self.config_file, QtGui.QMessageBox.Ok )