示例#1
0
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.id = idPg

    self.labels = {'F_CPU': "CPU Clock Rate:", 'CPU': "Processor Type:"}
    self.clocks = []
    self.processors = []

    sz = wx.GridBagSizer()
    sz.AddSpacer((20, 40), pos = (0, 0))

    k = 'F_CPU'
    ch = self.addChoice(k, self.clocks, 0, 100, self.onChoice, size = (140, -1))
    sz.Add(ch, pos = (1, 1))
    sz.AddSpacer((100, 10), pos = (1, 2))

    k = 'CPU'
    ch = self.addChoice(k, self.processors, 0, 100, self.onChoice,
                        size = (140, -1))
    sz.Add(ch, pos = (1, 3))

    self.SetSizer(sz)
    self.enableAll(False)
示例#2
0
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    if len(self.clocks) > 0:
      self.setChoice('F_CPU', cfgValues, self.clocks[0])
    if len(self.processors) > 0:
      self.setChoice('CPU', cfgValues, self.processors[0])
示例#3
0
  def __init__(self, parent, nb, idPg, heatersPage, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.heatersPage = heatersPage
    self.font = font
    self.id = idPg

    self.sensorTypeKeys = {'TT_MAX6675': 'TEMP_MAX6675',
                           'TT_THERMISTOR': 'TEMP_THERMISTOR',
                           'TT_AD595': 'TEMP_AD595', 'TT_PT100': 'TEMP_PT100',
                           'TT_INTERCOM': 'TEMP_INTERCOM'}
    self.labels = {'TEMP_MAX6675': "MAX6675", 'TEMP_THERMISTOR': "Thermistor",
                   'TEMP_AD595': "AD595", 'TEMP_PT100': "PT100",
                   'TEMP_INTERCOM': "Intercom"}

    self.validPins = pinNames

    sz = wx.GridBagSizer()
    sz.AddSpacer((10, 10), pos = (0, 0))

    self.sensors = []

    self.lb = SensorList(self, font)
    sz.Add(self.lb, pos = (1, 1))
    sz.AddSpacer((20, 20), pos = (1, 2))

    bsz = wx.BoxSizer(wx.VERTICAL)
    self.bAdd = wx.Button(self, wx.ID_ANY, "Add", size = BSIZESMALL)
    self.bAdd.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bAdd.SetFont(font)
    self.Bind(wx.EVT_BUTTON, self.doAdd, self.bAdd)
    self.bAdd.Enable(False)
    self.bAdd.SetToolTipString("Add a sensor to the configuration.")

    bsz.Add(self.bAdd)

    bsz.AddSpacer((10, 10))
    self.bModify = wx.Button(self, wx.ID_ANY, "Modify", size = BSIZESMALL)
    self.bModify.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bModify.SetFont(font)
    self.bModify.Enable(False)
    self.Bind(wx.EVT_BUTTON, self.doModify, self.bModify)
    bsz.Add(self.bModify)
    self.bModify.SetToolTipString("Modify the selected temperature sensor.")

    bsz.AddSpacer((10, 10))
    self.bDelete = wx.Button(self, wx.ID_ANY, "Delete", size = BSIZESMALL)
    self.bDelete.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bDelete.SetFont(font)
    self.bDelete.Enable(False)
    self.Bind(wx.EVT_BUTTON, self.doDelete, self.bDelete)
    bsz.Add(self.bDelete)
    self.bDelete.SetToolTipString("Remove the selected temperature sensor "
                                  "from the configuration.")

    sz.Add(bsz, pos = (1, 3))

    self.SetSizer(sz)
    self.enableAll(False)
示例#4
0
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.id = idPg
        self.defaultBaud = "115200"

        self.bauds = ["19200", "38400", "57600", "115200", "230400", "250000"]

        self.labels = {
            "XONXOFF": "XON/XOFF Flow Control",
            "BAUD": "Baud Rate:",
            "USB_SERIAL": "USB Serial",
        }

        sz = wx.GridBagSizer()
        sz.Add((20, 40), pos=(0, 0))

        k = "USB_SERIAL"
        cb = self.addCheckBox(k, self.onUSBCheckBox)
        sz.Add(cb, pos=(1, 1))

        ch = self.addChoice("BAUD", self.bauds,
                            self.bauds.index(self.defaultBaud), 80,
                            self.onChoice)
        sz.Add(ch, pos=(1, 3))

        cb = self.addCheckBox("XONXOFF", self.onCheckBox)
        sz.Add(cb, pos=(3, 3))

        sz.Add((100, 10), pos=(2, 2))

        self.SetSizer(sz)
        self.enableAll(False)
示例#5
0
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        if len(self.clocks) > 0:
            self.setChoice('F_CPU', cfgValues, self.clocks[0])
        if len(self.processors) > 0:
            self.setChoice('CPU', cfgValues, self.processors[0])
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.id = idPg
    self.defaultBaud = '115200'

    self.bauds = ['19200', '38400', '57600', self.defaultBaud]

    self.labels = {'XONXOFF': "XON/XOFF Flow Control", 'BAUD': "Baud Rate:",
                   'USB_SERIAL': "USB Serial"}

    sz = wx.GridBagSizer()
    sz.AddSpacer((20, 40), pos = (0, 0))

    k = 'USB_SERIAL'
    cb = self.addCheckBox(k, self.onUSBCheckBox)
    sz.Add(cb, pos = (1, 1))

    ch = self.addChoice('BAUD', self.bauds, self.bauds.index(self.defaultBaud),
                        80, self.onChoice)
    sz.Add(ch, pos = (1, 3))

    cb = self.addCheckBox('XONXOFF', self.onCheckBox)
    sz.Add(cb, pos = (3, 3))

    sz.AddSpacer((100, 10), pos = (2, 2))

    self.SetSizer(sz)
    self.enableAll(False)
示例#7
0
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.id = idPg

        self.labels = {'F_CPU': "CPU Clock Rate:", 'CPU': "Processor Type:"}
        self.clocks = []
        self.processors = []

        sz = wx.GridBagSizer()
        sz.AddSpacer((20, 40), pos=(0, 0))

        k = 'F_CPU'
        ch = self.addChoice(k,
                            self.clocks,
                            0,
                            100,
                            self.onChoice,
                            size=(140, -1))
        sz.Add(ch, pos=(1, 1))
        sz.AddSpacer((100, 10), pos=(1, 2))

        k = 'CPU'
        ch = self.addChoice(k,
                            self.processors,
                            0,
                            100,
                            self.onChoice,
                            size=(140, -1))
        sz.Add(ch, pos=(1, 3))

        self.SetSizer(sz)
        self.enableAll(False)
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.id = idPg
        self.defaultBaud = '115200'

        self.bauds = ['19200', '38400', '57600', self.defaultBaud]

        self.labels = {
            'XONXOFF': "XON/XOFF Flow Control",
            'BAUD': "Baud Rate:",
            'USB_SERIAL': "USB Serial"
        }

        sz = wx.GridBagSizer()
        sz.AddSpacer((20, 40), pos=(0, 0))

        k = 'USB_SERIAL'
        cb = self.addCheckBox(k, self.onUSBCheckBox)
        sz.Add(cb, pos=(1, 1))

        ch = self.addChoice('BAUD', self.bauds,
                            self.bauds.index(self.defaultBaud), 80,
                            self.onChoice)
        sz.Add(ch, pos=(1, 3))

        cb = self.addCheckBox('XONXOFF', self.onCheckBox)
        sz.Add(cb, pos=(3, 3))

        sz.AddSpacer((100, 10), pos=(2, 2))

        self.SetSizer(sz)
        self.enableAll(False)
示例#9
0
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.id = idPg

    self.labels = {'DISPLAY_BUS': "Display Bus:",
                   'DISPLAY_TYPE': "Display Type:",
                   'DISPLAY_BUS_4BIT': "Direct with 4 pins",
                   'DISPLAY_BUS_8BIT': "Direct with 8 pins",
                   'DISPLAY_BUS_I2C': "I²C ( = TWI)",
                   'DISPLAY_BUS_SPI': "SPI",
                   'DISPLAY_TYPE_SSD1306': "SSD1306 O-LED, 128x32",
                   'DISPLAY_TYPE_LCD1302': "LCD 1302"}

    sz = wx.GridBagSizer()
    sz.AddSpacer((20, 40), pos = (0, 0))

    ch = self.addBoolChoice('DISPLAY_BUS', True, 100, self.onBusChoice,
                            size = (160, -1))
    sz.Add(ch, pos = (1, 1))
    sz.AddSpacer((100, 10), pos = (1, 2))

    ch = self.addBoolChoice('DISPLAY_TYPE', False, 100, self.onChoice,
                            size = (200, -1))
    sz.Add(ch, pos = (1, 3))

    self.SetSizer(sz)
    self.enableAll(False)
示例#10
0
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.font = font
    self.id = idPg

    self.labels = {'FORCE_SOFTWARE_PWM':"Force software PWM"}

    sz = wx.GridBagSizer()
    sz.AddSpacer((30, 30), pos = (0, 0))

    self.heaters = []
    self.validPins = pinNames

    self.lb = HeaterList(self, font)
    sz.Add(self.lb, pos = (1, 1))
    sz.AddSpacer((20, 20), pos = (1, 2))

    k = 'FORCE_SOFTWARE_PWM'
    cb = self.addCheckBox(k, self.onCheckBox)

    sz.Add(cb, pos = (2, 1))
    sz.AddSpacer((20, 20), pos = (2, 2))

    bsz = wx.BoxSizer(wx.VERTICAL)

    self.bAdd = wx.Button(self, wx.ID_ANY, "Add", size = BSIZESMALL)
    self.bAdd.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bAdd.SetFont(font)
    self.Bind(wx.EVT_BUTTON, self.doAdd, self.bAdd)
    self.bAdd.SetToolTipString("Add a heater to the configuration.")
    bsz.Add(self.bAdd)

    bsz.AddSpacer((10, 10))

    self.bModify = wx.Button(self, wx.ID_ANY, "Modify", size = BSIZESMALL)
    self.bModify.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bModify.SetFont(font)
    self.bModify.Enable(False)
    self.Bind(wx.EVT_BUTTON, self.doModify, self.bModify)
    self.bModify.SetToolTipString("Modify the selected heater.")
    bsz.Add(self.bModify)

    bsz.AddSpacer((10, 10))

    self.bDelete = wx.Button(self, wx.ID_ANY, "Delete", size = BSIZESMALL)
    self.bDelete.SetBackgroundColour(self.deco.getBackgroundColour())
    self.bDelete.SetFont(font)
    self.bDelete.Enable(False)
    self.Bind(wx.EVT_BUTTON, self.doDelete, self.bDelete)
    self.bDelete.SetToolTipString("Remove the selected heater from the "
                                  "configuration.")
    bsz.Add(self.bDelete)

    sz.Add(bsz, pos = (1, 3))

    self.SetSizer(sz)
    self.enableAll(False)
示例#11
0
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.font = font
        self.id = idPg

        self.labels = {'FORCE_SOFTWARE_PWM': "Force software PWM"}

        sz = wx.GridBagSizer()
        sz.AddSpacer((30, 30), pos=(0, 0))

        self.heaters = []
        self.validPins = pinNames

        self.lb = HeaterList(self, font)
        sz.Add(self.lb, pos=(1, 1))
        sz.AddSpacer((20, 20), pos=(1, 2))

        k = 'FORCE_SOFTWARE_PWM'
        cb = self.addCheckBox(k, self.onCheckBox)

        sz.Add(cb, pos=(2, 1))
        sz.AddSpacer((20, 20), pos=(2, 2))

        bsz = wx.BoxSizer(wx.VERTICAL)

        self.bAdd = wx.Button(self, wx.ID_ANY, "Add", size=BSIZESMALL)
        self.bAdd.SetBackgroundColour(self.deco.getBackgroundColour())
        self.bAdd.SetFont(font)
        self.Bind(wx.EVT_BUTTON, self.doAdd, self.bAdd)
        self.bAdd.SetToolTipString("Add a heater to the configuration.")
        bsz.Add(self.bAdd)

        bsz.AddSpacer((10, 10))

        self.bModify = wx.Button(self, wx.ID_ANY, "Modify", size=BSIZESMALL)
        self.bModify.SetBackgroundColour(self.deco.getBackgroundColour())
        self.bModify.SetFont(font)
        self.bModify.Enable(False)
        self.Bind(wx.EVT_BUTTON, self.doModify, self.bModify)
        self.bModify.SetToolTipString("Modify the selected heater.")
        bsz.Add(self.bModify)

        bsz.AddSpacer((10, 10))

        self.bDelete = wx.Button(self, wx.ID_ANY, "Delete", size=BSIZESMALL)
        self.bDelete.SetBackgroundColour(self.deco.getBackgroundColour())
        self.bDelete.SetFont(font)
        self.bDelete.Enable(False)
        self.Bind(wx.EVT_BUTTON, self.doDelete, self.bDelete)
        self.bDelete.SetToolTipString("Remove the selected heater from the "
                                      "configuration.")
        bsz.Add(self.bDelete)

        sz.Add(bsz, pos=(1, 3))

        self.SetSizer(sz)
        self.enableAll(False)
示例#12
0
    def onBusChoice(self, evt):
        choice = self.boolChoices['DISPLAY_BUS']
        if choice.GetClientData(choice.GetSelection()):
            self.boolChoices['DISPLAY_TYPE'].Enable(True)
        else:
            self.boolChoices['DISPLAY_TYPE'].Enable(False)

        Page.onChoice(self, evt)
示例#13
0
  def onBusChoice(self, evt):
    choice = self.boolChoices['DISPLAY_BUS']
    if choice.GetClientData(choice.GetSelection()):
      self.boolChoices['DISPLAY_TYPE'].Enable(True)
    else:
      self.boolChoices['DISPLAY_TYPE'].Enable(False)

    Page.onChoice(self, evt)
示例#14
0
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.id = idPg

        self.labels = {
            "DISPLAY_BUS": "Display Bus:",
            "DISPLAY_TYPE": "Display Type:",
            "DISPLAY_BUS_4BIT": "Direct with 4 pins",
            "DISPLAY_BUS_8BIT": "Direct with 8 pins",
            "DISPLAY_BUS_I2C": "I²C ( = TWI)",
            "DISPLAY_BUS_SPI": "SPI",
            "DISPLAY_TYPE_SSD1306": "SSD1306 O-LED, 128x32 pixels",
            "DISPLAY_TYPE_HD44780": "HD44780 or 1602A, 16x2 characters",
            "DISPLAY_RS_PIN": "RS pin",
            "DISPLAY_RW_PIN": "R/W pin",
            "DISPLAY_E_PIN": "E pin",
            "DISPLAY_D4_PIN": "D4 pin",
            "DISPLAY_D5_PIN": "D5 pin",
            "DISPLAY_D6_PIN": "D6 pin",
            "DISPLAY_D7_PIN": "D7 pin",
        }

        sz = wx.GridBagSizer()
        sz.Add((20, 40), pos=(0, 0))

        ch = self.addBoolChoice(
            "DISPLAY_BUS", True, 100, self.onBusChoice, size=(160, -1)
        )
        sz.Add(ch, pos=(1, 1))
        sz.Add((100, 10), pos=(1, 2))

        ch = self.addBoolChoice(
            "DISPLAY_TYPE", False, 100, self.onChoice, size=(240, -1)
        )
        sz.Add(ch, pos=(1, 3))

        b = wx.StaticBox(self, wx.ID_ANY, "Direct 4-bit Bus Pins:")
        b.SetFont(font)
        self.pinbox = wx.StaticBoxSizer(b, wx.VERTICAL)
        self.pinbox.Add((5, 5))
        for k in (
            "DISPLAY_RS_PIN",
            "DISPLAY_RW_PIN",
            "DISPLAY_E_PIN",
            "DISPLAY_D4_PIN",
            "DISPLAY_D5_PIN",
            "DISPLAY_D6_PIN",
            "DISPLAY_D7_PIN",
        ):
            tc = self.addPinChoice(k, 200)
            self.pinbox.Add(tc)
            self.pinbox.Add((5, 5))
        sz.Add(self.pinbox, pos=(3, 1))

        self.SetSizer(sz)
        self.enableAll(False)
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        k = 'BAUD'
        self.setChoice(k, cfgValues, self.defaultBaud)

        if self.checkBoxes['USB_SERIAL'].IsChecked():
            self.checkBoxes['XONXOFF'].Enable(False)
            self.choices['BAUD'].Enable(False)
示例#16
0
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    for k in self.choices.keys():
      if k in cfgValues.keys():
        self.choicesOriginal[k] = cfgValues[k]
        self.setChoice(k, cfgValues, "-")
      else:
        print "Key " + k + " not found in config data."
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    k = 'BAUD'
    self.setChoice(k, cfgValues, self.defaultBaud)

    if self.checkBoxes['USB_SERIAL'].IsChecked():
      self.checkBoxes['XONXOFF'].Enable(False)
      self.choices['BAUD'].Enable(False)
示例#18
0
    def onBusChoice(self, evt):
        choice = self.boolChoices["DISPLAY_BUS"]
        if choice.GetClientData(choice.GetSelection()):
            self.boolChoices["DISPLAY_TYPE"].Enable(True)
        else:
            self.boolChoices["DISPLAY_TYPE"].Enable(False)
        self.adjustPinVisibility()

        Page.onChoice(self, evt)
示例#19
0
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        k = "BAUD"
        self.setChoice(k, cfgValues, self.defaultBaud)

        if self.checkBoxes["USB_SERIAL"].IsChecked():
            self.checkBoxes["XONXOFF"].Enable(False)
            self.choices["BAUD"].Enable(False)
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    self.checkBoxes['LOOKAHEAD'].Enable(False)
    self.textControls['ACCELERATION'].Enable(False)
    for tag in self.accTypeKeys:
      if tag in cfgValues.keys() and cfgValues[tag]:
        self.radioButtons[tag].SetValue(True)
        if tag == 'ACCELERATION_RAMPING':
          self.checkBoxes['LOOKAHEAD'].Enable(True)
          self.textControls['ACCELERATION'].Enable(True)
示例#21
0
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        self.prepareHomingValues('HOMING_STEP1', 0, cfgValues)
        self.prepareHomingValues('HOMING_STEP2', 1, cfgValues)
        self.prepareHomingValues('HOMING_STEP3', 2, cfgValues)
        self.prepareHomingValues('HOMING_STEP4', 3, cfgValues)

        for tag in self.kinematicsKeys:
            if tag in cfgValues.keys() and cfgValues[tag]:
                self.radioButtons[tag].SetValue(True)
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        k = "BAUD"
        self.setChoice(k, cfgValues, self.defaultBaud)
        if k in cfgValues.keys():
            self.choicesOriginal[k] = cfgValues[k]

        if self.checkBoxes["USB_SERIAL"].IsChecked():
            self.checkBoxes["XONXOFF"].Enable(False)
            self.choices["BAUD"].Enable(False)
示例#23
0
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    self.prepareHomingValues('HOMING_STEP1', 0, cfgValues)
    self.prepareHomingValues('HOMING_STEP2', 1, cfgValues)
    self.prepareHomingValues('HOMING_STEP3', 2, cfgValues)
    self.prepareHomingValues('HOMING_STEP4', 3, cfgValues)

    for tag in self.kinematicsKeys:
      if tag in cfgValues.keys() and cfgValues[tag]:
        self.radioButtons[tag].SetValue(True)
示例#24
0
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        self.checkBoxes["LOOKAHEAD"].Enable(False)
        self.textControls["ACCELERATION"].Enable(False)
        for tag in self.accTypeKeys:
            if tag in cfgValues.keys() and cfgValues[tag]:
                self.radioButtons[tag].SetValue(True)
                if tag == "ACCELERATION_RAMPING":
                    self.checkBoxes["LOOKAHEAD"].Enable(True)
                    self.textControls["ACCELERATION"].Enable(True)
示例#25
0
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        k = 'KINEMATICS'
        if k in cfgValues.keys():
            k = cfgValues[k]
            if k in self.kinematicsKeys:
                self.radioButtons[k].SetValue(True)
            else:
                self.radioButtons[self.kinematicsKeys[0]].SetValue(True)
        else:
            self.radioButtons[self.kinematicsKeys[0]].SetValue(True)
  def insertValues(self, cfgValues):
    Page.insertValues(self, cfgValues)

    k = 'KINEMATICS'
    if k in cfgValues.keys():
      k = cfgValues[k]
      if k in self.kinematicsKeys:
        self.radioButtons[k].SetValue(True)
      else:
        self.radioButtons[self.kinematicsKeys[0]].SetValue(True)
    else:
      self.radioButtons[self.kinematicsKeys[0]].SetValue(True)
    def insertValues(self, cfgValues):
        Page.insertValues(self, cfgValues)

        for tag in self.kinematicsKeys:
            if tag in cfgValues.keys() and cfgValues[tag]:
                self.radioButtons[tag].SetValue(True)

        for i, k in enumerate(self.homingKeys):
            try:
                index = self.homingOptions.index(self.homing[i])
                self.choices[k].SetSelection(index)
            except IndexError:
                self.choices[k].SetSelection(0)
示例#28
0
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.parent = parent
    self.id = idPg

    self.labels = {'DISPLAY_BUS': "Display Bus:",
                   'DISPLAY_TYPE': "Display Type:",
                   'DISPLAY_BUS_4BIT': "Direct with 4 pins",
                   'DISPLAY_BUS_8BIT': "Direct with 8 pins",
                   'DISPLAY_BUS_I2C': "I²C ( = TWI)",
                   'DISPLAY_BUS_SPI': "SPI",
                   'DISPLAY_TYPE_SSD1306': "SSD1306 O-LED, 128x32 pixels",
                   'DISPLAY_TYPE_HD44780': "HD44780 or 1602A, 16x2 characters",
                   'DISPLAY_RS_PIN': "RS pin",
                   'DISPLAY_RW_PIN': "R/W pin",
                   'DISPLAY_E_PIN': "E pin",
                   'DISPLAY_D4_PIN': "D4 pin",
                   'DISPLAY_D5_PIN': "D5 pin",
                   'DISPLAY_D6_PIN': "D6 pin",
                   'DISPLAY_D7_PIN': "D7 pin"}

    sz = wx.GridBagSizer()
    sz.AddSpacer((20, 40), pos = (0, 0))

    ch = self.addBoolChoice('DISPLAY_BUS', True, 100, self.onBusChoice,
                            size = (160, -1))
    sz.Add(ch, pos = (1, 1))
    sz.AddSpacer((100, 10), pos = (1, 2))

    ch = self.addBoolChoice('DISPLAY_TYPE', False, 100, self.onChoice,
                            size = (240, -1))
    sz.Add(ch, pos = (1, 3))

    b = wx.StaticBox(self, wx.ID_ANY, "Direct 4-bit Bus Pins:")
    b.SetFont(font)
    self.pinbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    self.pinbox.AddSpacer((5, 5))
    for k in ('DISPLAY_RS_PIN', 'DISPLAY_RW_PIN', 'DISPLAY_E_PIN',
              'DISPLAY_D4_PIN', 'DISPLAY_D5_PIN', 'DISPLAY_D6_PIN',
              'DISPLAY_D7_PIN'):
      tc = self.addPinChoice(k, 200)
      self.pinbox.Add(tc)
      self.pinbox.AddSpacer((5, 5))
    sz.Add(self.pinbox, pos = (3, 1))

    self.SetSizer(sz)
    self.enableAll(False)
示例#29
0
    def getValues(self):
        result = Page.getValues(self)

        for tag in self.kinematicsKeys:
            result[tag] = self.radioButtons[tag].GetValue()

        return result
示例#30
0
    def getValues(self):
        result = Page.getValues(self)

        for tag in self.accTypeKeys:
            result[tag] = self.radioButtons[tag].GetValue()

        return result
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.accTypeKeys:
      result[tag] = self.radioButtons[tag].GetValue()

    return result
示例#32
0
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.kinematicsKeys:
      result[tag] = self.radioButtons[tag].GetValue()

    return result
示例#33
0
    def getValues(self):
        result = Page.getValues(self)

        for k in self.choices.keys():
            if k in result.keys() and result[k] == "-":
                result[k] = ""

        return result
    def getValues(self):
        result = Page.getValues(self)

        if result["USB_SERIAL"]:
            result["BAUD"][1] = False
            result["XONXOFF"] = False

        return result
示例#35
0
    def getValues(self):
        result = Page.getValues(self)

        for k in self.choices.keys():
            if k in result.keys() and result[k] == "-":
                result[k] = ""

        return result
示例#36
0
    def getValues(self):
        result = Page.getValues(self)

        if result["USB_SERIAL"]:
            result["BAUD"] = result["BAUD"][0], False
            result["XONXOFF"] = False

        return result
  def getValues(self):
    result = Page.getValues(self)

    if result['USB_SERIAL']:
      result['BAUD'] = result['BAUD'][0], False
      result['XONXOFF'] = False

    return result
    def getValues(self):
        result = Page.getValues(self)

        if result['USB_SERIAL']:
            result['BAUD'] = result['BAUD'][0], False
            result['XONXOFF'] = False

        return result
示例#39
0
    def getValues(self):
        result = Page.getValues(self)

        for tag in self.kinematicsKeys:
            rb = self.radioButtons[tag]
            if rb.GetValue():
                result['KINEMATICS'] = tag, True
                break

        return result
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.kinematicsKeys:
      rb = self.radioButtons[tag]
      if rb.GetValue():
        result['KINEMATICS'] = tag, True
        break

    return result
示例#41
0
  def getValues(self):
    result = Page.getValues(self)

    for k in self.choices.keys():
      if result[k][0] == "-":
        if k in self.choicesOriginal.keys():
          result[k] = self.choicesOriginal[k][0], False
        else:
          result[k] = "", False

    return result
示例#42
0
  def getValues(self):
    result = Page.getValues(self)

    k = 'DC_EXTRUDER'
    s = self.choices[k].GetSelection()
    v = self.choices[k].GetString(s)
    if v == self.heaterNameNone:
      result[k] = ""
    else:
      result[k] = "HEATER_%s" % v

    return result
    def getValues(self):
        result = Page.getValues(self)

        k = 'DC_EXTRUDER'
        s = self.choices[k].GetSelection()
        v = self.choices[k].GetString(s)
        if v == self.heaterNameNone:
            result[k] = ""
        else:
            result[k] = "HEATER_%s" % v

        return result
示例#44
0
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.kinematicsKeys:
      result[tag] = self.radioButtons[tag].GetValue()

    result['HOMING_STEP1'] = self.getHomingValue('HOMING_STEP1', result)
    result['HOMING_STEP2'] = self.getHomingValue('HOMING_STEP2', result)
    result['HOMING_STEP3'] = self.getHomingValue('HOMING_STEP3', result)
    result['HOMING_STEP4'] = self.getHomingValue('HOMING_STEP4', result)

    return result
示例#45
0
    def getValues(self):
        result = Page.getValues(self)

        for tag in self.kinematicsKeys:
            result[tag] = self.radioButtons[tag].GetValue()

        result['HOMING_STEP1'] = self.getHomingValue('HOMING_STEP1', result)
        result['HOMING_STEP2'] = self.getHomingValue('HOMING_STEP2', result)
        result['HOMING_STEP3'] = self.getHomingValue('HOMING_STEP3', result)
        result['HOMING_STEP4'] = self.getHomingValue('HOMING_STEP4', result)

        return result
示例#46
0
  def getValues(self):
    result = Page.getValues(self)

    values = {}
    for k in self.sensorTypeKeys.values():
      values[k] = False

    for s in self.sensors:
      values[self.sensorTypeKeys[s[1]]] = True

    for v in values.keys():
      result[v] = values[v]

    return result
示例#47
0
    def getValues(self):
        result = Page.getValues(self)

        values = {}
        for k in self.sensorTypeKeys.values():
            values[k] = False

        for s in self.sensors:
            values[self.sensorTypeKeys[s[1]]] = True

        for v in values.keys():
            result[v] = values[v]

        return result
示例#48
0
    def __init__(self, parent, nb, idPg, font):
        wx.Panel.__init__(self, nb, wx.ID_ANY)
        Page.__init__(self, font)
        self.parent = parent
        self.id = idPg

        self.labels = {
            'DISPLAY_BUS': "Display Bus:",
            'DISPLAY_TYPE': "Display Type:",
            'DISPLAY_BUS_4BIT': "Direct with 4 pins",
            'DISPLAY_BUS_8BIT': "Direct with 8 pins",
            'DISPLAY_BUS_I2C': "I²C ( = TWI)",
            'DISPLAY_BUS_SPI': "SPI",
            'DISPLAY_TYPE_SSD1306': "SSD1306 O-LED, 128x32",
            'DISPLAY_TYPE_LCD1302': "LCD 1302"
        }

        sz = wx.GridBagSizer()
        sz.AddSpacer((20, 40), pos=(0, 0))

        ch = self.addBoolChoice('DISPLAY_BUS',
                                True,
                                100,
                                self.onBusChoice,
                                size=(160, -1))
        sz.Add(ch, pos=(1, 1))
        sz.AddSpacer((100, 10), pos=(1, 2))

        ch = self.addBoolChoice('DISPLAY_TYPE',
                                False,
                                100,
                                self.onChoice,
                                size=(200, -1))
        sz.Add(ch, pos=(1, 3))

        self.SetSizer(sz)
        self.enableAll(False)
  def getValues(self):
    result = Page.getValues(self)

    k = 'DC_EXTRUDER'
    s = self.choices[k].GetSelection()
    v = self.choices[k].GetString(s)
    if v == self.heaterNameNone:
      if k in self.choicesOriginal.keys():
        result[k] = self.choicesOriginal[k][0], False
      else:
        result[k] = "", False
    else:
      result[k] = "HEATER_%s" % v, True

    return result
示例#50
0
    def getValues(self):
        result = Page.getValues(self)

        k = 'DC_EXTRUDER'
        s = self.choices[k].GetSelection()
        v = self.choices[k].GetString(s)
        if v == self.heaterNameNone:
            if k in self.choicesOriginal.keys():
                result[k] = self.choicesOriginal[k][0], False
            else:
                result[k] = "", False
        else:
            result[k] = "HEATER_%s" % v, True

        return result
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.kinematicsKeys:
      rb = self.radioButtons[tag]
      if rb.GetValue():
        result['KINEMATICS'] = tag
        break

    for tag in self.kinematicsKeys:
      try:
        del result[tag]
      except:
        pass

    return result
示例#52
0
  def getValues(self):
    result = Page.getValues(self)

    for tag in self.kinematicsKeys:
      rb = self.radioButtons[tag]
      if rb.GetValue():
        result['KINEMATICS'] = tag
        break

    for tag in self.kinematicsKeys:
      try:
        del result[tag]
      except:
        pass

    return result
示例#53
0
    def getValues(self):
        result = Page.getValues(self)

        values = {}
        for k in self.sensorTypeKeys.values():
            values[k] = False

        for s in self.sensors:
            values[self.sensorTypeKeys[s[1]]] = True

        for v in values.keys():
            result[v] = values[v]

        for k in self.choices.keys():
            if result[k][0] == "-":
                if k in self.choicesOriginal.keys():
                    result[k] = self.choicesOriginal[k][0], False
                else:
                    result[k] = "", False

        return result
示例#54
0
  def getValues(self):
    result = Page.getValues(self)

    values = {}
    for k in self.sensorTypeKeys.values():
      values[k] = False

    for s in self.sensors:
      values[self.sensorTypeKeys[s[1]]] = True

    for v in values.keys():
      result[v] = values[v]

    for k in self.choices.keys():
      if result[k][0] == "-":
        if k in self.choicesOriginal.keys():
          result[k] = self.choicesOriginal[k][0], False
        else:
          result[k] = "", False

    return result
  def __init__(self, parent, nb, idPg, font):
    wx.Panel.__init__(self, nb, wx.ID_ANY)
    Page.__init__(self, font)
    self.id = idPg
    self.parent = parent
    self.font = font

    self.spmKeys = ['STEPS_PER_M_X', 'STEPS_PER_M_Y', 'STEPS_PER_M_Z',
                    'STEPS_PER_M_E']

    self.mfrKeys = ['MAXIMUM_FEEDRATE_X', 'MAXIMUM_FEEDRATE_Y',
                    'MAXIMUM_FEEDRATE_Z', 'MAXIMUM_FEEDRATE_E']

    self.msrKeys = ['SEARCH_FEEDRATE_X', 'SEARCH_FEEDRATE_Y',
                    'SEARCH_FEEDRATE_Z']

    self.eclKeys = ['ENDSTOP_CLEARANCE_X', 'ENDSTOP_CLEARANCE_Y',
                    'ENDSTOP_CLEARANCE_Z']

    self.minmaxKeys = ['X_MIN', 'X_MAX', 'Y_MIN', 'Y_MAX', 'Z_MIN', 'Z_MAX']

    self.kinematicsKeys = ['KINEMATICS_STRAIGHT', 'KINEMATICS_COREXY']

    self.labels = {'STEPS_PER_M_X': "X:", 'STEPS_PER_M_Y': "Y:",
                   'STEPS_PER_M_Z': "Z:", 'STEPS_PER_M_E' : "E:",
                   'MAXIMUM_FEEDRATE_X': "X:", 'MAXIMUM_FEEDRATE_Y': "Y:",
                   'MAXIMUM_FEEDRATE_Z': "Z:", 'MAXIMUM_FEEDRATE_E': "E:",
                   'SEARCH_FEEDRATE_X': "X:", 'SEARCH_FEEDRATE_Y': "Y:",
                   'SEARCH_FEEDRATE_Z': "Z:",
                   'ENDSTOP_CLEARANCE_X': "X:", 'ENDSTOP_CLEARANCE_Y': "Y:",
                   'ENDSTOP_CLEARANCE_Z': "Z:",
                   'X_MIN': "Min X:", 'X_MAX': "Max X:", 'Y_MIN': "Min Y:",
                   'Y_MAX': "Max Y:", 'Z_MIN': "Min Z:", 'Z_MAX': "Max Z:",
                   'E_ABSOLUTE': "Absolute E Coordinates",
                   'KINEMATICS_STRAIGHT': "Straight",
                   'KINEMATICS_COREXY': "CoreXY"}

    labelWidth = 40;

    sz = wx.GridBagSizer()
    sz.AddSpacer((10, 10), pos = (0, 0))
    sz.AddSpacer((90, 10), pos = (0, 4))

    b = wx.StaticBox(self, wx.ID_ANY, "Steps Per Meter")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    for k in self.spmKeys:
      tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlInteger)
      sbox.Add(tc)
      sbox.AddSpacer((5, 5))

    sz.Add(sbox, pos = (1, 1))

    b = wx.StaticBox(self, wx.ID_ANY, "Maximum Feedrate")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    for k in self.mfrKeys:
      tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlInteger)
      sbox.Add(tc)
      sbox.AddSpacer((5, 5))

    sz.Add(sbox, pos = (1, 5))

    b = wx.StaticBox(self, wx.ID_ANY, "Search Feedrate")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    for k in self.msrKeys:
      tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlInteger)
      sbox.Add(tc)
      sbox.AddSpacer((5, 5))

    sz.Add(sbox, pos = (1, 7))

    b = wx.StaticBox(self, wx.ID_ANY, "Endstop Clearance")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    for k in self.eclKeys:
      tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlInteger)
      sbox.Add(tc)
      sbox.AddSpacer((5, 5))

    sz.Add(sbox, pos = (3, 5))

    b = wx.StaticBox(self, wx.ID_ANY, "Travel Limits")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    for k in self.minmaxKeys:
      tc = self.addTextCtrl(k, labelWidth + 20, self.onTextCtrlFloat)
      sbox.Add(tc)
      sbox.AddSpacer((5, 5))

    sz.Add(sbox, pos = (3, 7))

    vsz = wx.BoxSizer(wx.VERTICAL)

    b = wx.StaticBox(self, wx.ID_ANY, "Kinematics")
    b.SetFont(font)
    sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
    sbox.AddSpacer((5, 5))
    style = wx.RB_GROUP
    for k in self.kinematicsKeys:
      rb = self.addRadioButton(k, style, self.onKinematicsSelect, b)
      style = 0

      sbox.Add(rb, 1, wx.LEFT + wx.RIGHT, 16)
      sbox.AddSpacer((5, 5))

    vsz.Add(sbox, 1, wx.LEFT, 40)

    cb = self.addCheckBox('E_ABSOLUTE', self.onCheckBox)

    vsz.Add(cb, 1, wx.LEFT, 40)

    sz.Add(vsz, pos = (3, 1))

    bsz = wx.BoxSizer(wx.VERTICAL)
    b = wx.Button(self, wx.ID_ANY, "Calculate\nBelt Driven", size = BSIZE)
    b.SetBackgroundColour(self.deco.getBackgroundColour())
    b.SetFont(font)
    b.SetToolTipString("Open the calculator for axes that are belt-driven.")
    self.Bind(wx.EVT_BUTTON, self.onCalcBelt, b)
    self.bCalcBelt = b

    bsz.Add(b, 1, wx.ALL, 5)
    b = wx.Button(self, wx.ID_ANY, "Calculate\nScrew Driven", size = BSIZE)
    b.SetBackgroundColour(self.deco.getBackgroundColour())
    b.SetFont(font)
    bsz.Add(b, 1, wx.ALL, 5)
    b.SetToolTipString("Open the calculator for axes that are screw-driven.")
    self.Bind(wx.EVT_BUTTON, self.onCalcScrew, b)
    self.bCalcScrew = b

    sz.Add(bsz, pos = (1, 3))
    self.enableAll(False)
    self.SetSizer(sz)
 def setHelpText(self, ht):
   Page.setHelpText(self, ht)
   if 'KINEMATICS' in ht.keys():
     for k in self.kinematicsKeys:
       self.radioButtons[k].SetToolTipString(ht['KINEMATICS'])
 def enableAll(self, flag = True):
   self.bCalcBelt.Enable(flag)
   self.bCalcScrew.Enable(flag)
   Page.enableAll(self, flag)
示例#58
0
 def enableAll(self, flag=True):
     self.bAdd.Enable(flag)
     Page.enableAll(self, flag)