def __init__(self, parent, gps): self._gps = gps pre = wx.PreDialog() self._ui = load_ui("DialogGps.xrc") self._ui.LoadOnDialog(pre, parent, "DialogGps") self.PostCreate(pre) self._checkEnable = xrc.XRCCTRL(pre, "checkEnable") self._choicePort = xrc.XRCCTRL(pre, "choicePort") self._choiceBaud = xrc.XRCCTRL(pre, "choiceBaud") self._buttonOk = xrc.XRCCTRL(pre, "wxID_OK") self._checkEnable.SetValue(gps.enabled) self._choicePort.AppendItems(gps.get_ports()) port = self._choicePort.FindString(gps.port) if port == wx.NOT_FOUND: port = 0 self._choicePort.SetSelection(port) self._choiceBaud.AppendItems(map(str, gps.get_bauds())) baud = self._choiceBaud.FindString(str(gps.baud)) if baud == wx.NOT_FOUND: baud = 0 self._choiceBaud.SetSelection(baud) self.Bind(wx.EVT_BUTTON, self.__on_ok, self._buttonOk)
def __init__(self, parent): self._parent = parent self._toolbar = None self._timestamp = 0 self._delayDraw = 1. / MAX_TIMELINE_FPS self._axes = None self._canvas = None self._monitors = None pre = wx.PreDialog() self._ui = load_ui('DialogTimeline.xrc') self._ui.LoadOnDialog(pre, parent, 'DialogTimeline') self.PostCreate(pre) self._panelPlot = xrc.XRCCTRL(pre, 'panelPlot') self._button_Close = xrc.XRCCTRL(pre, 'buttonClose') self.Bind(wx.EVT_BUTTON, self.__on_close, self._button_Close) self.Bind(wx.EVT_CLOSE, self.__on_close) self.__setup_plot() self._toolbar = NavigationToolbar(self._canvas, self) sizer = self._panelPlot.GetSizer() sizer.Add(self._canvas, 1, wx.ALL | wx.GROW) sizer.Add(self._toolbar, 0, wx.LEFT | wx.EXPAND) self.Fit() self._timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.__on_timer, self._timer)
def __init__(self, parent): self._parent = parent self._spectrum = None self._toolbar = None self._textFreq = None self._timestamp = 0 self._delayDraw = 1. / MAX_SPECTRUM_FPS self._axes = None self._canvas = None pre = wx.PreDialog() self._ui = load_ui('DialogSpectrum.xrc') self._ui.LoadOnDialog(pre, parent, 'DialogSpectrum') self.PostCreate(pre) self._panelPlot = xrc.XRCCTRL(pre, 'panelPlot') self._buttonClose = xrc.XRCCTRL(pre, 'buttonClose') self.Bind(wx.EVT_BUTTON, self.__on_close, self._buttonClose) self.Bind(wx.EVT_CLOSE, self.__on_close) self.__setup_plot() self.__setup_toolbar() sizer = self._panelPlot.GetSizer() sizer.Add(self._canvas, 1, wx.ALL | wx.GROW) sizer.Add(self._toolbar, 0, wx.LEFT | wx.EXPAND) self.Fit()
def __init__(self, parent): pre = wx.PrePanel() self._ui = load_ui('PanelToolbar.xrc') handlerNumCtrl = XrcHandlerNumCtrl() self._ui.AddHandler(handlerNumCtrl) self._ui.LoadOnPanel(pre, parent, 'PanelToolbar') self.PostCreate(pre) self._numFreq = xrc.XRCCTRL(pre, 'ctrlFreq') self._choiceGain = xrc.XRCCTRL(pre, 'choiceGain') self._buttonStart = xrc.XRCCTRL(pre, 'buttonStart') self._buttonRec = xrc.XRCCTRL(pre, 'buttonRecord') self._buttonStop = xrc.XRCCTRL(pre, 'buttonStop') self._buttonAdd = xrc.XRCCTRL(pre, 'buttonAdd') self._numFreq.SetMin(1) self._numFreq.SetMax(9999) self._on_freq = None self._on_start = None self._on_rec = None self._on_stop = None self._on_add = None self.Bind(masked.EVT_NUM, self.__on_freq, self._numFreq) self.Bind(wx.EVT_BUTTON, self.__on_start, self._buttonStart) self.Bind(wx.EVT_TOGGLEBUTTON, self.__on_rec, self._buttonRec) self.Bind(wx.EVT_BUTTON, self.__on_stop, self._buttonStop) self.Bind(wx.EVT_BUTTON, self.__on_add, self._buttonAdd)
def __init__(self, parent): pre = wx.PreDialog() self._ui = load_ui('DialogAbout.xrc') self._ui.LoadOnDialog(pre, parent, 'DialogAbout') self.PostCreate(pre) self._buttonOk = xrc.XRCCTRL(pre, 'buttonOk') self.Bind(wx.EVT_BUTTON, self.__on_ok, self._buttonOk)
def __init__(self, parent): pre = wx.PreDialog() self._ui = load_ui('DialogAbout.xrc') self._ui.LoadOnDialog(pre, parent, 'DialogAbout') self.PostCreate(pre) bitmap = xrc.XRCCTRL(pre, 'bitmap') image = load_bitmap('logo.png', bitmap.GetClientSize()) bitmap.SetBitmap(image) self._buttonOk = xrc.XRCCTRL(pre, 'buttonOk') self.Bind(wx.EVT_BUTTON, self.__on_ok, self._buttonOk)
def __init__(self, parent, settings): self._settings = settings pre = wx.PreDialog() self._ui = load_ui('DialogPush.xrc') self._ui.LoadOnDialog(pre, parent, 'DialogPush') self.PostCreate(pre) self._checkEnable = xrc.XRCCTRL(pre, 'checkEnable') self._editUri = xrc.XRCCTRL(pre, 'editUri') self._buttonOk = xrc.XRCCTRL(pre, 'wxID_OK') self._checkEnable.SetValue(settings.get_push_enable()) self._editUri.SetValue(settings.get_push_uri()) self.Bind(wx.EVT_BUTTON, self.__on_ok, self._buttonOk)
def __init__(self, parent, eventHandler): Monitor.__init__(self, None, False, False, None, None, False, [], []) self._eventHandler = eventHandler self._isRecording = False self._isRunning = False self._isLow = True self._colours = [] pre = wx.PrePanel() self._ui = load_ui('PanelMonitor.xrc') handlerNumCtrl = XrcHandlerNumCtrl() handlerMeter = XrcHandlerMeter() self._ui.AddHandler(handlerNumCtrl) self._ui.AddHandler(handlerMeter) self._ui.LoadOnPanel(pre, parent, 'PanelMonitor') self.PostCreate(pre) self._panelColour = xrc.XRCCTRL(pre, 'panelColour') self._checkEnable = xrc.XRCCTRL(pre, 'checkEnable') self._checkAlert = xrc.XRCCTRL(pre, 'checkAlert') self._checkDynamic = xrc.XRCCTRL(pre, 'checkDynamic') self._choiceFreq = xrc.XRCCTRL(pre, 'choiceFreq') self._textSignals = xrc.XRCCTRL(pre, 'textSignals') # TODO: hackish for child in self.GetChildren(): if isinstance(child, WidgetMeter): self._meterLevel = child self._sliderThreshold = xrc.XRCCTRL(pre, 'sliderThreshold') self._buttonDel = xrc.XRCCTRL(pre, 'buttonDel') self.__set_records() self._on_del = None self._panelColour.Bind(wx.EVT_LEFT_UP, self.__on_colour) self.Bind(wx.EVT_CHECKBOX, self.__on_enable, self._checkEnable) self.Bind(wx.EVT_CHECKBOX, self.__on_alert, self._checkAlert) self.Bind(wx.EVT_CHECKBOX, self.__on_dynamic, self._checkDynamic) self.Bind(wx.EVT_CHOICE, self.__on_freq, self._choiceFreq) self.Bind(wx.EVT_SLIDER, self.__on_threshold, self._sliderThreshold) self.Bind(wx.EVT_BUTTON, self.__on_del, self._buttonDel)
def __init__(self, parent): self._parent = parent self._isRecording = False self._isSaved = True self._timestamp = None self._signals = [] levelsLength = MAX_LEVELS_TIME * SAMPLE_RATE / SAMPLES self._levels = collections.deque(maxlen=round(levelsLength)) pre = wx.PrePanel() self._ui = load_ui('PanelMonitor.xrc') handlerNumCtrl = XrcHandlerNumCtrl() handlerMeter = XrcHandlerMeter() self._ui.AddHandler(handlerNumCtrl) self._ui.AddHandler(handlerMeter) self._ui.LoadOnPanel(pre, parent, 'PanelMonitor') self.PostCreate(pre) self._checkEnable = xrc.XRCCTRL(pre, 'checkEnable') self._choiceFreq = xrc.XRCCTRL(pre, 'choiceFreq') self._textSignals = xrc.XRCCTRL(pre, 'textSignals') # TODO: hackish for child in self.GetChildren(): if child.Name == 'panel': self._meterLevel = child self._sliderThreshold = xrc.XRCCTRL(pre, 'sliderThreshold') self._buttonDel = xrc.XRCCTRL(pre, 'buttonDel') self._sliderThreshold.SetMin(LEVEL_MIN) self._sliderThreshold.SetMax(LEVEL_MAX) self._meterLevel.set_threshold(self._sliderThreshold.GetValue()) self.__set_signals() self._on_del = None self.Bind(wx.EVT_CHOICE, self.__on_freq, self._choiceFreq) self.Bind(wx.EVT_SLIDER, self.__on_threshold, self._sliderThreshold) self.Bind(wx.EVT_CHECKBOX, self.__on_enable, self._checkEnable) self.Bind(wx.EVT_BUTTON, self.__on_del, self._buttonDel)
def __init__(self): self._monitors = [] self._freqs = [] self._levels = numpy.zeros(BINS, dtype=numpy.float32) self._settings = Settings() self._filename = None self._receive = None self._dialogTimeline = None self._dialogSpectrum = None self._gps = None self._location = None self._ui = load_ui('FrameMain.xrc') handlerToolbar = XrcHandlerToolbar() self._ui.AddHandler(handlerToolbar) self._frame = self._ui.LoadFrame(None, 'FrameMain') self.__set_title() self._window = xrc.XRCCTRL(self._frame, 'window') self._status = xrc.XRCCTRL(self._frame, 'statusBar') self._toolbar = xrc.XRCCTRL(self._frame, 'PanelToolbar') self._sizerWindow = self._window.GetSizer() sdr = RtlSdr() gains = sdr.get_gains() gains = [float(gain) / 10. for gain in gains] sdr.close() self._toolbar.set_callbacks(self.__on_freq, self.__on_start, self.__on_rec, self.__on_stop, self.__on_add) self._toolbar.enable_start(True) self._toolbar.set_freq(self._settings.get_freq()) self._toolbar.set_gains(gains) self._toolbar.set_gain(self._settings.get_gain()) self.__add_monitors() self._server = Server(self._frame) self.__start_gps() self._menu = self._frame.GetMenuBar() idOpen = xrc.XRCID('menuOpen') self._menuOpen = self._menu.FindItemById(idOpen) self._frame.Bind(wx.EVT_MENU, self.__on_open, id=idOpen) idSave = xrc.XRCID('menuSave') self._menuSave = self._menu.FindItemById(idSave) self._frame.Bind(wx.EVT_MENU, self.__on_save, id=idSave) idSaveAs = xrc.XRCID('menuSaveAs') self._menuSaveAs = self._menu.FindItemById(idSaveAs) self._frame.Bind(wx.EVT_MENU, self.__on_save_as, id=idSaveAs) idClear = xrc.XRCID('menuClear') self._menuClear = self._menu.FindItemById(idClear) self._frame.Bind(wx.EVT_MENU, self.__on_clear, id=idClear) idGps = xrc.XRCID('menuGps') self._menuGps = self._menu.FindItemById(idGps) self._frame.Bind(wx.EVT_MENU, self.__on_gps, id=idGps) idTimeline = xrc.XRCID('menuTimeline') self._frame.Bind(wx.EVT_MENU, self.__on_timeline, id=idTimeline) self._menuTimeline = self._menu.FindItemById(idTimeline) idSpectrum = xrc.XRCID('menuSpectrum') self._frame.Bind(wx.EVT_MENU, self.__on_spectrum, id=idSpectrum) self._menuSpectrum = self._menu.FindItemById(idSpectrum) idExit = xrc.XRCID('menuExit') self._menuExit = self._menu.FindItemById(idExit) self._frame.Bind(wx.EVT_MENU, self.__on_exit, id=idExit) idAbout = xrc.XRCID('menuAbout') self._frame.Bind(wx.EVT_MENU, self.__on_about, id=idAbout) self._frame.Bind(EVT_TIMELINE_CLOSE, self.__on_timeline_close) self._frame.Bind(EVT_SPECTRUM_CLOSE, self.__on_spectrum_close) self._frame.Bind(wx.EVT_CLOSE, self.__on_exit) self._frame.Connect(-1, -1, EVENT_THREAD, self.__on_event) self._frame.Show()
def __init__(self): wx.Frame.__init__(self, None) self._monitors = [] self._freqs = [] self._levels = numpy.zeros(BINS, dtype=numpy.float32) self._settings = Settings() self._filename = None self._receive = None self._dialogTimeline = None self._dialogSpectrum = None self._gps = None self._location = None self._isSaved = True self._warnedPush = False cmap = cm.get_cmap('Set1') self._colours = [cmap(float(i) / COLOURS) for i in range(COLOURS)] self._ui = load_ui('FrameMain.xrc') self._menu = self._ui.LoadMenuBar('menuBar') self._panelMonitors = self._ui.LoadObject(self, 'scrolled', 'wxScrolledWindow') self._status = self._ui.LoadObject(self, 'statusBar', 'wxStatusBar') self._sizerMonitors = self._panelMonitors.GetSizer() self._toolbar = Toolbar(self) self.SetMenuBar(self._menu) self.SetStatusBar(self._status) self._mgr = aui.AuiManager(self) self._mgr.AddPane(self._panelMonitors, aui.AuiPaneInfo(). Centre(). CentrePane()) self._mgr.AddPane(self._toolbar, aui.AuiPaneInfo(). Bottom(). ToolbarPane(). LeftDockable(False). RightDockable(False). NotebookDockable(False). MinSize(self._toolbar.GetMinSize())) self._mgr.Update() width = self._toolbar.GetBestSize().GetWidth() self.SetSize((width, -1)) self.SetMinSize((width, 300)) self.__set_icon() try: sdr = RtlSdr() gains = sdr.get_gains() gains = [float(gain) / 10. for gain in gains] sdr.close() except IOError: wx.MessageBox('No radio found', APP_NAME, wx.OK | wx.ICON_ERROR) exit(1) self._toolbar.set_callbacks(self.__on_freq, self.__on_start, self.__on_rec, self.__on_stop, self.__on_add) self._toolbar.enable_start(True) self._toolbar.set_freq(self._settings.get_freq()) self._toolbar.set_gains(gains) self._toolbar.set_gain(self._settings.get_gain()) self._toolbar.set_cal(self._settings.get_cal()) self._toolbar.set_dynamic_percentile(self._settings. get_dynamic_percentile()) self.__on_freq(self._settings.get_freq()) self._push = Push(self) self._server = Server(self) self.__start_gps() idOpen = xrc.XRCID('menuOpen') self._menuOpen = self._menu.FindItemById(idOpen) self.Bind(wx.EVT_MENU, self.__on_open, id=idOpen) idSave = xrc.XRCID('menuSave') self._menuSave = self._menu.FindItemById(idSave) self.Bind(wx.EVT_MENU, self.__on_save, id=idSave) idSaveAs = xrc.XRCID('menuSaveAs') self.Bind(wx.EVT_MENU, self.__on_save_as, id=idSaveAs) idClear = xrc.XRCID('menuClear') self._menuClear = self._menu.FindItemById(idClear) self.Bind(wx.EVT_MENU, self.__on_clear, id=idClear) idGps = xrc.XRCID('menuGps') self._menuGps = self._menu.FindItemById(idGps) self.Bind(wx.EVT_MENU, self.__on_gps, id=idGps) idTimeline = xrc.XRCID('menuTimeline') self.Bind(wx.EVT_MENU, self.__on_timeline, id=idTimeline) self._menuTimeline = self._menu.FindItemById(idTimeline) idSpectrum = xrc.XRCID('menuSpectrum') self.Bind(wx.EVT_MENU, self.__on_spectrum, id=idSpectrum) self._menuSpectrum = self._menu.FindItemById(idSpectrum) idExit = xrc.XRCID('menuExit') self._menuExit = self._menu.FindItemById(idExit) self.Bind(wx.EVT_MENU, self.__on_exit, id=idExit) idPush = xrc.XRCID('menuPush') self.Bind(wx.EVT_MENU, self.__on_push, id=idPush) idAbout = xrc.XRCID('menuAbout') self.Bind(wx.EVT_MENU, self.__on_about, id=idAbout) self._alert = load_sound('alert.wav') self._alertLast = 0 self.__set_title() self.__enable_controls(True) self.Bind(EVT_TIMELINE_CLOSE, self.__on_timeline_close) self.Bind(EVT_SPECTRUM_CLOSE, self.__on_spectrum_close) self.Bind(wx.EVT_CLOSE, self.__on_exit) self.Connect(-1, -1, EVENT_THREAD, self.__on_event) self.Show() self.__clear_levels()