def Configure(self, mesg=WM_COMMAND, wParam=0, lParam=0, kind=0):
        mesgValues, mesgNames = zip(*self.msgConstants)
        mesgValues, mesgNames = list(mesgValues), list(mesgNames)
        try:
            i = mesgValues.index(mesg)
            choice = mesgNames[i]
        except:
            choice = str(mesg)

        panel = eg.ConfigPanel()

        mesgCtrl = panel.ComboBox(choice,
                                  mesgNames,
                                  style=wx.CB_DROPDOWN,
                                  validator=eg.DigitOnlyValidator(mesgNames))

        wParamCtrl = panel.SpinIntCtrl(wParam, max=65535)
        lParamCtrl = panel.SpinIntCtrl(lParam, max=4294967295)
        kindCB = panel.CheckBox(kind == 1, self.text.text1)

        panel.AddLine("Message:", mesgCtrl)
        panel.AddLine("wParam:", wParamCtrl)
        panel.AddLine("lParam:", lParamCtrl)
        #panel.AddLine()
        panel.AddLine(kindCB)

        while panel.Affirmed():
            choice = mesgCtrl.GetValue()
            try:
                i = mesgNames.index(choice)
                mesg = mesgValues[i]
            except:
                mesg = int(choice)
            panel.SetResult(mesg, wParamCtrl.GetValue(), lParamCtrl.GetValue(),
                            1 if kindCB.GetValue() else 0)
Esempio n. 2
0
    def Configure(
        self,
        port=0,
        baudrate=9600,
        bytesize=3,
        parity=0,
        stopbits=0,
        handshake=0,
        generateEvents=False,
        terminator="\\r",
        prefix="Serial",
        encodingNum=0,
    ):
        text = self.text
        panel = eg.ConfigPanel()
        portCtrl = panel.SerialPortChoice(port)

        baudrateCtrl = panel.ComboBox(str(baudrate),
                                      BAUDRATES,
                                      style=wx.CB_DROPDOWN,
                                      validator=eg.DigitOnlyValidator())
        bytesizeCtrl = panel.Choice(bytesize, ['5', '6', '7', '8'])
        parityCtrl = panel.Choice(parity, text.parities)
        stopbitsCtrl = panel.Choice(stopbits, ['1', '2'])
        handshakeCtrl = panel.Choice(handshake, text.handshakes)
        generateEventsCtrl = panel.CheckBox(generateEvents,
                                            text.generateEvents)
        terminatorCtrl = panel.TextCtrl(terminator)
        terminatorCtrl.Enable(generateEvents)
        prefixCtrl = panel.TextCtrl(prefix)
        prefixCtrl.Enable(generateEvents)
        encodingCtrl = panel.Choice(encodingNum, text.codecChoices)
        encodingCtrl.Enable(generateEvents)

        def OnCheckBox(event):
            flag = generateEventsCtrl.GetValue()
            terminatorCtrl.Enable(flag)
            prefixCtrl.Enable(flag)
            encodingCtrl.Enable(flag)
            event.Skip()

        generateEventsCtrl.Bind(wx.EVT_CHECKBOX, OnCheckBox)

        panel.SetColumnFlags(1, wx.EXPAND)
        portSettingsBox = panel.BoxedGroup(
            "Port settings",
            (text.port, portCtrl),
            (text.baudrate, baudrateCtrl),
            (text.bytesize, bytesizeCtrl),
            (text.parity, parityCtrl),
            (text.stopbits, stopbitsCtrl),
            (text.flowcontrol, handshakeCtrl),
        )
        eventSettingsBox = panel.BoxedGroup(
            "Event generation",
            (generateEventsCtrl),
            (text.terminator, terminatorCtrl),
            (text.eventPrefix, prefixCtrl),
            (text.encoding, encodingCtrl),
        )
        eg.EqualizeWidths(portSettingsBox.GetColumnItems(0))
        eg.EqualizeWidths(portSettingsBox.GetColumnItems(1))
        eg.EqualizeWidths(eventSettingsBox.GetColumnItems(0)[1:])
        eg.EqualizeWidths(eventSettingsBox.GetColumnItems(1))
        panel.sizer.Add(
            eg.HBoxSizer(portSettingsBox, (10, 10), eventSettingsBox))
        while panel.Affirmed():
            panel.SetResult(
                portCtrl.GetValue(),
                int(baudrateCtrl.GetValue()),
                bytesizeCtrl.GetValue(),
                parityCtrl.GetValue(),
                stopbitsCtrl.GetValue(),
                handshakeCtrl.GetValue(),
                generateEventsCtrl.GetValue(),
                terminatorCtrl.GetValue(),
                prefixCtrl.GetValue(),
                encodingCtrl.GetValue(),
            )
Esempio n. 3
0
    def Configure(
        self,
        port=0,
        baudrate=9600,
        bytesize=3,
        parity=0,
        stopbits=0,
        generate_events=True,
        prefix="Atric",
        init=True,
        bytecount=6,
    ):
        text = self.text
        panel = eg.ConfigPanel()

        port_ctrl = panel.SerialPortChoice(port)

        baudrate_ctrl = panel.ComboBox(str(baudrate),
                                       BAUDRATES,
                                       style=wx.CB_DROPDOWN,
                                       validator=eg.DigitOnlyValidator())

        bytesize_ctrl = panel.Choice(bytesize, BYTESIZES)

        parity_ctrl = panel.Choice(parity, PARITIES_CHOICE)

        stopbits_ctrl = panel.Choice(stopbits, STOPBITS)

        init_ctrl = panel.CheckBox(init, text.init_ctrl_label)

        bytecount_ctrl = panel.SpinIntCtrl(bytecount, min=1, max=32)
        bytecount_ctrl.Enable(generate_events)

        prefix_ctrl = panel.TextCtrl(prefix)
        prefix_ctrl.Enable(generate_events)

        generate_events_ctrl = panel.CheckBox(generate_events,
                                              text.generate_events_ctrl_label)

        def on_checkbox(event):
            flag = generate_events_ctrl.GetValue()
            bytecount_ctrl.Enable(flag)
            prefix_ctrl.Enable(flag)
            event.Skip()

        generate_events_ctrl.Bind(wx.EVT_CHECKBOX, on_checkbox)

        panel.SetColumnFlags(1, wx.EXPAND)

        port_settings_box = panel.BoxedGroup(
            text.port_settings_box_label, (text.port_ctrl_label, port_ctrl),
            (text.baudrate_ctrl_label, baudrate_ctrl),
            (text.bytesize_ctrl_label, bytesize_ctrl),
            (text.parity_ctrl_label, parity_ctrl),
            (text.stopbits_ctrl_label, stopbits_ctrl), (init_ctrl))

        event_settings_box = panel.BoxedGroup(
            text.event_settings_box_label, (generate_events_ctrl),
            (text.bytecount_ctrl_label, bytecount_ctrl),
            (text.prefix_ctrl_label, prefix_ctrl))

        eg.EqualizeWidths(port_settings_box.GetColumnItems(0)[:-1])
        eg.EqualizeWidths(port_settings_box.GetColumnItems(1))

        eg.EqualizeWidths(event_settings_box.GetColumnItems(0)[1:])
        eg.EqualizeWidths(event_settings_box.GetColumnItems(1))

        Add = panel.sizer.Add
        Add(eg.HBoxSizer(port_settings_box, (5, 5), event_settings_box))

        while panel.Affirmed():
            panel.SetResult(port_ctrl.GetValue(),
                            int(baudrate_ctrl.GetValue()),
                            bytesize_ctrl.GetValue(), parity_ctrl.GetValue(),
                            stopbits_ctrl.GetValue(),
                            generate_events_ctrl.GetValue(),
                            prefix_ctrl.GetValue(), init_ctrl.GetValue(),
                            bytecount_ctrl.GetValue())