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