コード例 #1
0
def _build_Session(vip):
    tb = 'Session'

    vip.content['captions'][tb]['lb'] = {'_lb_session_line' : "Session"
                                        ,'F_dict_index'     : "Session list index:"
                                        }
    vip.content['captions'][tb]['bn'] = {'_bn_session_save'      : "Save to file"
                                        ,'_bn_session_load'      : "Load from file"
                                        ,'_bn_session_browse'    : "Browse files"
                                        ,'_bn_session_save_local' : "Save to local"
                                        ,'_bn_session_load_local' : "Load from local"
                                        }
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {'FILE_PATH_session'    : lambda text: se.le_or_dm_change(vip, tb, 'FILE_PATH_session', text)
                                      }
    vip.content['events'][tb]['dm']   = {'F_dict_index' : lambda text: se.le_or_dm_change(vip, tb, 'F_dict_index', text)
                                        }
    vip.content['events'][tb]['bn'] = {'_bn_session_save'      : lambda: se.bn_save_session_to_file(vip)
                                      ,'_bn_session_load'      : lambda: se.bn_load_session_to_vip(vip)
                                      ,'_bn_session_save_local' : lambda: se.bn_vip_to_list_session(vip)
                                      ,'_bn_session_load_local' : lambda: se.bn_list_session_to_vip(vip)
                                      ,'_bn_session_browse'    : lambda: se.bn_browse_for(vip, 'FILE_PATH_session')
                                      }
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {'F_dict_index' : sorted(vip._sessions_local.keys())
                                 }

    sw.__fill_widgets(vip, tb)

    ### ----------
    vip._qWidgets['lb'][tb]['_lb_session_line'].setAlignment(QtCore.Qt.AlignCenter)

########## ########## hBoxs
    hBox_ks = ['_browse', '_path', '_file_bns', '_list_dm', '_list_bns']
    hBoxs = {k : QtGui.QHBoxLayout() for k in hBox_ks}

    hBoxs['_browse'].addWidget(vip._qWidgets['lb'][tb]['_lb_session_line'])
    hBoxs['_browse'].addWidget(vip._qWidgets['bn'][tb]['_bn_session_browse'])

    hBoxs['_file_bns'].addWidget(vip._qWidgets['bn'][tb]['_bn_session_save'])
    hBoxs['_file_bns'].addWidget(vip._qWidgets['bn'][tb]['_bn_session_load'])

    hBoxs['_path'].addWidget(vip._qWidgets['le'][tb]['FILE_PATH_session'])

    hBoxs['_list_dm'].addWidget(vip._qWidgets['lb'][tb]['F_dict_index'])
    hBoxs['_list_dm'].addWidget(vip._qWidgets['dm'][tb]['F_dict_index'])
    hBoxs['_list_dm'].addStretch(.1)

    hBoxs['_list_bns'].addWidget(vip._qWidgets['bn'][tb]['_bn_session_save_local'])
    hBoxs['_list_bns'].addWidget(vip._qWidgets['bn'][tb]['_bn_session_load_local'])

########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in hBox_ks:
        vBox.addLayout(hBoxs[k])
コード例 #2
0
def _build_Canvas_columns(vip, tb):

    from widgets.ResultCanvas_QTAgg import Canvas2dData, Canvas3dData

    vip.Canvas[tb]['2d_data'] = Canvas2dData(tb, vip)
    vip.Canvas[tb]['3d_data'] = Canvas3dData(tb, vip)

########## ##########
    vip.content['captions'][tb]['lb'] = {'_lb_data_set'      : "Data set"
                                        ,'_lb_plot_function' : "with 3d data plotted as"
                                        }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {'B_keep_updated'     : "Update "+tb}

    vip.content['events'][tb]['le'] = {}
    vip.content['events'][tb]['cb'] = {'B_keep_updated'  : lambda state: se.cb_toggled(vip, tb, 'B_keep_updated')}
    vip.content['events'][tb]['dm'] = {'F_data_set'      : lambda text: se.dm_plot_canvas_change(vip, tb, 'F_data_set'     , text)
                                      ,'F_plot_function' : lambda text: se.dm_plot_canvas_change(vip, tb, 'F_plot_function', text)
                                      }
    vip.content['events'][tb]['bn'] = {}

    vip.content['cb_vals'][tb] = {'B_keep_updated'     : ('ON', 'OFF')}

    vip.content['dm_vals'][tb] = {'F_data_set'      : menus.DATA_SET_KEYS
                                 ,'F_plot_function' : menus.PLOT_FUNCTION_KEYS
                                 }

    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE-2)

    #### ----------

    colours = {'Plot_column_1' : {'2d_data' : cs.COLOR_TRACE_1, '3d_data' : cs.COLOR_DENSITY_1}
              ,'Plot_column_2' : {'2d_data' : cs.COLOR_TRACE_2, '3d_data' : cs.COLOR_DENSITY_2}
              ,'Plot_column_3' : {'2d_data' : cs.COLOR_TRACE_3, '3d_data' : cs.COLOR_DENSITY_3}
              ,'Plot_column_4' : {'2d_data' : cs.COLOR_TRACE_4, '3d_data' : cs.COLOR_DENSITY_4}
              }
    for plot_type, color in colours[tb].iteritems():
        vip.Canvas[tb][plot_type]._Figure.set_facecolor(color)

########## ########## hBoxs
    hBox = QtGui.QHBoxLayout()

    hBox.addWidget(vip._qWidgets['cb'][tb]['B_keep_updated'])
    hBox.addLayout(vip._blanks.next())
    hBox.addStretch(.1)
    hBox.addWidget(vip._qWidgets['lb'][tb]['_lb_data_set'])
    hBox.addWidget(vip._qWidgets['dm'][tb]['F_data_set'])
    hBox.addWidget(vip._qWidgets['lb'][tb]['_lb_plot_function'])
    hBox.addWidget(vip._qWidgets['dm'][tb]['F_plot_function'])

########## ########## vBo
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addWidget(vip.Canvas[tb]['2d_data'])
    vBox.addWidget(vip.Canvas[tb]['3d_data'])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBox)
コード例 #3
0
def _build_Window_buttons(vip):
    qw_ref = '_Popup_Windows'

    tab_ws = ['le', 'dm', 'cb', 'bn', 'lb']
    for k in tab_ws:
        vip._qWidgets[k][qw_ref] = {}
    for k in ['captions', 'events']:
        vip.content[k][qw_ref] = {}

########## ########## content

    vip.content['captions'][qw_ref]['lb'] = {'_lb_popup'    : " Popup windows "}
    vip.content['captions'][qw_ref]['bn'] = {'_bn_plots_12' : "Plot columns 1, 2"
                                            ,'_bn_plots_34' : "Plot columns 3, 4"
                                            ,'_bn_notes'    : "Notes"
                                            ,'_bn_options'  : "Options"         # "Check connection"
                                            ,'_bn_scripts'  : "Scripts"         # "Check connection"
                                            }
    vip.content['captions'][qw_ref]['cb'] = {}
    vip.content['events'][qw_ref]['le'] = {}
    vip.content['events'][qw_ref]['cb'] = {}
    vip.content['events'][qw_ref]['dm'] = {}
    vip.content['events'][qw_ref]['bn'] = {'_bn_plots_12' : lambda: se.bn_open_plots_12(vip)
                                          ,'_bn_plots_34' : lambda: se.bn_open_plots_34(vip)
                                          ,'_bn_scripts'  : lambda: se.bn_open_scripts(vip)
                                          ,'_bn_options'  : lambda: se.bn_open_options(vip)
                                          ,'_bn_notes'    : lambda: se.bn_open_notes_in_editor(vip)
                                          }

    sw.__fill_widgets(vip, qw_ref)

    vip._qWidgets['lb'][qw_ref]['_lb_popup'].setAlignment(QtCore.Qt.AlignCenter)

########## ########## hBoxs

    hBox_ks = ['_row_'+str(i) for i in [1,2,3]]
    hBoxs = {k : QtGui.QHBoxLayout() for k in hBox_ks}

    hBoxs['_row_1'].addWidget(vip._qWidgets['lb'][qw_ref]['_lb_popup'])
    hBoxs['_row_1'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_scripts'])
    hBoxs['_row_2'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_notes'])
    hBoxs['_row_2'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_options'])
    hBoxs['_row_3'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_plots_12'])
    hBoxs['_row_3'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_plots_34'])

########## ########## vBox

    vip._popup_window_qw_box = QtGui.QWidget()

    vBox = QtGui.QVBoxLayout(vip._popup_window_qw_box)

    for k in hBox_ks:
        vBox.addLayout(hBoxs[k])
コード例 #4
0
def _build_Instrument_buttons(vip):
    qw_ref = '_Instruments'

    tab_ws = ['le', 'dm', 'cb', 'bn', 'lb']
    for k in tab_ws:
        vip._qWidgets[k][qw_ref] = {}
    for k in ['captions', 'events']:
        vip.content[k][qw_ref] = {}

########## ########## content

    vip.content['captions'][qw_ref]['lb'] = {'_lb_instr'    : "Instruments"}
    vip.content['captions'][qw_ref]['bn'] = {'_bn_feedback' : "Feedback"
                                            ,'_bn_connect'  : "Connect"
                                            ,'_bn_adopt'    : "Adopt settings"
                                            }
    vip.content['captions'][qw_ref]['cb'] = {}
    vip.content['events'][qw_ref]['le'] = {}
    vip.content['events'][qw_ref]['cb'] = {}
    vip.content['events'][qw_ref]['dm'] = {}
    vip.content['events'][qw_ref]['bn'] = {'_bn_feedback' : lambda: se.bn_open_GUI_feedback(vip)
                                      ,'_bn_connect'  : lambda: se.bn_connect_to_lab(vip)
                                      ,'_bn_adopt'    : lambda: se.bn_adopt_settings(vip)
                                      }

    sw.__fill_widgets(vip, qw_ref)

    #### ----------
    vip._qWidgets['bn'][qw_ref]['_bn_connect'].setFont(QtGui.QFont(cs.FONT, cs.FONTSIZE+4))
    vip._qWidgets['bn'][qw_ref]['_bn_connect'].adjustSize()
    vip._qWidgets['lb'][qw_ref]['_lb_instr'].setAlignment(QtCore.Qt.AlignCenter)

########## ########## hBoxs

    hBox_ks = ['__instr', '__connect']
    hBoxs = {k : QtGui.QHBoxLayout() for k in hBox_ks}

    hBoxs['__instr'].addWidget(vip._qWidgets['lb'][qw_ref]['_lb_instr'])
    hBoxs['__instr'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_feedback'])
    hBoxs['__connect'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_connect'])
    hBoxs['__connect'].addWidget(vip._qWidgets['bn'][qw_ref]['_bn_adopt'])

########## ########## vBox

    vip._instrument_qw_box = QtGui.QWidget()

    vBox = QtGui.QVBoxLayout(vip._instrument_qw_box)

    for k in hBox_ks:
        vBox.addLayout(hBoxs[k])
コード例 #5
0
def _build_Meas_main(vip):
    tb = 'Meas_main'

    vip.content['captions'][tb]['lb'] = {}
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {
        'B_during_sweep_1': "Measure during sweep 1:"
    }
    vip.content['events'][tb]['le'] = {}
    vip.content['events'][tb]['cb'] = {
        'B_during_sweep_1':
        lambda state: se.cb_toggled(vip, tb, 'B_during_sweep_1')
    }
    vip.content['events'][tb]['dm'] = {
        'meas_type':
        lambda text: se.le_or_dm_change(vip, tb, 'meas_type', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['cb_vals'][tb] = {'B_during_sweep_1': ('ON', 'OFF')}
    vip.content['dm_vals'][tb] = {
        'meas_type':
        session.Tree['_Routines']['Traces'].keys() +
        session.Tree['_Routines']['Points'].keys()
    }
    sw.__fill_widgets(vip, tb)

    #### ----------
    vip._qWidgets['cb'][tb]['B_during_sweep_1'].setFont(
        QtGui.QFont(cs.FONT, cs.FONTSIZE + 1))
    vip._qWidgets['dm'][tb]['meas_type'].setFont(
        QtGui.QFont(cs.FONT, cs.FONTSIZE + 1))

    ########## ########## hBoxs

    hBox2 = QtGui.QHBoxLayout()

    hBox2.addStretch(1)

    hBox2.addWidget(vip._qWidgets['dm'][tb]['meas_type'])
    hBox2.addStretch(1)

    ########## ########## vBo
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addLayout(hBox2)
コード例 #6
0
def _build_Freq_query(vip):
    tb = 'Freq. query'

    vip.content['captions'][tb]['lb'] = {
        'TITLE_instr_name': "Instrument to query:"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}
    vip.content['events'][tb]['le'] = {}
    vip.content['events'][tb]['dm'] = {
        "TITLE_instr_name":
        lambda text: se.le_or_dm_change(vip, tb, "TITLE_instr_name", text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}
    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'TITLE_instr_name': session.instr_classification['SG']
    }

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs

    dm_ks = ['TITLE_instr_name']

    hBox_ks = dm_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBox_ks}

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])
    vBox.addLayout(vip._blanks.next())

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())

    vBox.addLayout(vip._blanks.next())
コード例 #7
0
def _build_Printer_demo(vip):
    tb = 'Printer demo'
    k = 'string_to_print'

    vip.content['captions'][tb]['lb'] = {k: "String to be printed:"}
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}
    vip.content['events'][tb]['le'] = {
        k: lambda text: se.le_or_dm_change(vip, tb, k, text)
    }
    vip.content['events'][tb]['dm'] = {}
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}
    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {}

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs

    hBox_lb = QtGui.QHBoxLayout()
    hBox_le = QtGui.QHBoxLayout()

    hBox_lb.addWidget(vip._qWidgets['lb'][tb][k])
    hBox_le.addWidget(vip._qWidgets['le'][tb][k])

    ########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addStretch(1)
    vBox.addLayout(hBox_lb)
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBox_le)
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(vip._blanks.next())
    vBox.addStretch(1)
コード例 #8
0
def _build_Flux_sweep(vip):
    tb = 'Flux sweep'

    vip.content['captions'][tb]['lb'] = {
        "ssg_ip": "Source:",
        "vna_ip": "VNA:",
        "com_port": "COM port:",
        "dac_port": "DAC port:",
        "cav_freq": "Cavity freq.:",
        "span": "Span:",
        "pow": "Power:",
        "start_freq": "Start frequency:",
        "stop_freq": "Stop frequency:",
        "step_size_ssg": "Step size (source):",
        "start_flux": "Flux start:",
        "stop_flux": "Flux stop:",
        "step_size_srs": "Step size (srs):",
        "fn": "Results file name:"
    }

    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        "com_port":
        lambda text: se.le_or_dm_change(vip, tb, "com_port", text),
        "dac_port":
        lambda text: se.le_or_dm_change(vip, tb, "dac_port", text),
        "cav_freq":
        lambda text: se.le_or_dm_change(vip, tb, "cav_freq", text),
        "span":
        lambda text: se.le_or_dm_change(vip, tb, "span", text),
        "pow":
        lambda text: se.le_or_dm_change(vip, tb, "pow", text),
        "start_freq":
        lambda text: se.le_or_dm_change(vip, tb, "start_freq", text),
        "stop_freq":
        lambda text: se.le_or_dm_change(vip, tb, "stop_freq", text),
        "step_size_ssg":
        lambda text: se.le_or_dm_change(vip, tb, "step_size_ssg", text),
        "start_flux":
        lambda text: se.le_or_dm_change(vip, tb, "start_flux", text),
        "stop_flux":
        lambda text: se.le_or_dm_change(vip, tb, "stop_flux", text),
        "step_size_srs":
        lambda text: se.le_or_dm_change(vip, tb, "step_size_srs", text),
        "fn":
        lambda text: se.le_or_dm_change(vip, tb, "fn", text)
    }
    vip.content['events'][tb]['dm'] = {
        "ssg_ip": lambda text: se.le_or_dm_change(vip, tb, "ssg_ip", text),
        "vna_ip": lambda text: se.le_or_dm_change(vip, tb, "vna_ip", text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'ssg_ip': session.instr_classification['SG'],
        'vna_ip': session.instr_classification['VNA']
    }

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs

    dm_ks = vip.content['events'][tb]['dm'].keys()

    le_ks = [
        "com_port", "dac_port", "cav_freq", "span", "pow", "start_freq",
        "stop_freq", "step_size_ssg", "start_flux", "stop_flux",
        "step_size_srs", "fn"
    ]

    hBox_ks = dm_ks + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBox_ks}

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])
    vBox.addLayout(vip._blanks.next())

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())

    vBox.addLayout(vip._blanks.next())

    for k in le_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())
コード例 #9
0
def _build_Freq_vs_drive_power(vip):
    tb = 'Freq. vs. drive power'

    vip.content['captions'][tb]['lb'] = {
        "Sweep_instr": "Sweep instrument:",
        "VNA_instr": "VNA instrument:",
        "R_freq_cavity_VNA": "Freq. (cavity) [GHz]:",
        "R_freq_span_cavity_VNA": "Freq. span (cavity) [Hz]:",
        "R_power_SG": "Source power:",
        "R_freq_start_SG": "Source freq. start [GHz]:",
        "R_freq_stop_SG": "Source freq. stop [GHz]:",
        "R_freq_step_size_SG": "Source freq. step size [GHz]:",
        "R_power_start_SG": "Source power start:",
        "R_power_stop_SG": "Source power stop:",
        "R_power_step_size_SG": "Source power step size:"
    }

    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        "R_freq_cavity_VNA":
        lambda text: se.le_or_dm_change(vip, tb, "R_freq_cavity_VNA", text),
        "R_freq_span_cavity_VNA":
        lambda text: se.le_or_dm_change(vip, tb, "R_freq_span_cavity_VNA", text
                                        ),
        "R_power_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_power_SG", text),
        "R_freq_start_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_freq_start_SG", text),
        "R_freq_stop_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_freq_stop_SG", text),
        "R_freq_step_size_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_freq_step_size_SG", text),
        "R_power_start_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_power_start_SG", text),
        "R_power_stop_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_power_stop_SG", text),
        "R_power_step_size_SG":
        lambda text: se.le_or_dm_change(vip, tb, "R_power_step_size_SG", text)
    }
    vip.content['events'][tb]['dm'] = {
        "Sweep_instr":
        lambda text: se.le_or_dm_change(vip, tb, "Sweep_instr", text),
        "VNA_instr":
        lambda text: se.le_or_dm_change(vip, tb, "VNA_instr", text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'Sweep_instr': session.instr_classification['SG'],
        'VNA_instr': session.instr_classification['VNA']
    }

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs

    dm_ks = ['Sweep_instr', 'VNA_instr']

    le_ks = [
        "R_freq_cavity_VNA", "R_freq_span_cavity_VNA", "R_power_SG",
        "R_freq_start_SG", "R_freq_stop_SG", "R_freq_step_size_SG",
        "R_power_start_SG", "R_power_stop_SG", "R_power_step_size_SG"
    ]
    hBox_ks = dm_ks + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBox_ks}

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addStretch(1)

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())

    vBox.addLayout(vip._blanks.next())

    for k in le_ks:
        vBox.addLayout(hBoxs[k])

    vBox.addStretch(1)
コード例 #10
0
def _build_Sweep(vip):
    tb = 'Sweep'

    import interface.measurement as measurement
    vip.content['captions'][tb]['lb'] = {}
    vip.content['captions'][tb]['bn'] = {
        '_bn_do_sweep': cs.BLANK + "Do sweep" + cs.BLANK,
        '_bn_stop': cs.BLANK + "Stop" + cs.BLANK
    }
    vip.content['captions'][tb]['cb'] = {
        'B_is_max_1': "Single sweep",
        'B_is_max_2': "Double sweep",
        'B_is_max_3': "Triple trouble",
        'B_find_min': "Get minimum"
    }
    vip.content['events'][tb]['le'] = {}
    vip.content['events'][tb]['cb'] = {
        'B_is_max_1': lambda state: se.cb_toggled(vip, tb, 'B_is_max_1'),
        'B_is_max_2': lambda state: se.cb_toggled(vip, tb, 'B_is_max_2'),
        'B_is_max_3': lambda state: se.cb_toggled(vip, tb, 'B_is_max_3'),
        'B_find_min': lambda state: se.cb_toggled(vip, tb, 'B_find_min')
    }
    vip.content['events'][tb]['dm'] = {
        'sweep_title_1':
        lambda text: se.le_or_dm_change(vip, tb, 'sweep_title_1', text),
        'sweep_title_2':
        lambda text: se.le_or_dm_change(vip, tb, 'sweep_title_2', text),
        'sweep_title_3':
        lambda text: se.le_or_dm_change(vip, tb, 'sweep_title_3', text)
    }
    vip.content['events'][tb]['bn'] = {
        '_bn_do_sweep': lambda: measurement.bn_do_sweep(vip),
        '_bn_stop': lambda: se.bn_block_measurement(vip)
    }
    vip.content['cb_vals'][tb] = {
        'B_is_max_1': ('ON', 'OFF'),
        'B_is_max_2': ('ON', 'OFF'),
        'B_is_max_3': ('ON', 'OFF'),
        'B_find_min': ('ON', 'OFF')
    }
    vip.content['dm_vals'][tb] = {
        'sweep_title_1': session.Tree['_Sweeps']['Sweep_1'].keys(),
        'sweep_title_2': session.Tree['_Sweeps']['Sweep_2'].keys(),
        'sweep_title_3': session.Tree['_Sweeps']['Sweep_3'].keys()
    }
    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE + 1)

    #### ----------
    for k in ['_bn_do_sweep']:
        vip._qWidgets['bn'][tb][k].setFont(
            QtGui.QFont(cs.FONT, cs.FONTSIZE + 4))
        vip._qWidgets['bn'][tb][k].adjustSize()
    for k in ['_bn_stop']:
        vip._qWidgets['bn'][tb][k].setFont(
            QtGui.QFont(cs.FONT, cs.FONTSIZE + 2))
        vip._qWidgets['bn'][tb][k].adjustSize()
    for k in vip.content['captions'][tb]['cb'].keys():
        vip._qWidgets['cb'][tb][k].setFixedWidth(200)
        vip._qWidgets['cb'][tb][k].setFont(
            QtGui.QFont(cs.FONT, cs.FONTSIZE + 1))

########## ########## hBoxs
    _RANGE3 = ['1', '2', '3']
    hBoxs = {k: QtGui.QHBoxLayout() for k in ['S', 'P'] + _RANGE3}
    hBoxs['_B_find_min'] = QtGui.QHBoxLayout()

    hBoxs['S'].addStretch(1)
    hBoxs['S'].addWidget(vip._qWidgets['bn'][tb]['_bn_do_sweep'])
    hBoxs['S'].addWidget(vip._qWidgets['bn'][tb]['_bn_stop'])
    hBoxs['S'].addStretch(1)

    hBoxs['_B_find_min'].addWidget(vip._qWidgets['cb'][tb]['B_find_min'])
    hBoxs['_B_find_min'].addStretch(1)

    hBoxs['P'].addStretch(1)
    hBoxs['P'].addWidget(vip._qWidgets['qw']['Meas_main'])  ###
    hBoxs['P'].addStretch(1)

    for i in _RANGE3:
        hBoxs[i].addStretch(1)
        hBoxs[i].addWidget(vip._qWidgets['cb'][tb]['B_is_max_' + i])
        hBoxs[i].addWidget(vip._qWidgets['dm'][tb]['sweep_title_' + i])
        hBoxs[i].addStretch(1)

########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addLayout(hBoxs['S'])
    vBox.addLayout(hBoxs['_B_find_min'])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBoxs['P'])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBoxs['1'])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBoxs['2'])
    vBox.addLayout(hBoxs['3'])
コード例 #11
0
def _build_I_Q_point(vip):
    from interface.session_widgets import sweep_ks

    tb = 'I Q point'

    vip.content['captions'][tb]['lb'] = {
        'F_instr_name': "Measurement instrument:",
        'F_frequency_shift': "Frequency shift:",
        '_lb_unit_freq': "[see sweep]"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {
        'B_lock_to_freq': "Lock center frequency to:"
    }

    vip.content['events'][tb]['le'] = {
        'F_frequency_shift':
        lambda text: se.le_or_dm_change(vip, tb, 'F_frequency_shift', text)
    }
    vip.content['events'][tb]['dm'] = {
        'F_instr_name':
        lambda text: se.le_or_dm_change(vip, tb, 'F_instr_name', text),
        'F_lock_to_sweep':
        lambda text: se.le_or_dm_change(vip, tb, 'F_lock_to_sweep', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {
        'B_lock_to_freq':
        lambda state: se.cb_toggled(vip, tb, 'B_lock_to_freq')
    }

    vip.content['cb_vals'][tb] = {'B_lock_to_freq': ('ON', 'OFF')}
    vip.content['dm_vals'][tb] = {
        'F_instr_name': session.instr_classification[
            'VNA']  # session.instr_classification['SG']+session.instr_classification['VNA']+
        ,
        'F_lock_to_sweep': sweep_ks(
            'Freq.'
        )  # session.instr_classification['SG']+session.instr_classification['VNA']+
    }

    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ########## ########## hBoxs

    dm_ks = ['F_instr_name']
    le_ks = ['F_frequency_shift']
    cb_ks = ['_F_lock_to_sweep']

    ks = dm_ks + cb_ks + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in ks}

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    hBoxs['F_frequency_shift'].addWidget(
        vip._qWidgets['lb'][tb]['_lb_unit_freq'])

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

    hBoxs['_F_lock_to_sweep'].addWidget(
        vip._qWidgets['cb'][tb]['B_lock_to_freq'])
    hBoxs['_F_lock_to_sweep'].addStretch(.1)
    hBoxs['_F_lock_to_sweep'].addWidget(
        vip._qWidgets['dm'][tb]['F_lock_to_sweep'])

    ########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in ks:
        vBox.addLayout(hBoxs[k])
コード例 #12
0
def _build_Time_trace(vip):
    tb = 'Time trace'

    vip.content['captions'][tb]['lb'] = {
        'F_instr_name': "Instrument:" + 10 * cs.BLANK,
        'R_time_stop': "Sweep time:" + 8 * cs.BLANK,
        'N_sweep_points': "Sweep points:" + 6 * cs.BLANK,
        '_R_freq_center': "Center frequency:",
        'R_freq_start': "Start frequency:" + 3 * cs.BLANK,
        'R_freq_stop': "Stop frequency:" + 3 * cs.BLANK,
        '_R_freq_span': "Frequency span:" + 2 * cs.BLANK
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        'R_freq_start':
        lambda text: se.le_pow_vs_freq_start(vip, tb, text),
        'R_freq_stop':
        lambda text: se.le_pow_vs_freq_stop(vip, tb, text),
        '_R_freq_center':
        lambda text: se.le_pow_vs_freq_center(vip, tb, text),
        '_R_freq_span':
        lambda text: se.le_pow_vs_freq_span(vip, tb, text),
        'N_sweep_points':
        lambda text: se.le_or_dm_change(vip, tb, 'N_sweep_points', text),
        'R_time_stop':
        lambda text: se.le_or_dm_change(vip, tb, 'R_time_stop', text)
    }
    vip.content['events'][tb]['dm'] = {
        'F_instr_name':
        lambda text: se.le_or_dm_change(vip, tb, 'F_instr_name', text),
        'F_unit_time':
        lambda text: se.le_or_dm_change(vip, tb, 'F_unit_time', text),
        'F_unit_freq':
        lambda text: se.le_or_dm_change(vip, tb, 'F_unit_freq', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}

    vip.content['dm_vals'][tb] = {
        'F_instr_name': session.instr_classification['SA'],
        'F_unit_time': menus.TIME_UNITS,
        'F_unit_freq': menus.FREQUENCY_UNITS
    }

    ### ----------
    ### set up two extra line edits (with event functions that affect other line edits)
    R_freq_start = float(session.default[tb]['R_freq_start'])
    R_freq_stop = float(session.default[tb]['R_freq_stop'])
    vip.auxiliary_le[tb]['_R_freq_span'] = str((R_freq_start - R_freq_stop))
    vip.auxiliary_le[tb]['_R_freq_center'] = str(
        (R_freq_start + R_freq_stop) / 2)

    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ### to guarantee preference, manually re-write the following
    ### line edit values with the default session
    tmp = session.default[tb]['R_freq_start']
    settings = {'R_freq_start': tmp, 'R_freq_stop': tmp}
    vip.set(tb, settings)

    ########## ########## hBoxs

    le_ks = ['N_sweep_points', 'R_time_stop', '_R_freq_center']
    dm_ks = ['F_instr_name']
    hBoxs_ks = dm_ks + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

    hBoxs['R_time_stop'].addWidget(vip._qWidgets['dm'][tb]['F_unit_time'])

    hBoxs['_R_freq_center'].addWidget(vip._qWidgets['dm'][tb]['F_unit_freq'])

    ########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addLayout(hBoxs['F_instr_name'])

    keysB = ['N_sweep_points', 'R_time_stop', '_R_freq_center']
    for k in keysB:
        vBox.addLayout(hBoxs[k])
コード例 #13
0
def _build_Dig_sample(vip):
    tb = 'Dig. sample'

    vip.content['captions'][tb]['lb'] = {
        'F_instr_name': "Instrument:" + 10 * cs.BLANK,
        'N_samples_factor': "Post trigger samples 64*:" + 1 * cs.BLANK,
        'N_records_per_buffer': "Records per buffer:" + 8 * cs.BLANK,
        'N_buffers_per_acquisition': "Buffers per acquisition:" + 8 * cs.BLANK,
        'F_decimation': "Decimation:" + 1 * cs.BLANK,
        '_N_sweep_points': "size = init"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        'N_samples_factor':
        lambda text: se.le_or_dm_change__N_sweep_points(
            vip, tb, 'N_samples_factor', text),
        'N_records_per_buffer':
        lambda text: se.le_or_dm_change(vip, tb, 'N_records_per_buffer', text),
        'N_buffers_per_acquisition':
        lambda text: se.le_or_dm_change(vip, tb, 'N_buffers_per_acquisition',
                                        text)
    }
    vip.content['events'][tb]['dm'] = {
        'F_instr_name':
        lambda text: se.le_or_dm_change(vip, tb, 'F_instr_name', text),
        'F_decimation':
        lambda text: se.le_or_dm_change__N_sweep_points(
            vip, tb, 'F_decimation', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}

    vip.content['dm_vals'][tb] = {
        'F_instr_name': session.instr_classification['Dig'],
        'F_decimation': menus.ATS9870['F_decimation'].keys()
    }

    ### ----------
    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ########## ########## hBoxs

    le_ks = [
        'N_samples_factor', 'N_records_per_buffer', 'N_buffers_per_acquisition'
    ]
    dm_ks = ['F_instr_name', 'F_decimation']
    hBoxs_ks = dm_ks + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    hBoxs['N_samples_factor'].addWidget(
        vip._qWidgets['lb'][tb]['_N_sweep_points'])

    ########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addLayout(hBoxs['F_instr_name'])

    keysB = hBoxs_ks
    for k in keysB:
        vBox.addLayout(hBoxs[k])
コード例 #14
0
def _build_DAC_VNA(vip):
    tb = 'Mixer-Dig VNA'

    vip.content['captions'][tb]['lb'] = {
        "start_freq": "Start frequency [Hz]:",
        "stop_freq": "Stop frequency [Hz]:",
        "IF_freq": "IF frequency [Hz]:",
        "points": "Points:",
        'source_LO': "LO source:",
        'source_rf': "rf source:"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        "start_freq":
        lambda text: se.le_or_dm_change(vip, tb, "start_freq", text),
        "stop_freq":
        lambda text: se.le_or_dm_change(vip, tb, "stop_freq", text),
        "points": lambda text: se.le_or_dm_change(vip, tb, "points", text),
        "IF_freq": lambda text: se.le_or_dm_change(vip, tb, "IF_freq", text)
    }
    vip.content['events'][tb]['dm'] = {
        'source_LO':
        lambda text: se.le_or_dm_change(vip, tb, 'source_LO', text),
        'source_rf':
        lambda text: se.le_or_dm_change(vip, tb, 'source_rf', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'F_unit_freq_source': menus.FREQUENCY_UNITS,
        'source_LO': session.instr_classification['SG'],
        'source_rf': session.instr_classification['SG']
    }

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs
    le_ks = ["start_freq", "stop_freq", "IF_freq", "points"]
    dm_ks = ['source_LO', 'source_rf']
    hBox_ks = le_ks + dm_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBox_ks}
    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    vBox.addStretch(.1)

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())

    vBox.addLayout(vip._blanks.next())

    for k in le_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(vip._blanks.next())
    vBox.addStretch(.1)
コード例 #15
0
def _build_Results(vip):
    tb = 'Results'

    vip.content['captions'][tb]['lb'] = {'_lb_session_line'   : "Results"
                                        ,'_lb_name_index'   : "File name:"
                                        ,'_lb_result_blank' : "_"
                                        ,'_lb_cb_selection' : "Save:"
                                        }
    vip.content['captions'][tb]['bn'] = {'_bn_result_dir_browse' : "Browse"
                                        ,'_bn_save_switch'       : "Save"
                                        ,'_bn_meas_dir_today'    : "Today"
                                        }
    vip.content['captions'][tb]['cb'] = {'B_save_result'     : "Data to file"
                                        ,'B_save_session'    : "Session"
                                        ,'B_save_screenshot' : "Screenshot"
                                        }

    vip.content['events'][tb]['le'] = {'DIR_PATH_results'      : lambda text: se.le_or_dm_change(vip, tb,'DIR_PATH_results', text)
                                      ,'TITLE_result'          : lambda text: se.le_or_dm_change(vip, tb,'TITLE_result' , text)
                                      ,'N_result_index'        : lambda text: se.le_or_dm_change(vip, tb,'N_result_index', text)
                                      }
    vip.content['events'][tb]['dm'] = {}
    import interface.auxiliary_functions as auxi
    vip.content['events'][tb]['bn'] = {'_bn_result_dir_browse' : lambda: se.bn_browse_for(vip, 'DIR_PATH_results')
                                      ,'_bn_save_switch'       : lambda: se.bn_save_switch(vip, auxi.textfile_formatting)
                                      ,'_bn_meas_dir_today'    : lambda: se.bn_meas_dir_today(vip)
                                      }
    vip.content['events'][tb]['cb'] = {'B_save_result'     : lambda state: se.cb_toggled(vip, tb,'B_save_result')
                                      ,'B_save_session'    : lambda state: se.cb_toggled(vip, tb,'B_save_session')
                                      ,'B_save_screenshot' : lambda state: se.cb_toggled(vip, tb,'B_save_screenshot')
                                      }

    vip.content['cb_vals'][tb] = {'B_save_result'     : ('ON', 'OFF')
                                 ,'B_save_session'    : ('ON', 'OFF')
                                 ,'B_save_screenshot' : ('ON', 'OFF')
                                 }

    sw.__fill_widgets(vip, tb)

    ### ----------
    vip._qWidgets['lb'][tb]['_lb_session_line'].setAlignment(QtCore.Qt.AlignCenter)
    vip._qWidgets['le'][tb]['N_result_index'].setFixedWidth(50)

########## ########## hBoxs

    hBox_ks = ['_cbs', '_browse', '_save', '_dir', '_file_name']
    hBoxs = {k : QtGui.QHBoxLayout() for k in hBox_ks}

    hBoxs['_cbs'].addWidget(vip._qWidgets['lb'][tb]['_lb_cb_selection'])
    hBoxs['_cbs'].addLayout(vip._blanks.next())
    hBoxs['_cbs'].addWidget(vip._qWidgets['cb'][tb]['B_save_result'])
    hBoxs['_cbs'].addLayout(vip._blanks.next())
    hBoxs['_cbs'].addWidget(vip._qWidgets['cb'][tb]['B_save_session'])
    hBoxs['_cbs'].addLayout(vip._blanks.next())
    hBoxs['_cbs'].addWidget(vip._qWidgets['cb'][tb]['B_save_screenshot'])

    hBoxs['_browse'].addWidget(vip._qWidgets['lb'][tb]['_lb_session_line'])
    hBoxs['_browse'].addWidget(vip._qWidgets['bn'][tb]['_bn_result_dir_browse'])

    hBoxs['_save'].addWidget(vip._qWidgets['bn'][tb]['_bn_save_switch'])
    hBoxs['_save'].addWidget(vip._qWidgets['bn'][tb]['_bn_meas_dir_today'])

    hBoxs['_dir'].addWidget(vip._qWidgets['le'][tb]['DIR_PATH_results'])

    hBoxs['_file_name'].addWidget(vip._qWidgets['lb'][tb]['_lb_name_index'])
    hBoxs['_file_name'].addStretch(.1)
    hBoxs['_file_name'].addWidget(vip._qWidgets['le'][tb]['TITLE_result'])
    hBoxs['_file_name'].addWidget(vip._qWidgets['lb'][tb]['_lb_result_blank'])
    hBoxs['_file_name'].addWidget(vip._qWidgets['le'][tb]['N_result_index'])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in hBox_ks:
        vBox.addLayout(hBoxs[k])
コード例 #16
0
def _build_File_sweep(vip, tb):

    vip.content['captions'][tb]['lb'] = {
        'DIR__PATH': "Dir. path:" + 3 * cs.BLANK,
        'FILE__NAME_0': 4 * cs.BLANK + "File name:",
        'CHANNEL__SWEEP_0': 'Channel' + 4 * cs.BLANK,
        'FILE__NAME_1': 4 * cs.BLANK + "File name:",
        'CHANNEL__SWEEP_1': 'Channel' + 4 * cs.BLANK
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}
    vip.content['events'][tb]['le'] = {
        'DIR__PATH':
        lambda text: se.le_or_dm_change(vip, tb, 'DIR__PATH', text),
        'FILE__NAME_0':
        lambda text: se.le_or_dm_change(vip, tb, 'FILE__NAME_0', text),
        'FILE__NAME_1':
        lambda text: se.le_or_dm_change(vip, tb, 'FILE__NAME_1', text)
    }
    vip.content['events'][tb]['dm'] = {
        'CHANNEL__SWEEP_0':
        lambda text: se.le_or_dm_change(vip, tb, 'CHANNEL__SWEEP_0', text),
        'CHANNEL__SWEEP_1':
        lambda text: se.le_or_dm_change(vip, tb, 'CHANNEL__SWEEP_1', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}
    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'CHANNEL__SWEEP_0': ['0', '1', '2', '3'],
        'CHANNEL__SWEEP_1': ['0', '1', '2', '3']
    }

    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ### ----------

    ########## ########## hBoxs
    le_ks = [
        'DIR__PATH', 'CHANNEL__SWEEP_0', 'FILE__NAME_0', 'CHANNEL__SWEEP_1',
        'FILE__NAME_1'
    ]

    hBoxs_ks = le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    hBoxs['DIR__PATH'].addWidget(vip._qWidgets['lb'][tb]['DIR__PATH'])
    hBoxs['DIR__PATH'].addWidget(vip._qWidgets['le'][tb]['DIR__PATH'])

    for k in range(2):
        hBoxs['CHANNEL__SWEEP_' + str(k)].addWidget(
            vip._qWidgets['lb'][tb]['CHANNEL__SWEEP_' + str(k)])
        hBoxs['FILE__NAME_' + str(k)].addWidget(
            vip._qWidgets['dm'][tb]['CHANNEL__SWEEP_' + str(k)])
        hBoxs['FILE__NAME_' + str(k)].addWidget(
            vip._qWidgets['lb'][tb]['FILE__NAME_' + str(k)])
        hBoxs['FILE__NAME_' + str(k)].addWidget(
            vip._qWidgets['le'][tb]['FILE__NAME_' + str(k)])

########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in le_ks:
        vBox.addLayout(hBoxs[k])
コード例 #17
0
def _build_AWG_sweep(vip, tb):
    ### the values associated with the keywords with __ are not writen to the instrument tabs
    ### (only sweeped over in the measurement)

    ### Note: At the moment, H3344 is the only AWG and it has 4 channels (indexed by 0,1,2,3),
    ### and so is the range implemented here. In case there comes a AWG with more channels,
    ### a few things must be adjusted here.
    ### Also, if there are different AWGs with different numbers of channels, that might make things unsafe.
    from dictionaries.hardware import range_H3344_channels as channels_list

    sweep_quadruple = [
        'R__start', 'R__stop', 'N__sweep_points', 'R_AUXI_volt_step_size'
    ]

    vip.content['captions'][tb]['lb'] = {
        'R__start': "Start voltage:" + 3 * cs.BLANK,
        'R__stop': "Stop voltage:" + 4 * cs.BLANK,
        'N__sweep_points': "Sweep points:" + 3 * cs.BLANK,
        '_lb_volt_step_size': "Step size:" + 12 * cs.BLANK,
        'R_AUXI_volt_step_size': "init",
        'USE_channel_': "Apply to",
        'F__sweep_type': "Sweep"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {
        'USE_channel_' + ch: ch
        for ch in channels_list
    }

    vip.content['events'][tb]['le'] = {
        'R__start':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'R__start', text),
        'R__stop':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple, 'R__stop',
                                           text),
        'N__sweep_points':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'N__sweep_points', text)
    }
    vip.content['events'][tb]['dm'] = {
        'F__sweep_type':
        lambda text: se.le_or_dm_change(vip, tb, 'F__sweep_type', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {
        'USE_channel_0': lambda state: se.cb_toggled(vip, tb, 'USE_channel_0'),
        'USE_channel_1': lambda state: se.cb_toggled(vip, tb, 'USE_channel_1'),
        'USE_channel_2': lambda state: se.cb_toggled(vip, tb, 'USE_channel_2'),
        'USE_channel_3': lambda state: se.cb_toggled(vip, tb, 'USE_channel_3')
    }
    ### I'm not sure if the following shorter function assignment might not make problems:
    #vip.content['events'][tb]['cb'] = {'USE_channel_'+ch : lambda state: se.cb_toggled(vip, tb, 'USE_channel_'+ch) for ch in channels_list}
    vip.content['cb_vals'][tb] = {
        'USE_channel_' + ch: ('USE', 'DONT_USE')
        for ch in channels_list
    }
    vip.content['dm_vals'][tb] = {'F__sweep_type': ['Amplitude', 'Offset']}

    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ### ----------
    se._fun_change_step_size_value_label(vip, tb, sweep_quadruple)
    vip._qWidgets['lb'][tb][sweep_quadruple[3]].setFont(
        QtGui.QFont(cs.FONT, cs.FONTSIZE))

    ########## ########## hBoxs
    le_ks = ['R__start', 'R__stop', 'N__sweep_points']
    hBoxs_ks = ['USE_channel_'] + ['F__sweep_type'] + ['__lb_volt_step_size'
                                                       ] + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    hBoxs['USE_channel_'].addWidget(vip._qWidgets['lb'][tb]['USE_channel_'])
    for ch in range(4):
        hBoxs['USE_channel_'].addWidget(
            vip._qWidgets['cb'][tb]['USE_channel_' + str(ch)])

    hBoxs['F__sweep_type'].addWidget(vip._qWidgets['lb'][tb]['F__sweep_type'])
    hBoxs['F__sweep_type'].addWidget(vip._qWidgets['dm'][tb]['F__sweep_type'])

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])
    hBoxs['__lb_volt_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['_lb_volt_step_size'])
    hBoxs['__lb_volt_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['R_AUXI_volt_step_size'])
    hBoxs['__lb_volt_step_size'].addStretch(.1)

    ########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])
    vBox.addLayout(hBoxs['USE_channel_'])
    vBox.addLayout(hBoxs['F__sweep_type'])
    for k in le_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(hBoxs['__lb_volt_step_size'])
    vBox.addLayout(hBoxs['F__sweep_type'])
コード例 #18
0
def _build_Voltage_sweep(vip, tb):
    ### the values associated with the keywords with __ are not writen to the instrument tabs
    ### (only sweeped over in the measurement)
    sweep_quadruple = [
        'R__start', 'R__stop', 'N__sweep_points', 'R_AUXI_volt_step_size'
    ]

    vip.content['captions'][tb]['lb'] = {
        'R__start': "Start voltage:" + 3 * cs.BLANK,
        'F_axis_mode': "Axis mode:" + 2 * cs.BLANK,
        'R__stop': "Stop voltage:" + 4 * cs.BLANK,
        'N__sweep_points': "Sweep points:" + 3 * cs.BLANK,
        '_lb_volt_step_size': "Step size:" + 12 * cs.BLANK,
        'R_AUXI_volt_step_size': "init"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}
    vip.content['events'][tb]['le'] = {
        'R__start':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'R__start', text),
        'R__stop':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple, 'R__stop',
                                           text),
        'N__sweep_points':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'N__sweep_points', text)
    }
    vip.content['events'][tb]['dm'] = {
        'F_axis_mode':
        lambda text: se.le_or_dm_change(vip, tb, 'F_axis_mode', text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}
    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {'F_axis_mode': menus.AXIS_MODES}
    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ### ----------
    se._fun_change_step_size_value_label(vip, tb, sweep_quadruple)
    vip._qWidgets['lb'][tb][sweep_quadruple[3]].setFont(
        QtGui.QFont(cs.FONT, cs.FONTSIZE))

    ########## ########## hBoxs
    le_ks = ['R__start', 'R__stop', 'N__sweep_points']
    dm_ks = ['F_axis_mode']
    hBoxs_ks = dm_ks + ['__lb_volt_step_size'] + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])
    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])
    hBoxs['__lb_volt_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['_lb_volt_step_size'])
    hBoxs['__lb_volt_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['R_AUXI_volt_step_size'])
    hBoxs['__lb_volt_step_size'].addStretch(.1)

    ########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    for k in le_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(hBoxs['__lb_volt_step_size'])
コード例 #19
0
def _build_Power_sweep(vip, tb):
    ### the values associated with the keywords with __ are not writen to the
    ### instrument tabs (only sweeped over in the measurement)
    sweep_quadruple = [
        'R__start', 'R__stop', 'N__sweep_points', 'R_AUXI_power_step_size'
    ]

    vip.content['captions'][tb]['lb'] = {
        'F_instr_name': "Instrument:" + 1 * cs.BLANK,
        'F_axis_mode': "Axis mode:" + 2 * cs.BLANK,
        'R__start': "Start power:" + 3 * cs.BLANK,
        'R__stop': "Stop power:" + 3 * cs.BLANK,
        'N__sweep_points': "Sweep points:",
        '_lb_power_step_size': "Step size:" + 7 * cs.BLANK,
        'R_AUXI_power_step_size': "",
        'F_AUXI_power_star_unit': cs.BLANK + "dBm" + 3 * cs.BLANK,
        'F_AUXI_power_stop_unit': cs.BLANK + "dBm" + 3 * cs.BLANK,
        'F_AUXI_power_step_size_unit': cs.BLANK + "dBm" + 3 * cs.BLANK
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}
    vip.content['events'][tb]['le'] = {
        'R__start':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'R__start', text),
        'R__stop':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple, 'R__stop',
                                           text),
        'N__sweep_points':
        lambda text: se.le_sweep_quadruple(vip, tb, sweep_quadruple,
                                           'N__sweep_points', text)
    }
    vip.content['events'][tb]['dm'] = {
        'F_instr_name':
        lambda text: se.le_or_dm_change(vip, tb, 'F_instr_name', text),
        'F_axis_mode':
        lambda text: se.le_or_dm_change(vip, tb, 'F_axis_mode', text)
    }
    vip.content['events'][tb]['cb'] = {}
    vip.content['events'][tb]['bn'] = {}
    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        'F_instr_name':
        session.instr_classification['VNA'] +
        session.instr_classification['SG'],
        'F_axis_mode':
        menus.AXIS_MODES
    }
    sw.__fill_widgets(vip, tb, fontsize=cs.FONTSIZE - 1)

    ### ----------
    vip._qWidgets['lb'][tb][sweep_quadruple[3]].setFont(
        QtGui.QFont(cs.FONT, cs.FONTSIZE))
    se._fun_change_step_size_value_label(vip, tb, sweep_quadruple)

    ########## ########## hBoxs
    le_ks = ['R__start', 'R__stop', 'N__sweep_points']
    dm_ks = ['F_instr_name', 'F_axis_mode']
    hBoxs_ks = dm_ks + ['__lb_power_step_size'] + le_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBoxs_ks}

    for k in le_ks:
        for w in ['lb', 'le']:
            hBoxs[k].addWidget(vip._qWidgets[w][tb][k])

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])
    hBoxs['R__start'].addWidget(
        vip._qWidgets['lb'][tb]['F_AUXI_power_star_unit'])
    hBoxs['R__stop'].addWidget(
        vip._qWidgets['lb'][tb]['F_AUXI_power_stop_unit'])
    hBoxs['__lb_power_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['_lb_power_step_size'])
    hBoxs['__lb_power_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['R_AUXI_power_step_size'])
    hBoxs['__lb_power_step_size'].addStretch(1)
    hBoxs['__lb_power_step_size'].addWidget(
        vip._qWidgets['lb'][tb]['F_AUXI_power_step_size_unit'])

    ########## ########## vBox
    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    for key in le_ks:
        vBox.addLayout(hBoxs[key])
    vBox.addLayout(hBoxs['__lb_power_step_size'])
コード例 #20
0
def _build_OptionsWindow(vip):
    tb = 'Options'

    vip.content['captions'][tb]['lb'] = {"_lb_plot_section"        : "Axes relative to figure:"
                                        ,"R_x_plot_position"       : "x-position:"
                                        ,"R_y_plot_position"       : "y-position:"
                                        ,"R_x_plot_size"           : "x-size:"
                                        ,"R_y_plot_size"           : "y-size:"
                                        ,"R_x_plot_label_rotation" : "x-label rotation:"
                                        ,"R_axes_font_size"        : "Axes font size:"
                                        ,"_lb_FILE_PATH_notes"     : "Notes file path:"
                                        }
    vip.content['captions'][tb]['bn'] = {'_bn_default'      : " Reset from init file "
                                        }
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] =   {"R_x_plot_position"       : lambda text: se.le_plot_options_update(vip, "R_x_plot_position"    , text)
                                        ,"R_y_plot_position"       : lambda text: se.le_plot_options_update(vip, "R_y_plot_position"    , text)
                                        ,"R_x_plot_size"           : lambda text: se.le_plot_options_update(vip, "R_x_plot_size"    , text)
                                        ,"R_y_plot_size"           : lambda text: se.le_plot_options_update(vip, "R_y_plot_size"    , text)
                                        ,"R_x_plot_label_rotation" : lambda text: se.le_plot_options_update(vip, "R_x_plot_label_rotation"    , text)
                                        ,"R_axes_font_size"        : lambda text: se.le_plot_options_update(vip, "R_axes_font_size"    , text)
                                        ,"FILE_PATH_notes"         : lambda text: se.le_or_dm_change(vip, tb, "FILE_PATH_notes"    , text)
                                        }
    vip.content['events'][tb]['dm'] = {}
    vip.content['events'][tb]['bn'] = {'_bn_default'      : lambda: se.bn_back_to_default_options(vip)}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {}

    sw.__fill_widgets(vip, tb)

########## ########## hBoxs

    le_ks = ["R_x_plot_label_rotation"
            ,"R_axes_font_size"
            ,"R_x_plot_position"
            ,"R_y_plot_position"
            ,"R_x_plot_size"
            ,"R_y_plot_size"
            ]
    hBox_ks = ["_lb_plot_section"]+le_ks+['_bn_default']+['_lb_FILE_PATH_notes', 'FILE_PATH_notes']

    hBoxs = {k : QtGui.QHBoxLayout() for k in hBox_ks}

    hBoxs['_lb_plot_section'].addWidget(vip._qWidgets['lb'][tb]['_lb_plot_section'])

    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    hBoxs['_bn_default'].addStretch(.1)
    hBoxs['_bn_default'].addWidget(vip._qWidgets['bn'][tb]['_bn_default'])

    hBoxs["_lb_FILE_PATH_notes"].addWidget(vip._qWidgets['lb'][tb]["_lb_FILE_PATH_notes"])
    hBoxs['_lb_FILE_PATH_notes'].addStretch(.1)

    hBoxs["FILE_PATH_notes"].addWidget(vip._qWidgets['le'][tb]["FILE_PATH_notes"])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for k in hBox_ks:
        vBox.addLayout(hBoxs[k])
        if (k == '_lb_plot_section') or (k == "R_axes_font_size"):
            vBox.addLayout(vip._blanks.next())
        elif (k == "_bn_default"):
            vBox.addLayout(vip._blanks.next())
            vBox.addLayout(vip._blanks.next())
    vBox.addLayout(vip._blanks.next())
コード例 #21
0
def _build_Mixer_calib(vip):
    tb = 'Mixer calib.'

    vip.content['captions'][tb]['lb'] = {
        "center_freq": "Center frequency:",
        "int_freq": "Int. frequency:",
        'R_amplitude': "Amplitude:",
        "LO_source": "LO source",
        "spec_source": "spec source"
    }
    vip.content['captions'][tb]['bn'] = {}
    vip.content['captions'][tb]['cb'] = {}

    vip.content['events'][tb]['le'] = {
        "center_freq":
        lambda text: se.le_or_dm_change(vip, tb, "center_freq", text),
        "int_freq":
        lambda text: se.le_or_dm_change(vip, tb, "int_freq", text),
        "R_amplitude":
        lambda text: se.le_or_dm_change(vip, tb, "R_amplitude", text)
    }
    vip.content['events'][tb]['dm'] = {
        "LO_source":
        lambda text: se.le_or_dm_change(vip, tb, "LO_source", text),
        "spec_source":
        lambda text: se.le_or_dm_change(vip, tb, "spec_source", text)
    }
    vip.content['events'][tb]['bn'] = {}
    vip.content['events'][tb]['cb'] = {}

    vip.content['cb_vals'][tb] = {}
    vip.content['dm_vals'][tb] = {
        "LO_source": session.instr_classification['SG'],
        "spec_source": session.instr_classification['SG']
    }

    sw.__fill_widgets(vip, tb)

    ########## ########## hBoxs
    le_ks = ["center_freq", "int_freq", 'R_amplitude']
    dm_ks = ['LO_source', 'spec_source']
    hBox_ks = le_ks + dm_ks

    hBoxs = {k: QtGui.QHBoxLayout() for k in hBox_ks}
    for k in le_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['le'][tb][k])

    for k in dm_ks:
        hBoxs[k].addWidget(vip._qWidgets['lb'][tb][k])
        hBoxs[k].addStretch(.1)
        hBoxs[k].addWidget(vip._qWidgets['dm'][tb][k])

########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])
    vBox.addLayout(vip._blanks.next())

    for k in le_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())
    for k in dm_ks:
        vBox.addLayout(hBoxs[k])
    vBox.addLayout(vip._blanks.next())
コード例 #22
0
def _build_Script(vip):
    tb = 'Script'

    import dictionaries.script_dict as script_dict
    vip.content['captions'][tb]['lb'] = {}
    vip.content['captions'][tb]['bn'] = {
        '_bn_run_script': " Run script 3 now "
    }
    vip.content['captions'][tb]['cb'] = {
        'B_during_sweep_1': "Add to sweep 1",
        'B_during_sweep_2': "Add to sweep 2",
        'B_during_sweep_3': "Add to sweep 3"
    }

    vip.content['events'][tb]['le'] = {}
    vip.content['events'][tb]['cb'] = {
        'B_during_sweep_1':
        lambda state: se.cb_toggled(vip, tb, 'B_during_sweep_1'),
        'B_during_sweep_2':
        lambda state: se.cb_toggled(vip, tb, 'B_during_sweep_2'),
        'B_during_sweep_3':
        lambda state: se.cb_toggled(vip, tb, 'B_during_sweep_3')
    }
    vip.content['events'][tb]['dm'] = {
        'script_title_1':
        lambda text: se.le_or_dm_change(vip, tb, 'script_title_1', text),
        'script_title_2':
        lambda text: se.le_or_dm_change(vip, tb, 'script_title_2', text),
        'script_title_3':
        lambda text: se.le_or_dm_change(vip, tb, 'script_title_3', text)
    }
    vip.content['events'][tb]['bn'] = {
        '_bn_run_script': lambda: se.bn_run_script(vip, '3')
    }

    vip.content['cb_vals'][tb] = {
        'B_during_sweep_1': ('ON', 'OFF'),
        'B_during_sweep_2': ('ON', 'OFF'),
        'B_during_sweep_3': ('ON', 'OFF')
    }
    vip.content['dm_vals'][tb] = {
        'script_title_1': script_dict.script_dictionary.keys(),
        'script_title_2': script_dict.script_dictionary.keys(),
        'script_title_3': script_dict.script_dictionary.keys()
    }

    sw.__fill_widgets(vip, tb)

    #### ----------
    for k in ['_bn_run_script']:
        vip._qWidgets['bn'][tb][k].setFont(
            QtGui.QFont(cs.FONT, cs.FONTSIZE + 2))
        vip._qWidgets['bn'][tb][k].adjustSize()
    for k in vip.content['captions'][tb]['cb'].keys():
        vip._qWidgets['cb'][tb][k].setFont(
            QtGui.QFont(cs.FONT, cs.FONTSIZE + 1))

########## ########## hBoxs

    _string_range_3 = [str(i) for i in range(1, 4)]

    hBox = {i: QtGui.QHBoxLayout() for i in _string_range_3 + ["__run"]}

    for i in _string_range_3:
        hBox[i].addWidget(vip._qWidgets['dm'][tb]['script_title_' + i])
        hBox[i].addWidget(vip._qWidgets['cb'][tb]['B_during_sweep_' + i])

    hBox["__run"].addStretch(1)
    hBox["__run"].addWidget(vip._qWidgets['bn'][tb]['_bn_run_script'])
    hBox["__run"].addStretch(1)

    ########## ########## vBox

    vBox = QtGui.QVBoxLayout(vip._qWidgets['qw'][tb])

    for i in _string_range_3:
        vBox.addLayout(hBox[i])
    vBox.addLayout(vip._blanks.next())
    vBox.addLayout(hBox['__run'])
    vBox.addLayout(vip._blanks.next())