Esempio n. 1
0
 def __init__(self, parent, title):
     super(UIFrame, self).__init__(parent,
                                   title=title,
                                   size=(512, 384),
                                   style=wx.DEFAULT_FRAME_STYLE)
     panel = wx.Panel(parent=self,
                      id=0,
                      pos=wx.DefaultPosition,
                      size=(510, 382))
     # 定义一个峰值计控制器
     self.netbugger_text_peak_ctrl = peakmeter.PeakMeterCtrl(
         parent=panel,
         id=-1,
         pos=wx.DefaultPosition,
         size=(250, 200),
         style=0,
         agwStyle=0x1)
     self.netbugger_text_peak_ctrl.SetMeterBands(numBands=5, ledBands=20)
     self.netbugger_text_peak_ctrl.ShowGrid(True)
     # 定义一个时钟控制显示频率
     self.timer = wx.Timer(self)
     self.Bind(wx.EVT_TIMER, self.OnTimer)
     wx.CallLater(2000 / 2, self.Start)
     # 更新尺寸
     self.SetAutoLayout(1)
     # 显示界面
     self.Centre()
     self.Show()
Esempio n. 2
0
    def __init__(self, *args, **kwargs):
        self.mapwidget = kwargs.pop('map', None)
        self.timewidget = kwargs.pop('time', None)
        wx.Panel.__init__(self, *args, **kwargs)
        self.id = wx.NewId()
        self.key = 'speed'
        self.gpx = None
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.SetSizer(sizer)
        self.l1 = wx.StaticText(self, wx.NewId(), "Value:")
        #self.l2=wx.StaticText(self,wx.NewId(),"Map height:")
        #self.l3=wx.StaticText(self,wx.NewId(),"Current path: empty")
        self.peakmeter = pm.PeakMeterCtrl(self,
                                          -1,
                                          style=wx.SIMPLE_BORDER,
                                          agwStyle=pm.PM_VERTICAL)
        self.peakmeter.SetMaxSize(wx.Size(20, 1200))
        self.peakmeter.SetMeterBands(1, 20)
        self.peakmeter.SetBandsColour(wx.GREEN, wx.YELLOW, wx.RED)
        self.peakmeter.SetRangeValue(10, 20, 22)
        self.peakmeter.SetData([12], 0, 1)
        sizer.Add(self.l1, 0, wx.CENTER)
        #sizer.Add(self.l2,0,wx.CENTER)
        #sizer.Add(self.l3,0,wx.CENTER)
        sizer.Add(self.peakmeter, 0, wx.CENTER)
        self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftMouseDblClick)

        msgwrap.register(self.OnSigCurChanged, signal="CurChanged")
        msgwrap.register(self.OnSigSelChanged, signal="SelChanged")
        msgwrap.register(self.OnSigValChanged, signal="ValChanged")
Esempio n. 3
0
 def __init__(self, parent):
     wx.Frame.__init__(self, parent, -1, "Vox Audio Recorder", size=(500, 200))
     panel = wx.Panel(self)
     # default rx trigger value
     self.trigger = THRESHOLD
     self.recording = 0 
     # Initialize Objects
     self.vertPeak = PM.PeakMeterCtrl(panel, -1, size=(450,15), pos=(25, 130), style=wx.SIMPLE_BORDER, agwStyle=PM.PM_HORIZONTAL)
     self.vertPeak.SetMeterBands(1, 100)
     self.slider = wx.Slider(panel, value = self.trigger, minValue = 1, maxValue = 100,pos=(25, 100),size=(450,20),style = wx.SL_HORIZONTAL)
     self.slider.Bind(wx.EVT_SLIDER, self.OnSliderScroll) 
     closeBtn = wx.Button(panel, label="Close", pos=(200, 5), size=(80, 25))
     closeBtn.Bind(wx.EVT_BUTTON, self.onClose)
     lbl = wx.StaticText(panel,-1,pos=(393,80))
     lbl.SetLabel('Recording')
     thresh = wx.StaticText(panel,-1,pos=(30,80))
     thresh.SetLabel('Trigger Level')
     font1 = wx.Font(20, wx.MODERN, wx.NORMAL, wx.NORMAL, False, u'Consolas')
     self.filedescriptor = wx.StaticText(panel, -1, "Current File", pos=(145, 50) )
     self.filedescriptor.SetFont(font1)
     self.timer = wx.Timer(self)
     self.Bind(wx.EVT_TIMER, self.OnTimer)
     self.filetimer = wx.Timer(self)
     self.filetimer.Start(1000)
     wx.CallLater(500, self.Start)
    def test_lib_agw_peakmeterCtor(self):
        peak = PM.PeakMeterCtrl(self.frame,
                                -1,
                                style=wx.SIMPLE_BORDER,
                                agwStyle=PM.PM_VERTICAL)
        peak.SetMeterBands(10, 15)
        peak.SetRangeValue(1, 10, 20)

        peak.SetData(self.get_data(), 0, 15)
    def test_lib_agw_peakmeterMethods(self):
        peak = PM.PeakMeterCtrl(self.frame,
                                -1,
                                style=wx.SIMPLE_BORDER,
                                agwStyle=PM.PM_HORIZONTAL)
        peak.SetMeterBands(10, 15)
        peak.SetRangeValue(1, 10, 20)

        peak.SetData(self.get_data(), 0, 15)

        self.assertTrue(peak.GetFalloffEffect())
        self.assertTrue(not peak.IsGridVisible())
        self.assertTrue(peak.GetAGWWindowStyleFlag() & PM.PM_HORIZONTAL == 0)

        self.assertEqual(peak.GetRangeValue(), (1, 10, 20))
Esempio n. 6
0
    def create_objects(self):
        """Creates the GUI objects"""
        meter = pm.PeakMeterCtrl(self,
                                 wx.ID_ANY,
                                 style=wx.SIMPLE_BORDER,
                                 agwStyle=pm.PM_VERTICAL)  #, size=(400, 100))
        meter.SetMeterBands(32, 20)  # Visualize from 1 to 32 Hz
        meter.SetRangeValue(3.0, 6.0, 9.0)
        meter.ShowGrid(True)
        meter.SetBandsColour(wx.Colour(255, 0, 0), wx.Colour(255, 153, 0),
                             wx.Colour(255, 255, 0))

        meter.SetData([0] * 32, offset=0, size=32)
        self.meter = meter

        sensors = [
            core.variables.SENSOR_NAMES[i] for i in core.variables.SENSORS
        ]
        sensors.append("F3+F4")
        #print(sensors) #debug
        selector = wx.RadioBox(self, wx.ID_ANY, "Select Channel",
                               wx.DefaultPosition, wx.DefaultSize, sensors, 8)
        self.selector = selector
        self.Bind(wx.EVT_RADIOBOX, self.on_select_channel, self.selector)

        self.start_btn = wx.Button(self, wx.ID_ANY, "Start", size=(100, 25))
        self.stop_btn = wx.Button(self, wx.ID_ANY, "Stop", size=(100, 25))
        self.Next_btn = wx.Button(self,
                                  wx.ID_ANY,
                                  "Next Round",
                                  size=(100, 25))
        self.LoadControl_btn = wx.Button(self,
                                         wx.ID_ANY,
                                         "Control (unset)",
                                         size=(100, 25))
        self.Bind(wx.EVT_BUTTON, self.on_start, self.start_btn)
        self.Bind(wx.EVT_BUTTON, self.on_stop, self.stop_btn)
        self.Bind(wx.EVT_BUTTON, self.on_Next, self.Next_btn)
        self.Bind(wx.EVT_BUTTON, self.on_LoadControl, self.LoadControl_btn)
    def __init__(self, parent, title):
        self.queue_buffer = Queue.Queue()
        self.show_visualizer = False

        wx.Frame.__init__(self, parent, title=title)

        # Create the titles.
        self.titleCode = wx.StaticText(self,
                                       label="Program Code",
                                       style=wx.ALIGN_CENTER | wx.BORDER)
        self.titleCode.SetBackgroundColour(CustomColor.DARK_GRAY)
        self.titleCode.SetForegroundColour(CustomColor.WHITE)

        self.titleHistory = wx.StaticText(self,
                                          label="History",
                                          style=wx.ALIGN_CENTER | wx.BORDER)
        self.titleHistory.SetBackgroundColour(CustomColor.DARK_GRAY)
        self.titleHistory.SetForegroundColour(CustomColor.WHITE)

        # Title Sizer
        self.titleSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.titleSizer.Add(
            self.titleCode, 1, wx.EXPAND
        )  # arg 1: control to include, arg 2: size weight factor, arg 3: wx.EXPAND
        # means control will be resized when necessary
        self.titleSizer.Add(self.titleHistory, 1, wx.EXPAND)

        # Create the body
        self.bodyCode = wx.TextCtrl(
            self, style=wx.TE_READONLY | wx.TE_MULTILINE
        )  # add text box widget , style= (wx.TE_MULTILINE) for with multiple lines text.
        self.bodyCode.AppendText("No code has been generated yet.")
        self.bodyCode.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.SetFont(self.bodyCode, CodeByDictUI.FONT_SIZE_CODE,
                     CodeByDictUI.FONT_FAMILY_CODE)

        self.bodyHistory = wx.TextCtrl(self,
                                       style=wx.TE_READONLY | wx.TE_MULTILINE
                                       | wx.TE_RICH)
        self.bodyHistory.AppendText("There is no history.")
        self.bodyHistory.SetBackgroundColour(CustomColor.LIGHT_GRAY)

        # Body Sizer
        self.bodySizer = wx.BoxSizer(wx.HORIZONTAL)
        self.bodySizer.Add(self.bodyCode, 1, wx.EXPAND)
        self.bodySizer.Add(self.bodyHistory, 1, wx.EXPAND)

        # Create the lines of feedback
        self.feedbackOne = wx.StaticText(self,
                                         label=" ",
                                         style=wx.ALIGN_CENTER | wx.BORDER)
        self.feedbackOne.SetBackgroundColour(CustomColor.PALE_GRAY)
        self.feedbackOne.SetForegroundColour(CustomColor.RED)
        self.SetFont(self.feedbackOne, CodeByDictUI.FONT_SIZE_FEEDBACK)

        self.feedbackTwo = wx.StaticText(self,
                                         label=" ",
                                         style=wx.ALIGN_CENTER | wx.BORDER)
        self.feedbackTwo.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.SetFont(self.feedbackTwo, CodeByDictUI.FONT_SIZE_FEEDBACK)

        self.feedbackThree = wx.StaticText(self,
                                           label=" ",
                                           style=wx.ALIGN_CENTER | wx.BORDER)
        self.feedbackThree.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.SetFont(self.feedbackThree, CodeByDictUI.FONT_SIZE_FEEDBACK)

        self.feedbackFour = wx.StaticText(self,
                                          label=" ",
                                          style=wx.ALIGN_CENTER | wx.BORDER)
        self.feedbackFour.SetBackgroundColour(CustomColor.DARK_GRAY)
        self.SetFont(self.feedbackFour, CodeByDictUI.FONT_SIZE_FEEDBACK)

        self.feedbackFive = wx.StaticText(self,
                                          label=" ",
                                          style=wx.ALIGN_CENTER | wx.BORDER)
        self.feedbackFive.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.SetFont(self.feedbackFive, CodeByDictUI.FONT_SIZE_FEEDBACK)

        # Feedback Sizer
        self.feedbackSizer = wx.BoxSizer(wx.VERTICAL)
        self.midFeedbackSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.midFeedbackSizer.Add(self.feedbackTwo, 1, wx.FIXED_MINSIZE)
        self.midFeedbackSizer.Add(self.feedbackThree, 1, wx.FIXED_MINSIZE)

        self.feedbackSizer.Add(self.feedbackOne, 1, wx.EXPAND)
        self.feedbackSizer.Add(self.midFeedbackSizer, 1, wx.EXPAND)
        self.feedbackSizer.Add(self.feedbackFour, 1, wx.EXPAND)
        self.feedbackSizer.Add(self.feedbackFive, 1, wx.EXPAND)

        # Create the buttons
        self.buttonUndo = wx.Button(self, -1, "Undo")
        self.buttonClear = wx.Button(self, -1, "Clear")
        self.buttonExport = wx.Button(self, -1, "Export")
        self.buttonCheatsheet = wx.Button(self, -1, "Cheatsheet")

        self.Bind(wx.EVT_BUTTON, self.OnUndo, self.buttonUndo)
        self.Bind(wx.EVT_BUTTON, self.OnClear, self.buttonClear)
        self.Bind(wx.EVT_BUTTON, self.OnExport, self.buttonExport)
        self.Bind(wx.EVT_BUTTON, self.OnCheatsheet, self.buttonCheatsheet)

        # Button Sizer
        self.buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_SIDE_OF_BUTTONS)
        self.buttonSizer.Add(self.buttonUndo, 1, wx.EXPAND)
        self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS)
        self.buttonSizer.Add(self.buttonClear, 1, wx.EXPAND)
        self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS)
        self.buttonSizer.Add(self.buttonExport, 1, wx.EXPAND)
        self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS)
        self.buttonSizer.Add(self.buttonCheatsheet, 1, wx.EXPAND)
        self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_SIDE_OF_BUTTONS)

        # Recording Bar
        self.recordStatus = wx.StaticText(self,
                                          label=CodeByDictUI.STRING_ON_RECORD,
                                          style=wx.ALIGN_CENTER)
        self.recordStatus.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.recordStatus.SetForegroundColour(CustomColor.GREEN)
        self.SetFont(self.recordStatus, CodeByDictUI.FONT_SIZE_FEEDBACK)

        # Recording Visualizer
        self.vertPeak = PM.PeakMeterCtrl(self,
                                         -1,
                                         style=wx.SIMPLE_BORDER,
                                         agwStyle=PM.PM_VERTICAL)
        self.vertPeak.SetMeterBands(CodeByDictUI.VISUALIZER_NUM_BAND,
                                    CodeByDictUI.VISUALIZER_LED_PER_BAND)
        self.vertPeak.SetRangeValue(800, 3500, 8000)
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.OnTimer)
        self.ShowVisualizer(True)
        wx.CallLater(500, self.visualizer_start)

        # Recording Bar sizer
        self.recordSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.recordSizer.Add(self.recordStatus, 1, wx.EXPAND)

        self.speakNow = wx.StaticText(self,
                                      label=" ",
                                      style=wx.ALIGN_CENTER | wx.BORDER)
        self.speakNow.SetBackgroundColour(CustomColor.LIGHT_GRAY)
        self.speakNow.SetForegroundColour(CustomColor.GREEN)
        self.SetFont(self.speakNow, CodeByDictUI.FONT_SIZE_SPEAK_NOW)
        self.volumeSizer = wx.BoxSizer(wx.VERTICAL)
        self.volumeSizer.Add(self.speakNow, 1, wx.EXPAND)
        self.volumeSizer.Add(self.vertPeak, 2, wx.EXPAND | wx.ALL)

        self.recordSizer.Add(self.volumeSizer, 2, wx.EXPAND | wx.ALL)

        # Status Bar
        self.CreateStatusBar()  # A status bar in the bottom of the window

        # Setting up the menu
        filemenu = wx.Menu()
        menuAbout = filemenu.Append(wx.ID_ABOUT, "&About",
                                    " Information about this program")
        menuExit = filemenu.Append(wx.ID_EXIT, "E&xit",
                                   " Terminate the program")

        # Creating the menubar
        menuBar = wx.MenuBar()
        menuBar.Append(filemenu, "&File")  # add "filemenu" to the MenuBar
        self.SetMenuBar(menuBar)  # add MenuBar to the Frame Content.

        # Set events
        self.Bind(wx.EVT_MENU, self.OnAbout,
                  menuAbout)  # bind a menu item "about" to event "OnAbout"
        self.Bind(wx.EVT_MENU, self.OnExit, menuExit)

        # The main sizer
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.SetMinSize(800, 300)  # sets the default sizer size.
        self.sizer.Add(self.titleSizer, 0, wx.EXPAND)
        self.sizer.Add(self.bodySizer, 5, wx.EXPAND)
        self.sizer.Add(self.feedbackSizer, 0,
                       wx.EXPAND)  # 0 means will not resize.
        self.sizer.AddSpacer(CodeByDictUI.SPACE_VERTICAL_BUTTONS)
        self.sizer.Add(self.buttonSizer, 0, wx.EXPAND)
        self.sizer.AddSpacer(CodeByDictUI.SPACE_VERTICAL_BUTTONS)
        self.sizer.Add(self.recordSizer, 0, wx.EXPAND)

        # Layout sizers
        self.SetSizer(self.sizer)  # tell frame to use which sizer.
        self.SetAutoLayout(True)
        self.sizer.Fit(self)
        self.Show()

        # run the recognition
        self.recognition = CodingByDictRecognition(ui=self)
        self.recognition.start()

        self.dirname = ''
        self.code_formatter = CodeFormatter()