def initAfter(self): #add your code here from GetSerPorts import GetSerPorts serPrtsLister = GetSerPorts() serPrts = serPrtsLister.get_ports() for prt in serPrts: self.cmbSerPort.Append(prt) self.btOpenPrt.Enable(True) self.btClosePrt.Enable(False) self.btDigiOutSet.Enable(False) self.btDigiRead.Enable(False) self.btAnalogOut.Enable(False) self.btAnalogRead.Enable(False) self.Centre() return
def __init__(self, parent, cfgFile="Arduino_Duemilanove.cfg"): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size(373, 507), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) # This named tuple acts like the group holder for GUI controls # that we need to control self.ctls = namedtuple("ctls", 'availableLstCtl selectedLstCtl') self.ctlDic = {} self.serPort = "" self.cfgFile = cfgFile # Try to open the config file and load the values try: self.cfg = ConfigHandler(self.cfgFile) except: wx.MessageBox(cfgFile + " was not found ") wx.Exit() self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) frameSizer = wx.BoxSizer(wx.VERTICAL) self.mainPanel = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) mainSizer = wx.BoxSizer(wx.VERTICAL) #mainSizer.Add( gpioBox, 1, wx.EXPAND, 5 ) sizer = self.addPerBox('GPIOs', 'gpio') mainSizer.Add(sizer, 1, wx.EXPAND, 5) sizer = self.addPerBox('DACs', 'dac') mainSizer.Add(sizer, 1, wx.EXPAND, 5) sizer = self.addPerBox('ADCs', 'adc') mainSizer.Add(sizer, 1, wx.EXPAND, 5) # Let's popuate the list box with the pins that are available # first read the pickle file associated with the config file # and populate appropriately try: pick = os.path.splitext(self.cfgFile)[0] + '.pickle' pick = file(pick) self.selectedCtlDic = pickle.load(pick) except: self.selectedCtlDic = {'gpio': [], 'dac': [], 'adc': []} self.selectedCtlDic['gpio'].sort(self.cfg.__cmp__) self.selectedCtlDic['adc'].sort(self.cfg.__cmp__) self.selectedCtlDic['dac'].sort(self.cfg.__cmp__) gpios = self.cfg.getDigiPinNames() gpios = self.__reomove_dups__(gpios, self.selectedCtlDic['gpio']) self.ctlDic['gpio'].availableLstCtl.InsertItems(gpios, 0) self.ctlDic['gpio'].selectedLstCtl.InsertItems( self.selectedCtlDic['gpio'], 0) dacs = self.cfg.getAnaOutPinNames() dacs = self.__reomove_dups__(dacs, self.selectedCtlDic['dac']) self.ctlDic['dac'].availableLstCtl.InsertItems(dacs, 0) self.ctlDic['dac'].selectedLstCtl.InsertItems( self.selectedCtlDic['dac'], 0) adcs = self.cfg.getAnaInPinNames() adcs = self.__reomove_dups__(adcs, self.selectedCtlDic['adc']) self.ctlDic['adc'].availableLstCtl.InsertItems(adcs, 0) self.ctlDic['adc'].selectedLstCtl.InsertItems( self.selectedCtlDic['adc'], 0) self.availbleCtlDic = {'gpio': gpios, 'dac': dacs, 'adc': adcs} self.prts = GetSerPorts() self.ports = self.prts.get_ports() sdbSizer = wx.StdDialogButtonSizer() self.sdbSizerOK = wx.Button(self.mainPanel, wx.ID_OK) self.sdbSizerOK.Bind(wx.EVT_BUTTON, self.onOk) sdbSizer.AddButton(self.sdbSizerOK) self.sdbSizerCancel = wx.Button(self.mainPanel, wx.ID_CANCEL) self.sdbSizerCancel.Bind(wx.EVT_BUTTON, self.onCancel) sdbSizer.AddButton(self.sdbSizerCancel) sdbSizer.Realize() self.stPortName = wx.StaticText(self.mainPanel, -1, " Select the serial port name") self.cmbSerPort = wx.ComboBox(self.mainPanel, -1, "", wx.Point(120, 35), wx.Size(15, 21), self.ports, wx.CB_READONLY) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(self.stPortName, 1, wx.EXPAND, 10) sizer.Add(self.cmbSerPort, 1, wx.EXPAND, 1) mainSizer.Add((0, 20)) mainSizer.Add(sizer, .9, wx.EXPAND, 5) mainSizer.Add((0, 10)) mainSizer.Add(sdbSizer, .8, wx.EXPAND, 5) mainSizer.Add((0, 20)) self.mainPanel.SetSizer(mainSizer) self.mainPanel.Layout() mainSizer.Fit(self.mainPanel) frameSizer.Add(self.mainPanel, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(frameSizer) # Now that all the GUI controls are laid out, let us now populate the lists self.Layout() self.Centre(wx.BOTH)