コード例 #1
0
ファイル: guitabs_setup.py プロジェクト: asaba/RFLab
    def __init__(self, parent):
        SetupPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # spurius calculation variables

        # m_max_RF = 7
        # self.m_max_RF, self.sizer_m_max_RF = return_spinctrl(self, "Max m for RF")
        self.m_min_RF, self.m_max_RF, self.m_step_RF, self.sizer_m_RF = return_spinctrl_min_max(
            self, "m for RF (min/max/step)")
        # n_max_LO = 7
        # self.n_max_LO, self.sizer_n_max_LO = return_spinctrl(self, "Max n for LO")
        self.n_min_LO, self.n_max_LO, self.n_step_LO, self.sizer_n_LO = return_spinctrl_min_max(
            self, "n for LO (min/max/step)")

        # IF_high = 3000
        self.IF_low, self.IF_low_unit, dummy, self.sizer_IF_low, dummy, dummy = return_textbox_labeled(
            self, "Min Spurius Frequency", unit=True)

        # IF_high = 3000
        self.IF_high, self.IF_high_unit, dummy, self.sizer_IF_high, dummy, dummy = return_textbox_labeled(
            self, "Max Spurius Frequency", unit=True)

        # spurius_IF_unit = unit.MHz
        self.spurius_IF_unit, self.sizer_spurius_IF_unit = return_comboBox_unit(
            self, "Spurius Frequency unit")

        # calibration_file_LO = "C:\\Users\\Labele\\Desktop\\Spurius\\LO_cal.csv"
        self.calibration_file_LO, self.calibration_file_LO_button, self.calibration_file_LO_enable, self.sizer_calibration_file_LO = return_file_browse(
            self, "Local Ocillator Cable Calibration File", enabled=True)
        self.calibration_file_LO_button.Bind(wx.EVT_BUTTON,
                                             self.File_browser_LO)

        # calibration_file_RF = "C:\\Users\\Labele\\Desktop\\Spurius\\LO_cal.csv"
        self.calibration_file_RF, self.calibration_file_RF_button, self.calibration_file_RF_enable, self.sizer_calibration_file_RF = return_file_browse(
            self, "Radio Frequency Cable Calibration File", enabled=True)
        self.calibration_file_RF_button.Bind(wx.EVT_BUTTON,
                                             self.File_browser_RF)

        # calibration_file_IF = ""
        self.calibration_file_IF, self.calibration_file_IF_button, self.calibration_file_IF_enable, self.sizer_calibration_file_IF = return_file_browse(
            self, "Output Frequency Cable Calibration File", enabled=True)
        self.calibration_file_IF_button.Bind(wx.EVT_BUTTON,
                                             self.File_browser_IF)

        sizer.Add(self.sizer_m_RF, 0, wx.ALL, 5)
        sizer.Add(self.sizer_n_LO, 0, wx.ALL, 5)
        sizer.Add(self.sizer_IF_low, 0, wx.ALL, 5)
        sizer.Add(self.sizer_IF_high, 0, wx.ALL, 5)
        sizer.Add(self.sizer_calibration_file_LO, 0, wx.ALL, 5)
        sizer.Add(self.sizer_calibration_file_RF, 0, wx.ALL, 5)
        sizer.Add(self.sizer_calibration_file_IF, 0, wx.ALL, 5)
        sizer.Add(self.sizer_result_file_name, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spurius_IF_unit, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #2
0
    def __init__(
        self,
        parent,
        input_file_wildcard="CSV files (*.csv)|*.csv|Excel file (*.xlsx)|*.xlsx"
    ):
        wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
        self.data_file_name, self.data_file_name_button, dummy, self.sizer_data_file_name = return_file_browse(
            self, "Data File")
        self.wildcard = input_file_wildcard
        self.data_file_name_button.Bind(wx.EVT_BUTTON,
                                        self.File_browser_DataFile)

        # Graph Title
        self.graph_title, dummy, dummy, self.sizer_graph_title, dummy, dummy = return_textbox_labeled(
            self, "Graph title")
コード例 #3
0
ファイル: guitabs_setup.py プロジェクト: asaba/RFLab
    def __init__(self, parent):
        SetupPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)
        # Calibration Cable parameter
        # self.frequency_min, self.frequency_min_unit, self.frequency_max, self.frequency_max_unit, self.frequency_step, self.frequency_step_unit, dummy, dummy, self.sizer_frequency = return_min_max_step_labeled(self, "Frequency", unit = True)
        self.frequency_min, dummy, self.frequency_max, dummy, self.frequency_step, dummy, self.frequency_unit, dummy, self.sizer_frequency = return_min_max_step_labeled(
            self, "Frequency", unit=False, single_unit=True)

        # synthetizer_LO_level_min = 6 #dBm
        self.output_level, dummy, dummy, self.sizer_output_level, dummy, dummy = return_textbox_labeled(
            self, "Output Power Level")

        self.output_frequency_unit, self.sizer_output_frequency_unit = return_comboBox_unit(
            self, "Output Frequency unit")

        sizer.Add(self.sizer_frequency, 0, wx.ALL, 5)
        sizer.Add(self.sizer_output_level, 0, wx.ALL, 5)
        sizer.Add(self.sizer_output_frequency_unit, 0, wx.ALL, 5)
        sizer.Add(self.sizer_result_file_name, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #4
0
    def __init__(self, parent, enable_show_function=False):

        InstrumentPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # spectrum_analyzer_state = "ON"
        # self.spectrum_analyzer_state, self.sizer_spectrum_analyzer_state = return_checkbox_labeled(self, "State")

        # spectrum_analyzer_sweep_points = 1001
        self.spectrum_analyzer_sweep_points, dummy, dummy, self.sizer_spectrum_analyzer_sweep_points, dummy, dummy = return_textbox_labeled(
            self, "Sweep points")

        # spectrum_analyzer_resolution_bandwidth = 1
        self.spectrum_analyzer_resolution_bandwidth, self.spectrum_analyzer_resolution_bandwidth_unit, dummy, self.sizer_spectrum_analyzer_resolution_bandwidth, dummy, dummy = return_textbox_labeled(
            self, "Resolution bandwidth", unit=True)

        # spectrum_analyzer_video_bandwidth = 1
        self.spectrum_analyzer_video_bandwidth, self.spectrum_analyzer_video_bandwidth_unit, dummy, self.sizer_spectrum_analyzer_video_bandwidth, dummy, dummy = return_textbox_labeled(
            self, "Video bandwidth", unit=True)

        # spectrum_analyzer_frequency_span = 100
        self.spectrum_analyzer_frequency_span, self.spectrum_analyzer_frequency_span_unit, dummy, self.sizer_spectrum_analyzer_frequency_span, dummy, dummy = return_textbox_labeled(
            self, "Frequency Span", unit=True)

        # spectrum_analyzer_frequency_marker_unit = unit.KHz
        self.spectrum_analyzer_frequency_marker_unit, self.sizer_spectrum_analyzer_frequency_marker_unit = return_comboBox_unit(
            self, "Frequency marker unit")

        ##spectrum_analyzer_attenuation = 0
        # self.spectrum_analyzer_attenuation, dummy, dummy, self.sizer_spectrum_analyzer_attenuation, dummy, dummy = return_textbox_labeled(self, "Attenuation")

        # gainAmplifier = 40 #dB
        self.gainAmplifier, dummy, dummy, self.sizer_gainAmplifier, dummy, dummy = return_textbox_labeled(
            self, "Gain Amplifier")

        # spectrum_analyzer_IF_atten = 0
        self.spectrum_analyzer_IF_atten, dummy, self.spectrum_analyzer_IF_atten_enable, self.sizer_spectrum_analyzer_IF_atten, dummy, dummy = return_textbox_labeled(
            self, "Attenuation", enabled=True)

        # spectrum_analyzer_IF_relative_level = 30
        self.spectrum_analyzer_IF_relative_level, dummy, self.spectrum_analyzer_IF_relative_level_enable, self.sizer_spectrum_analyzer_IF_relative_level, dummy, dummy = return_textbox_labeled(
            self, "Relative Level", enabled=True)

        # threshold_power = 30 #dB
        self.threshold_power, dummy, dummy, self.sizer_threshold_power, dummy, dummy = return_textbox_labeled(
            self, "Threshold")

        self.spectrum_analyzer_central_frequency, self.spectrum_analyzer_central_frequency_unit, dummy, self.sizer_spectrum_analyzer_central_frequency, self.spectrum_analyzer_central_frequency_button, dummy = return_textbox_labeled(
            self,
            "Central Frequency",
            unit=True,
            enabled=False,
            enable_text="",
            read=True,
            button_text="Plot display")
        self.spectrum_analyzer_central_frequency_button.Bind(
            wx.EVT_BUTTON, self.OnPlotSpectrum)

        # FSV_delay = 1
        self.FSV_delay, dummy, dummy, self.sizer_FSV_delay, dummy, dummy = return_textbox_labeled(
            self, "Measure delay (s)")

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        # sizer.Add(self.sizer_spectrum_analyzer_state, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_sweep_points, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_resolution_bandwidth, 0, wx.ALL,
                  5)
        sizer.Add(self.sizer_spectrum_analyzer_video_bandwidth, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_frequency_span, 0, wx.ALL, 5)
        # if enable_show_function:

        sizer.Add(self.sizer_spectrum_analyzer_frequency_marker_unit, 0,
                  wx.ALL, 5)
        # sizer.Add(self.sizer_spectrum_analyzer_attenuation, 0, wx.ALL, 5)
        sizer.Add(self.sizer_gainAmplifier, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_IF_atten, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_IF_relative_level, 0, wx.ALL, 5)
        sizer.Add(self.sizer_threshold_power, 0, wx.ALL, 5)
        sizer.Add(self.sizer_FSV_delay, 0, wx.ALL, 5)
        sizer.Add(self.sizer_spectrum_analyzer_central_frequency, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #5
0
    def __init__(self, parent):
        InstrumentPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # power_meter_state = "ON"
        # self.power_meter_state, self.sizer_power_meter_state = return_checkbox_labeled(self, "State")

        # power_meter_misure_number = 1
        self.power_meter_misure_number, self.sizer_power_meter_misure_number = return_spinctrl(
            self, "Measures", max_value=4000000)

        # power_meter_misure_delay = 1 #seconds
        self.power_meter_misure_delay, dummy, dummy, self.sizer_power_meter_misure_delay, dummy, dummy = return_textbox_labeled(
            self, "Measure delay (ms)")

        self.power_meter_make_zero, self.sizer_power_meter_make_zero = return_checkbox_labeled(
            self, "Make Zero")

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        sizer.Add(self.sizer_power_meter_misure_number, 0, wx.ALL, 5)
        sizer.Add(self.sizer_power_meter_misure_delay, 0, wx.ALL, 5)
        sizer.Add(self.sizer_power_meter_make_zero, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #6
0
    def __init__(self, parent):

        InstrumentPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # power_meter_state = "ON"
        # self.TSC_state, self.sizer_TSC_state = return_checkbox_labeled(self, "State")

        self.TSC_collecting_delay, dummy, dummy, self.sizer_TSC_collecting_delay, dummy, dummy = return_textbox_labeled(
            self, "Collecting time (m)")

        self.TSC_plot_adev, self.sizer_TSC_plot_adev = return_checkbox_labeled(
            self, "Plot Allan Deviation")

        self.result_file_name, self.result_file_name_button, dummy, self.sizer_result_file_name = return_file_browse(
            self, "Output Path")
        self.result_file_name_button.Bind(wx.EVT_BUTTON, self.File_browser_Out)

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        sizer.Add(self.sizer_TSC_collecting_delay, 0, wx.ALL, 5)
        sizer.Add(self.sizer_TSC_plot_adev, 0, wx.ALL, 5)
        sizer.Add(self.sizer_result_file_name, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #7
0
    def __init__(self, parent, attenutation=True, switches=True):

        InstrumentPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # power_meter_state = "ON"
        # self.SAB_state, self.sizer_SAB_state = return_checkbox_labeled(self, "State")

        if attenutation:
            self.SAB_attenuation_min, dummy, self.SAB_attenuation_max, dummy, self.SAB_attenuation_step, dummy, dummy, dummy, self.sizer_SAB_attenuation = return_min_max_step_labeled(
                self, "Attenuation", unit=False)
            self.SAB_attenuation_delay, dummy, dummy, self.sizer_SAB_attenuation_delay, dummy, dummy = return_textbox_labeled(
                self, "Attenuation Delay")

        if switches:
            # power_meter_misure_delay = 1 #seconds
            self.SAB_switch01_delay, dummy, dummy, self.sizer_SAB_switch01_delay, dummy, dummy = return_textbox_labeled(
                self, "Switch 1 delay (s)")

            self.SAB_switch02_delay, dummy, dummy, self.sizer_SAB_switch02_delay, dummy, dummy = return_textbox_labeled(
                self, "Switch 2 delay (s)")

            self.SAB_switch03_delay, dummy, dummy, self.sizer_SAB_switch03_delay, dummy, dummy = return_textbox_labeled(
                self, "Switch 3 delay (s)")

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        if attenutation:
            sizer.Add(self.sizer_SAB_attenuation, 0, wx.ALL, 5)
            sizer.Add(self.sizer_SAB_attenuation_delay, 0, wx.ALL, 5)
        if switches:
            sizer.Add(self.sizer_SAB_switch01_delay, 0, wx.ALL, 5)
            sizer.Add(self.sizer_SAB_switch02_delay, 0, wx.ALL, 5)
            sizer.Add(self.sizer_SAB_switch03_delay, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #8
0
    def __init__(self, parent, range_power=True):
        """"""
        InstrumentPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # synthetizer_LO_state = "ON"
        # self.synthetizer_state, self.sizer_synthetizer_state = return_checkbox_labeled(self, "State")

        # self.synthetizer_frequency_min, self.synthetizer_frequency_min_unit, self.synthetizer_frequency_max, self.synthetizer_frequency_max_unit, self.synthetizer_frequency_step, self.synthetizer_frequency_step_unit, dummy, dummy, self.sizer_synthetizer_frequency = return_min_max_step_labeled(self, "Frequency", unit = True)

        self.synthetizer_frequency_min, dummy, self.synthetizer_frequency_max, dummy, self.synthetizer_frequency_step, dummy, self.synthetizer_frequency_unit, dummy, self.sizer_synthetizer_frequency = return_min_max_step_labeled(
            self, "Frequency", unit=False, single_unit=True)

        # self.synthetizer_level_step, dummy, dummy, self.sizer_synthetizer_level_step, dummy, dummy = return_textbox_labeled(self, "Power Level Step")
        if range_power:
            self.synthetizer_level_min, dummy, self.synthetizer_level_max, dummy, self.synthetizer_level_step, dummy, dummy, dummy, self.sizer_synthetizer_level = return_min_max_step_labeled(
                self, "Level", unit=False)
        else:
            self.synthetizer_level_fixed, dummy, dummy, self.sizer_synthetizer_level_fixed, dummy, dummy = return_textbox_labeled(
                self, "Fixed Power Level")

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        sizer.Add(self.sizer_synthetizer_frequency, 0, wx.ALL, 5)
        if range_power:
            sizer.Add(self.sizer_synthetizer_level, 0, wx.ALL, 5)
        else:
            sizer.Add(self.sizer_synthetizer_level_fixed, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #9
0
    def __init__(self, parent):
        """"""
        InstrumentUSBPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        # pm5_state = "ON"
        # self.pm5_state, self.sizer_pm5_state = return_checkbox_labeled(self, "State")
        # power_meter_misure_number = 1
        self.pm5_misure_number, self.sizer_pm5_misure_number = return_spinctrl(
            self, "Measures")

        # power_meter_misure_delay = 1 #seconds
        self.pm5_misure_delay, dummy, dummy, self.sizer_pm5_misure_delay, dummy, dummy = return_textbox_labeled(
            self, "Measure delay (s)")

        sizer.Add(self.instrument_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_test_sizer, 0, wx.ALL, 5)
        sizer.Add(self.instrument_enable_status_sizer, 0, wx.ALL, 5)
        sizer.Add(self.sizer_pm5_misure_number, 0, wx.ALL, 5)
        sizer.Add(self.sizer_pm5_misure_delay, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #10
0
ファイル: guitabs_setup.py プロジェクト: asaba/RFLab
    def __init__(self, parent):
        SetupPanelClass.__init__(self, parent=parent)
        sizer = wx.BoxSizer(wx.VERTICAL)

        self.output_level, dummy, self.create_dummycable_cb, self.sizer_output_level, dummy, dummy = return_textbox_labeled(
            self,
            "Output Power Level (Dummy Cable)",
            enabled=True,
            enable_text="Create Dummy Cable")

        sizer.Add(self.sizer_result_file_name, 0, wx.ALL, 5)
        sizer.Add(self.sizer_output_level, 0, wx.ALL, 5)

        self.SetSizer(sizer)
コード例 #11
0
    def __init__(
        self,
        parent,
        animated=False,
        z_axes=False,
        input_file_wildcard="CSV files (*.csv)|*.csv|Excel file (*.xlsx)|*.xlsx"
    ):

        self.x_index = 0
        self.y_index = 0
        self.z_index = 0
        self.row_data_filter = []

        PlotGraphPanelClass.__init__(self,
                                     parent=parent,
                                     input_file_wildcard=input_file_wildcard)

        self.graph_x_label, dummy, dummy, self.sizer_graph_x_label, dummy, dummy = return_textbox_labeled(
            self, "X Axes Label")
        self.graph_x_min, dummy, self.graph_x_max, dummy, self.graph_x_step, dummy, self.graph_x_unit, self.grap_x_calc_button, self.sizer_graph_x = return_min_max_step_labeled(
            self,
            "X Axes",
            unit=False,
            single_unit=True,
            button_text="Calculate")

        self.grap_x_calc_button.param_to_calc = {
            "combobox": "self.graph_x_unit",
            "index": "self.x_index",
            "textbox_min": "self.graph_x_min",
            "textbox_max": "self.graph_x_max",
            "textbox_step": "self.graph_x_step",
            "filter": "self.row_data_filter",
            "unit_index": "self.x_unit_index"
        }

        self.grap_x_calc_button.Bind(wx.EVT_BUTTON, self.OnCalcAuto)

        self.graph_y_label, dummy, dummy, self.sizer_graph_y_label, dummy, dummy = return_textbox_labeled(
            self, "Y Axes label", enabled=False, enable_text="Auto")
        self.graph_y_min, dummy, self.graph_y_max, dummy, self.graph_y_step, dummy, self.graph_y_unit, self.grap_y_calc_button, self.sizer_graph_y = return_min_max_step_labeled(
            self,
            "Y Axes",
            unit=False,
            single_unit=True,
            button_text="Calculate")

        self.grap_y_calc_button.param_to_calc = {
            "combobox": "self.graph_y_unit",
            "index": "self.y_index",
            "textbox_min": "self.graph_y_min",
            "textbox_max": "self.graph_y_max",
            "textbox_step": "self.graph_y_step",
            "filter": "self.row_data_filter",
            "unit_index": "self.y_unit_index"
        }

        self.grap_y_calc_button.Bind(wx.EVT_BUTTON, self.OnCalcAuto)

        self.z_axes = False
        if z_axes:
            self.z_axes = True
            self.graph_z_label, dummy, dummy, self.sizer_graph_z_label, dummy, dummy = return_textbox_labeled(
                self, "Z Axes label", enabled=False, enable_text="Auto")
            self.graph_z_min, dummy, self.graph_z_max, dummy, self.graph_z_step, dummy, self.graph_z_unit, self.grap_z_calc_button, self.sizer_graph_z = return_min_max_step_labeled(
                self,
                "Z Axes",
                unit=False,
                single_unit=True,
                button_text="Calculate")

            self.grap_z_calc_button.param_to_calc = {
                "combobox": "self.graph_z_unit",
                "index": "self.z_index",
                "textbox_min": "self.graph_z_min",
                "textbox_max": "self.graph_z_max",
                "textbox_step": "self.graph_z_step",
                "filter": "self.row_data_filter",
                "unit_index": "self.z_unit_index"
            }
            self.grap_z_calc_button.Bind(wx.EVT_BUTTON, self.OnCalcAuto)
        if animated:
            self.graph_animated, self.sizer_graph_animated = return_checkbox_labeled(
                self, "Animate Graph")