import wx from configtool.page import Page class PinoutsPage(wx.Panel, Page): 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 pinXkeys = [ ("X_STEP_PIN", 2), ("X_DIR_PIN", 2), ("X_MIN_PIN", 2), ("X_MAX_PIN", 2), ("X_ENABLE_PIN", 2), ("X_INVERT_DIR", 1), ("X_INVERT_MIN", 1), ("X_INVERT_MAX", 1), ("X_INVERT_ENABLE", 1), ] pinYkeys = [ ("Y_STEP_PIN", 2), ("Y_DIR_PIN", 2), ("Y_MIN_PIN", 2), ("Y_MAX_PIN", 2), ("Y_ENABLE_PIN", 2), ("Y_INVERT_DIR", 1), ("Y_INVERT_MIN", 1), ("Y_INVERT_MAX", 1), ("Y_INVERT_ENABLE", 1), ] pinZkeys = [ ("Z_STEP_PIN", 2), ("Z_DIR_PIN", 2), ("Z_MIN_PIN", 2), ("Z_MAX_PIN", 2), ("Z_ENABLE_PIN", 2), ("Z_INVERT_DIR", 1), ("Z_INVERT_MIN", 1), ("Z_INVERT_MAX", 1), ("Z_INVERT_ENABLE", 1), ] pinEkeys = [ ("E_STEP_PIN", 2), ("E_DIR_PIN", 2), ("E_ENABLE_PIN", 2), ("E_INVERT_DIR", 1), ("E_INVERT_ENABLE", 1), ] self.labels = { "X_STEP_PIN": "Step Pin:", "X_DIR_PIN": "Direction Pin:", "X_MIN_PIN": "Minimum Pin:", "X_MAX_PIN": "Maximum Pin:", "X_ENABLE_PIN": "Enable Pin:", "X_INVERT_DIR": "Invert Direction", "X_INVERT_MIN": "Invert Minimum", "X_INVERT_MAX": "Invert Maximum", "X_INVERT_ENABLE": "Invert Enable", "Y_STEP_PIN": "Step Pin:", "Y_DIR_PIN": "Direction Pin:", "Y_MIN_PIN": "Minimum Pin:", "Y_MAX_PIN": "Maximum Pin:", "Y_ENABLE_PIN": "Enable Pin:", "Y_INVERT_DIR": "Invert Direction", "Y_INVERT_MIN": "Invert Minimum", "Y_INVERT_MAX": "Invert Maximum", "Y_INVERT_ENABLE": "Invert Enable", "Z_STEP_PIN": "Step Pin:", "Z_DIR_PIN": "Direction Pin:", "Z_MIN_PIN": "Minimum Pin:", "Z_MAX_PIN": "Maximum Pin:", "Z_ENABLE_PIN": "Enable Pin:", "Z_INVERT_DIR": "Invert Direction", "Z_INVERT_MIN": "Invert Minimum", "Z_INVERT_MAX": "Invert Maximum", "Z_INVERT_ENABLE": "Invert Enable", "E_STEP_PIN": "Step Pin:", "E_DIR_PIN": "Direction Pin:", "E_ENABLE_PIN": "Enable Pin:", "E_INVERT_DIR": "Invert Direction", "E_INVERT_ENABLE": "Invert Enable", "PS_ON_PIN": "PSU On Pin:", "PS_INVERT_ON": "Invert PSU On Pin", "PS_MOSFET_PIN": "PSU MOSFET Pin:", "STEPPER_ENABLE_PIN": "Stepper Enable Pin:", "STEPPER_INVERT_ENABLE": "Stepper Invert Enable", "SD_CARD_SELECT_PIN": "SD Card Pin:", "DEBUG_LED_PIN": "Debug LED Pin:", } labelWidth = 120 sz = wx.GridBagSizer() sz.Add((10, 10), pos=(0, 0)) b = wx.StaticBox(self, wx.ID_ANY, "X Axis") b.SetFont(font) sbox = wx.StaticBoxSizer(b, wx.VERTICAL) sbox.Add((5, 5)) for k, ctype in pinXkeys: if ctype == 0: tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlPin) sbox.Add(tc) elif ctype == 2: tc = self.addPinChoice(k, labelWidth) sbox.Add(tc) else: cb = self.addCheckBox(k, self.onCheckBox) sbox.Add(cb, 1, wx.LEFT, 30) sbox.Add((5, 5)) sz.Add(sbox, pos=(1, 1)) b = wx.StaticBox(self, wx.ID_ANY, "Y Axis") b.SetFont(font) sbox = wx.StaticBoxSizer(b, wx.VERTICAL) sbox.Add((5, 5)) for k, ctype in pinYkeys: if ctype == 0: tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlPin) sbox.Add(tc) elif ctype == 2: tc = self.addPinChoice(k, labelWidth) sbox.Add(tc) else: cb = self.addCheckBox(k, self.onCheckBox) sbox.Add(cb, 1, wx.LEFT, 30) sbox.Add((5, 5)) sz.Add(sbox, pos=(1, 3)) b = wx.StaticBox(self, wx.ID_ANY, "Z Axis") b.SetFont(font) sbox = wx.StaticBoxSizer(b, wx.VERTICAL) sbox.Add((5, 5)) for k, ctype in pinZkeys: if ctype == 0: tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlPin) sbox.Add(tc) elif ctype == 2: tc = self.addPinChoice(k, labelWidth) sbox.Add(tc) else: cb = self.addCheckBox(k, self.onCheckBox) sbox.Add(cb, 1, wx.LEFT, 30) sbox.Add((5, 5)) sz.Add(sbox, pos=(1, 5)) b = wx.StaticBox(self, wx.ID_ANY, "E Axis") b.SetFont(font) sbox = wx.StaticBoxSizer(b, wx.VERTICAL) sbox.Add((5, 5)) for k, ctype in pinEkeys: if ctype == 0: tc = self.addTextCtrl(k, labelWidth, self.onTextCtrlPin) sbox.Add(tc) elif ctype == 2: tc = self.addPinChoice(k, labelWidth) sbox.Add(tc) else: cb = self.addCheckBox(k, self.onCheckBox) sbox.Add(cb, 1, wx.LEFT, 30) sbox.Add((5, 5)) sz.Add(sbox, pos=(1, 7)) k = "STEPPER_ENABLE_PIN" tc = self.addPinChoice(k, labelWidth + 20) sz.Add(tc, pos=(3, 1)) sz.Add((10, 10), pos=(4, 1)) k = "STEPPER_INVERT_ENABLE" cb = self.addCheckBox(k, self.onCheckBox) sz.Add(cb, pos=(5, 1), flag=wx.ALIGN_CENTER_HORIZONTAL) k = "PS_ON_PIN" tc = self.addPinChoice(k, labelWidth) sz.Add(tc, pos=(3, 3)) k = "PS_INVERT_ON" cb = self.addCheckBox(k, self.onCheckBox) sz.Add(cb, pos=(5, 3), flag=wx.ALIGN_CENTER_HORIZONTAL) k = "PS_MOSFET_PIN" tc = self.addPinChoice(k, labelWidth) sz.Add(tc, pos=(7, 3)) k = "SD_CARD_SELECT_PIN" tc = self.addPinChoice(k, labelWidth) sz.Add(tc, pos=(3, 7)) k = "DEBUG_LED_PIN" tc = self.addPinChoice(k, labelWidth) sz.Add(tc, pos=(5, 7)) self.SetSizer(sz) self.enableAll(False) def onChoice(self, evt): self.assertModified(True) evt.Skip()