Example #1
0
  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)
Example #2
0
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 )