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 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, 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)
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)
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)
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)
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 __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)
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)
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)
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)
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 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)
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)
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)
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)
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)
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)
def getValues(self): result = Page.getValues(self) for tag in self.kinematicsKeys: 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
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
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) 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 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 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) 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
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
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
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
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)
def enableAll(self, flag=True): self.bAdd.Enable(flag) Page.enableAll(self, flag)