Пример #1
0
def get_ctrl(dev):
    ctrl = Data(name='CH1', send=True, io_cb=dev_io_cb)
    ctrl.add('freq',
             label='Frequency, MHz',
             wdgt='spin',
             value=Data.spn(1350, 1750, 0.01))
    ctrl.add('rfgain',
             label='RF Gain, dB',
             wdgt='spin',
             value=Data.spn(0, 31.5, 0.5))
    ctrl.add('bbgain',
             label='BB Gain, dB',
             wdgt='spin',
             value=Data.spn(0, 50, 0.1))
    ctrl.add('lpf',
             label='Filter, MHz',
             wdgt='combo',
             state='readonly',
             value=['2', '4', '10', '20'],
             text='10')
    ctrl.add('commit',
             label='EFC commit enable',
             wdgt='combo',
             state='readonly',
             value=['ON', 'OFF'],
             text='ON')
    return ctrl
Пример #2
0
def get_calc_data():
    data = RegsData(sz=16)
    data.add_page('calc0')
    data.add('label0', label='Fmix = Fvco / DIV')
    data.add_page('calc1')
    data.add('Fmix', wdgt='spin', value=Data.spn(356.25, 2850, 0.01), text='1440', msg='Fmix', src=Fmix_src_cb)
    data.add('Fvco1', wdgt='entry', state='readonly', msg='Fvco', src=Fvco_src_cb)
    data.add('DIV', wdgt='combo', state='readonly', text='2', value=['2', '4', '8'], msg='DIV', src=lambda d,v: d.list_src('R22', 3, 4, ['2', '4', '8'], v))
    data.add_page('calc2')
    data.add('label1', label='Fvco = 2 x Fpfd x (INT + FRAC/MOD )')
    data.add_page('calc3')
    data.add('Fvco', wdgt='entry', state='readonly', msg='Fvco', src=Fvco_src_cb)
    data.add('Fpfd1', wdgt='entry', state='readonly', msg='Fpfd', src=Fpfd_src_cb)
    data.add('INT', wdgt='spin', value=Data.spn(21, 123), msg='INT', src=lambda d,v: d.bits_src('R02', 0, 10, v))
    data.add('FRAC', wdgt='spin', value=Data.spn(0, 63535), msg='FRAC', src=lambda d,v: d.bits_src('R03', 0, 15, v))
    data.add('MOD', wdgt='spin', value=Data.spn(1, 63535), msg='MOD', src=lambda d,v: d.bits_src('R04', 0, 15, v))
    data.add_page('calc4')
    data.add('label0', label='Fpfd = REFin x REFSEL')
    data.add_page('calc5')
    data.add('Fpfd', wdgt='entry', state='readonly', msg='Fpfd', src=Fpfd_src_cb)
    data.add('REFin', wdgt='entry', state='readonly', msg='REFin', src=lambda d,v: d.dev_src('refin'))
    data.add('REFSEL', wdgt='combo', state='readonly', value=refsel_list, msg='REFSEL', src=lambda d,v: d.list_src('R21', 0, 2, refsel_list, v))
    data.add_page('calc6')
    data.add('MUXOUT', wdgt='combo', state='readonly', value=muxout_list, label='MUXOUT', width=30, src=lambda d,v: d.list_src('R21', 4, 6, muxout_list, v))
    data.add_page('calc7')
    data.add('VCOSEL', wdgt='combo', state='readonly', value=vcosel_list, label='VCOSEL', src=lambda d,v: d.list_src('R22', 0, 2, vcosel_list, v))
    return data
Пример #3
0
def get_ctrl(dev):
    ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb)
    ctrl.add('channel',
             label='Channel selection',
             wdgt='radio',
             value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('tx',
             label='TX enable',
             wdgt='radio',
             value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('fan',
             label='FAN enable',
             wdgt='radio',
             value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('thrt1',
             label='Threshold1, C',
             wdgt='spin',
             value=Data.spn(0, 100, 1))
    ctrl.add('thrt2',
             label='Threshold2, C',
             wdgt='spin',
             value=Data.spn(0, 100, 1))
    ctrl.add_page('System')
    ctrl.add('commit',
             label='EFC commit enable',
             wdgt='combo',
             state='readonly',
             value=['ON', 'OFF'],
             text='ON')
    return ctrl
Пример #4
0
def get_ctrl(dev):
    ctrl = Data(name='ctrl', send=True, io_cb=dev_io_cb)
    ctrl.add('test',
             label='TEST output',
             wdgt='radio',
             value=OD([('Synth1(679-957MHz)', '0'), ('XTAL(26MHz)', '1'),
                       ('Synth2(151MHz)', '2')]))
    ctrl.add('freq',
             label='Output frequency, MHz',
             wdgt='spin',
             value=Data.spn(805, 831, 0.01),
             cmd_cb=freq_cmd_cb)
    ctrl.add('inv',
             label='Inversion',
             wdgt='check',
             fmt_cb=inv_fmt_cb,
             trace_cb=inv_trace_cb)
    ctrl.add('gain',
             label='Gain, dB',
             wdgt='spin',
             value=Data.spn(-10.5, 15, 0.5))
    ctrl.add('thrs',
             label='Threshold, dBm',
             wdgt='spin',
             value=Data.spn(-40, 20, 1))
    return ctrl
Пример #5
0
def get_ctrl(dev):
    ctrl = Data(io_cb=dev_io_cb)
    for i in [1, 2]:
        ctrl.add_page('CH%d' % i, send=True)
        ctrl.add('freq%d' % i,
                 label='Frequency, MHz',
                 wdgt='spin',
                 value=Data.spn(950, 2150, 0.01))
        ctrl.add('rfgain%d' % i,
                 label='RF Gain, dB',
                 wdgt='spin',
                 value=Data.spn(0, 31.5, 0.5))
        ctrl.add('bbgain%d' % i,
                 label='BB Gain, dB',
                 wdgt='spin',
                 value=Data.spn(0, 50, 0.1))
        ctrl.add('bblpf%d' % i,
                 label='BB Filter, MHz',
                 wdgt='spin',
                 value=Data.spn(1, 30))
    ctrl.add_page('Other', send=True)
    ctrl.add('commit',
             label='EFC commit enable',
             wdgt='combo',
             state='readonly',
             value=['ON', 'OFF'])
    ctrl.add('dlpf',
             label='Digital LPF, MHz',
             wdgt='combo',
             state='readonly',
             value=['0.1', '0.2', '0.5', '1', '1.5', '2', '5', '10', '20'])
    return ctrl
Пример #6
0
def get_ctrl(dev):
    ctrl = Data(io_cb=cmd_serial_io_cb, send=True, name='ctrl')
    ctrl.add('TX', label='TX', wdgt='radio', value=['ON', 'OFF'])
    #ctrl.add('TXCHAN', label='TX chan', wdgt='spin', value=Data.spn(1, 501), trace_cb=chan_trace_cb)
    ctrl.add('TXFREQ',
             label='TX freq [MHz]',
             wdgt='spin',
             value=Data.spn(5925, 6475),
             fmt_cb=freq_gain_fmt_cb)
    ctrl.add('TXGAIN',
             label='TX gain [dB]',
             wdgt='spin',
             value=Data.spn(38, 74),
             fmt_cb=freq_gain_fmt_cb)
    #ctrl.add('RXCHAN', label='RX chan', wdgt='spin', value=Data.spn(1, 501), trace_cb=lambda k,d: chan_trace_cb(k,d,'R',3579))
    ctrl.add('RXFREQ',
             label='RX freq [MHz]',
             wdgt='spin',
             value=Data.spn(3650, 4200),
             fmt_cb=freq_gain_fmt_cb)
    ctrl.add('RXGAIN',
             label='RX gain [dB]',
             wdgt='spin',
             value=Data.spn(80, 105),
             fmt_cb=freq_gain_fmt_cb)
    return ctrl
Пример #7
0
def get_ctrl(dev):
    ctrl = Data(name='CH1', send=True, io_cb=dev_io_cb)
    ctrl.add('freq', label='Frequency, MHz', wdgt='spin', value=Data.spn(1350, 1750, 0.01))
    ctrl.add('rfgain', label='RF Gain, dB', wdgt='spin', value=Data.spn(0, 31.5, 0.5))
    ctrl.add('bbgain', label='BB Gain, dB', wdgt='spin', value=Data.spn(0, 50, 0.1))
    ctrl.add('lpf', label='Filter, MHz', wdgt='combo', state='readonly', value=['2', '4', '10', '20'], text='10')
    ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON')
    return ctrl
Пример #8
0
Файл: UC.py Проект: ivanovev/tmb
def get_ctrl(dev):
    ctrl = Data(name='ctrl', send=True, io_cb=dev_io_cb)
    ctrl.add('test', label='TEST output', wdgt='radio', value=OD([('Synth1(679-957MHz)', '0'), ('XTAL(26MHz)', '1'), ('Synth2(151MHz)', '2')]))
    ctrl.add('freq', label='Output frequency, MHz', wdgt='spin', value=Data.spn(805, 831, 0.01), cmd_cb=freq_cmd_cb)
    ctrl.add('inv', label='Inversion', wdgt='check', fmt_cb=inv_fmt_cb, trace_cb=inv_trace_cb)
    ctrl.add('gain', label='Gain, dB', wdgt='spin', value=Data.spn(-10.5, 15, 0.5))
    ctrl.add('thrs', label='Threshold, dBm', wdgt='spin', value=Data.spn(-40, 20, 1))
    return ctrl
Пример #9
0
def get_ctrl(dev):
    ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb)
    ctrl.add('channel', label='Channel selection', wdgt='radio', value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('tx', label='TX enable', wdgt='radio', value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('fan', label='FAN enable', wdgt='radio', value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('thrt1', label='Threshold1, C', wdgt='spin', value=Data.spn(0, 100, 1))
    ctrl.add('thrt2', label='Threshold2, C', wdgt='spin', value=Data.spn(0, 100, 1))
    ctrl.add_page('System')
    ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON')
    return ctrl
Пример #10
0
def get_ctrl(dev):
    data = Data(name='DAC', send=True, io_cb=util_io_cb)
    refin = dev[c_refin]
    data.add('ref', label='Vref, V', wdgt='entry', state='readonly', send=False, text=refin)
    refin = float(refin)
    data.add('dac0', label='DAC0 Uout, V', wdgt='spin', value=Data.spn(0, refin, .01), cmd_cb=adc_dac_cmd_cb, fmt_cb=lambda val,read=True: adc_dac_fmt_cb(val,read,refin=refin,n=0,a=0x50))
    data.add('dac1', label='DAC1 Uout, V', wdgt='spin', value=Data.spn(0, refin, .01), cmd_cb=adc_dac_cmd_cb, fmt_cb=lambda val,read=True: adc_dac_fmt_cb(val,read,refin=refin,n=1,a=0x50))
    data.add('dac2', label='DAC2 Uout, V', wdgt='spin', value=Data.spn(0, refin, .01), cmd_cb=adc_dac_cmd_cb, fmt_cb=lambda val,read=True: adc_dac_fmt_cb(val,read,refin=refin,n=2,a=0x50))
    data.add('dac3', label='DAC3 Uout, V', wdgt='spin', value=Data.spn(0, refin, .01), cmd_cb=adc_dac_cmd_cb, fmt_cb=lambda val,read=True: adc_dac_fmt_cb(val,read,refin=refin,n=3,a=0x50))
    return data
Пример #11
0
def get_ctrl(dev):
    ctrl = Data(io_cb=cmd_serial_io_cb, send=True, name='ctrl')
    ctrl.add('TX', label='TX', wdgt='radio', value=['ON', 'OFF'])
    #ctrl.add('TXCHAN', label='TX chan', wdgt='spin', value=Data.spn(1, 501), trace_cb=chan_trace_cb)
    ctrl.add('TXFREQ', label='TX freq [MHz]', wdgt='spin', value=Data.spn(5925, 6475), fmt_cb=freq_gain_fmt_cb)
    ctrl.add('TXGAIN', label='TX gain [dB]', wdgt='spin', value=Data.spn(38, 74), fmt_cb=freq_gain_fmt_cb)
    #ctrl.add('RXCHAN', label='RX chan', wdgt='spin', value=Data.spn(1, 501), trace_cb=lambda k,d: chan_trace_cb(k,d,'R',3579))
    ctrl.add('RXFREQ', label='RX freq [MHz]', wdgt='spin', value=Data.spn(3650, 4200), fmt_cb=freq_gain_fmt_cb)
    ctrl.add('RXGAIN', label='RX gain [dB]', wdgt='spin', value=Data.spn(80, 105), fmt_cb=freq_gain_fmt_cb)
    return ctrl
Пример #12
0
def get_ctrl(dev):
    ctrl = Data(io_cb=dev_io_cb)
    for i in [1, 2]:
        ctrl.add_page('CH%d' % i, send=True)
        ctrl.add('freq%d'%i, label='Frequency, MHz', wdgt='spin', value=Data.spn(950, 2150, 0.01))
        ctrl.add('rfgain%d'%i, label='RF Gain, dB', wdgt='spin', value=Data.spn(0, 31.5, 0.5))
        ctrl.add('bbgain%d'%i, label='BB Gain, dB', wdgt='spin', value=Data.spn(0, 50, 0.1))
        ctrl.add('bblpf%d'%i, label='BB Filter, MHz', wdgt='spin', value=Data.spn(1, 30))
    ctrl.add_page('Other', send=True)
    ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'])
    ctrl.add('dlpf', label='Digital LPF, MHz', wdgt='combo', state='readonly', value=['0.1','0.2','0.5','1','1.5','2','5','10','20'])
    return ctrl
Пример #13
0
def get_ctrl(dev):
    ctrl = Data(name='RF', send=True, io_cb=dev_io_cb)
    ctrl.add('freq', label='Frequency, MHz', wdgt='spin', value=Data.spn(356.25, 2850, 0.01))
    ctrl.add('rfgain', label='RF Gain, dB', wdgt='spin', text='0.0', value=Data.spn(-13.5, 18, 0.5))
    ctrl.add_page('BB')
    ctrl.add('bbgain', label='Analog Gain, dB', wdgt='spin', value=Data.spn(0, 64.5, 0.5))
    get_lpf_ctrl(ctrl, 'bblpf')
    ctrl.add_page('DSP')
    ctrl.add('dsplpf', label='Filter, MHz', wdgt='combo', state='readonly', value=['10', '20'], text='10')
    ctrl.add_page('TEST')
    ctrl.add('test', label='Nothing', send=False)
    return ctrl
Пример #14
0
def get_ctrl(dev):
    ctrl = Data(name='LNAHPSU.c', send=True, io_cb=dev_io_cb)
    ctrl.add('outen', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON', '1'), ('OFF', '0')]), text='OFF')
    ctrl.add('thri1', label='I threshold, mA', wdgt='spin', state='readonly', value=Data.spn(500, 1700, 100), text='1200')
    ctrl.add('thri2', label='I threshold, mA', wdgt='spin', state='readonly', value=Data.spn(1, 10), text='6')
    ctrl.add('thri3', label='I threshold, mA', wdgt='spin', state='readonly', value=Data.spn(10, 50), text='20')
    ctrl.add('thru1', label='U threshold1, V', wdgt='spin', state='readonly', value=Data.spn(7, 36), text='7')
    ctrl.add('thru2', label='U threshold2, V', wdgt='spin', state='readonly', value=Data.spn(7, 36), text='23')
    ctrl.add('thru3', label='U threshold3, V', wdgt='spin', state='readonly', value=Data.spn(7, 36), text='25')
    ctrl.add('thru4', label='U threshold4, V', wdgt='spin', state='readonly', value=Data.spn(7, 36), text='36')
    ctrl.add('thru4', label='U threshold4, V', wdgt='spin', state='readonly', value=Data.spn(7, 36), text='36')
    ctrl.add('umi0', label='I0, mA', wdgt='spin', value=Data.spn(1, 100, 0.1), text='13.5')
    ctrl.add('kmi', label='I coef', wdgt='spin', value=Data.spn(0.5, 1.5, 0.000001), text='1.0')
    return ctrl
Пример #15
0
def get_ctrl(dev):
    data = Data(name='Voltage', send=True, io_cb=util_io_cb)
    ref = dev[c_refin].split(',')
    ref0 = ref[0]
    if len(ref) == 1:
        data.add('ref',
                 label='Vref, V',
                 wdgt='entry',
                 state='readonly',
                 send=False,
                 text=ref0)
    else:
        data.add('ref0',
                 label='Vref1, V',
                 wdgt='entry',
                 state='readonly',
                 send=False,
                 text=ref0)
    ref0 = float(ref0)
    cmd_cb = lambda dev, cmd, val: dac_cmd_cb(dev, cmd, val, dac='0')
    data.add(
        'dac1',
        label='DAC1 Uout, V',
        wdgt='spin',
        value=Data.spn(0, ref0, .01),
        cmd_cb=cmd_cb,
        fmt_cb=lambda val, read=True: dac_fmt_cb(val, read, ref=ref0, dac=0))
    if len(ref) == 2:
        ref1 = ref[1]
        data.add('ref1',
                 label='Vref2, V',
                 wdgt='entry',
                 state='readonly',
                 send=False,
                 text=ref1)
        ref1 = float(ref1)
    else:
        ref1 = ref0
    cmd_cb = lambda dev, cmd, val: dac_cmd_cb(dev, cmd, val, dac='1')
    data.add(
        'dac2',
        label='DAC2 Uout, V',
        wdgt='spin',
        value=Data.spn(0, ref1, .01),
        cmd_cb=cmd_cb,
        fmt_cb=lambda val, read=True: dac_fmt_cb(val, read, ref=ref1, dac=1))
    return data
Пример #16
0
def get_ctrl(dev):
    spn_max, spn_step = 2.5, 0.05
    if dev['type'] == 'AD5620_2_5V':
        spn_max = 5
    data = Data(name='Voltage', send=True, io_cb=util_io_cb)
    fmt_cb = lambda val, read, spn_max=spn_max: float_fmt_cb(val, read, spn_max)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='0', cpol='0')
    data.add('out', label='OUT, V', wdgt='spin', value=Data.spn(0, spn_max, spn_step), fmt_cb=fmt_cb, cmd_cb=cmd_cb)
    return data
Пример #17
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Read', read_cb), ('Write', write_cb),
                       ('Stop', stop_cb)])
    ctrl = Data(name='Setup', buttons=ctrl_buttons)
    ctrl.add('limaz',
             label='Azimuth max.',
             wdgt='spin',
             value=Data.spn(0, 16383),
             send=True,
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=0),
             cmd_cb=polus_cmd_cb)
    ctrl.add('limaz2',
             label='Azimuth min.',
             wdgt='spin',
             value=Data.spn(0, 16383),
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=1))
    ctrl.add('limel',
             label='Elevation max.',
             wdgt='spin',
             value=Data.spn(0, 16383),
             send=True,
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=2),
             cmd_cb=polus_cmd_cb)
    ctrl.add('limel2',
             label='Elevation min.',
             wdgt='spin',
             value=Data.spn(0, 16383),
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=3))
    ctrl.add('ae0',
             label='New azimuth',
             wdgt='spin',
             value=Data.spn(0, 16383),
             send=True,
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=4),
             cmd_cb=polus_cmd_cb)
    ctrl.add('ae02',
             label='New elevation',
             wdgt='spin',
             value=Data.spn(0, 16383),
             fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=5))
    ctrl.add_page('Move')
    ctrl.add('az',
             label='Azimuth',
             wdgt='spin',
             value=Data.spn(0, 16383),
             send=True,
             cmd_cb=polus_cmd_cb)
    ctrl.add('el',
             label='Elevation',
             wdgt='spin',
             value=Data.spn(0, 16383),
             send=True,
             cmd_cb=polus_cmd_cb)
    return ctrl
Пример #18
0
def get_ctrl(dev):
    data = Data(name='Voltage', send=True, io_cb=util_io_cb)
    ref = dev[c_refin].split(',')
    ref0 = ref[0]
    if len(ref) == 1:
        data.add('ref', label='Vref, V', wdgt='entry', state='readonly', send=False, text=ref0)
    else:
        data.add('ref0', label='Vref1, V', wdgt='entry', state='readonly', send=False, text=ref0)
    ref0 = float(ref0)
    cmd_cb = lambda dev, cmd, val: dac_cmd_cb(dev, cmd, val, dac='0')
    data.add('dac1', label='DAC1 Uout, V', wdgt='spin', value=Data.spn(0, ref0, .01), cmd_cb=cmd_cb, fmt_cb=lambda val,read=True: dac_fmt_cb(val,read,ref=ref0,dac=0))
    if len(ref) == 2:
        ref1 = ref[1]
        data.add('ref1', label='Vref2, V', wdgt='entry', state='readonly', send=False, text=ref1)
        ref1 = float(ref1)
    else:
        ref1 = ref0
    cmd_cb = lambda dev, cmd, val: dac_cmd_cb(dev, cmd, val, dac='1')
    data.add('dac2', label='DAC2 Uout, V', wdgt='spin', value=Data.spn(0, ref1, .01), cmd_cb=cmd_cb, fmt_cb=lambda val,read=True: dac_fmt_cb(val,read,ref=ref1,dac=1))
    return data
Пример #19
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Read', read_cb), ('Write', write_cb), ('Stop', stop_cb)])
    ctrl = Data(name='Setup', buttons=ctrl_buttons)
    ctrl.add('limaz', label='Azimuth max.', wdgt='spin', value=Data.spn(0, 16383), send=True, fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=0), cmd_cb=polus_cmd_cb)
    ctrl.add('limaz2', label='Azimuth min.', wdgt='spin', value=Data.spn(0, 16383), fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=1))
    ctrl.add('limel', label='Elevation max.', wdgt='spin', value=Data.spn(0, 16383), send=True, fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=2), cmd_cb=polus_cmd_cb)
    ctrl.add('limel2', label='Elevation min.', wdgt='spin', value=Data.spn(0, 16383), fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=3))
    ctrl.add('ae0', label='New azimuth', wdgt='spin', value=Data.spn(0, 16383), send=True, fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=4), cmd_cb=polus_cmd_cb)
    ctrl.add('ae02', label='New elevation', wdgt='spin', value=Data.spn(0, 16383), fmt_cb=lambda val, read: ae0_fmt_cb(val, read, e=5))
    ctrl.add_page('Move')
    ctrl.add('az', label='Azimuth', wdgt='spin', value=Data.spn(0, 16383), send=True, cmd_cb=polus_cmd_cb)
    ctrl.add('el', label='Elevation', wdgt='spin', value=Data.spn(0, 16383), send=True, cmd_cb=polus_cmd_cb)
    return ctrl
Пример #20
0
def get_ctrl(dev):
    ctrl = Data('ctrl', send=True, io_cb=dev_serial_io_cb)
    ctrl.add('freq',
             label='Frequency, GHz',
             wdgt='spin',
             value=Data.spn(0.010, 18, 0.0001))
    ctrl.add('chold',
             label='Sensor state',
             wdgt='radio',
             value=OD([('Run', '0'), ('Hold', '1')]))
    ctrl.add('avgtyp',
             label='Averaging type',
             wdgt='radio',
             value=OD([('Moving', '0'), ('Repeat', '1')]))
    ctrl.add('avgcnt',
             label='Average count',
             wdgt='spin',
             value=Data.spn(1, 200),
             text='10')
    return ctrl
Пример #21
0
 def bank_data(self):
     data = Data(name='Bank %d' % len(self.data))
     data.add('cutoff',
              label='cutoff',
              wdgt='spin',
              text='0.3',
              value=Data.spn(.1, .9, .1))
     data.add('ntaps',
              label='# of taps',
              wdgt='spin',
              text=33,
              value=Data.spn(1, 127))
     windows = [
         'boxcar', 'triang', 'blackman', 'hamming', 'hann', 'bartlett',
         'flattop', 'parzen', 'bohman', 'blackmanharris', 'nuttall',
         'barthann'
     ]
     data.add('window',
              label='window',
              wdgt='combo',
              state='readonly',
              text='hamming',
              value=windows)
     data.add('fmt',
              label='format',
              wdgt='combo',
              state='readonly',
              text='double',
              value=['double', 'int'],
              trace_cb=lambda *args: self.bank_update())
     data.add('nbits',
              label='# of bits',
              wdgt='spin',
              value=Data.spn(4, 16),
              text='8',
              trace_cb=lambda *args: self.bank_update())
     if len(self.data):
         data.cmds['fmt'].text = self.data.get_value('fmt')
         data.cmds['nbits'].text = self.data.get_value('nbits')
         data.cmds['ntaps'].text = self.data.get_value('ntaps')
     return data
Пример #22
0
def get_ctrl(dev):
    data = Data(name='atten', send=True, io_cb=util_io_cb)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(
        dev, cmd, val, cpha='0', cpol='0')
    data.add('atten',
             label='Attenuation, dB',
             wdgt='spin',
             text='0',
             value=Data.spn(-13.5, 18, 0.5),
             fmt_cb=fmt_cb,
             cmd_cb=cmd_cb)
    return data
Пример #23
0
def get_ctrl(dev):
    data = Data(name='DAC', send=True, io_cb=util_io_cb)
    refin = dev[c_refin]
    data.add('ref',
             label='Vref, V',
             wdgt='entry',
             state='readonly',
             send=False,
             text=refin)
    refin = float(refin)
    data.add('dac0',
             label='DAC0 Uout, V',
             wdgt='spin',
             value=Data.spn(0, refin, .01),
             cmd_cb=adc_dac_cmd_cb,
             fmt_cb=lambda val, read=True: adc_dac_fmt_cb(
                 val, read, refin=refin, n=0, a=0x50))
    data.add('dac1',
             label='DAC1 Uout, V',
             wdgt='spin',
             value=Data.spn(0, refin, .01),
             cmd_cb=adc_dac_cmd_cb,
             fmt_cb=lambda val, read=True: adc_dac_fmt_cb(
                 val, read, refin=refin, n=1, a=0x50))
    data.add('dac2',
             label='DAC2 Uout, V',
             wdgt='spin',
             value=Data.spn(0, refin, .01),
             cmd_cb=adc_dac_cmd_cb,
             fmt_cb=lambda val, read=True: adc_dac_fmt_cb(
                 val, read, refin=refin, n=2, a=0x50))
    data.add('dac3',
             label='DAC3 Uout, V',
             wdgt='spin',
             value=Data.spn(0, refin, .01),
             cmd_cb=adc_dac_cmd_cb,
             fmt_cb=lambda val, read=True: adc_dac_fmt_cb(
                 val, read, refin=refin, n=3, a=0x50))
    return data
Пример #24
0
def get_ctrl(dev):
    data = Data(name='atten',
                send=True,
                buttons=OD([('Write', write_cb)]),
                io_cb=util_io_cb)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(
        dev, cmd, val, ncpha='1', cpol='0')
    data.add('atten',
             label='Attenuation, dB',
             wdgt='spin',
             value=Data.spn(0, 31.5, .5),
             fmt_cb=fmt_cb,
             cmd_cb=cmd_cb)
    return data
Пример #25
0
def get_ctrl(dev):
    spn_max, spn_step = 2.5, 0.05
    if dev['type'] == 'AD5620_2_5V':
        spn_max = 5
    data = Data(name='Voltage', send=True, io_cb=util_io_cb)
    fmt_cb = lambda val, read, spn_max=spn_max: float_fmt_cb(
        val, read, spn_max)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(
        dev, cmd, val, ncpha='0', cpol='0')
    data.add('out',
             label='OUT, V',
             wdgt='spin',
             value=Data.spn(0, spn_max, spn_step),
             fmt_cb=fmt_cb,
             cmd_cb=cmd_cb)
    return data
Пример #26
0
Файл: DC.py Проект: ivanovev/tmb
def get_ctrl(dev):
    ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb)
    ctrl.add('agc_en', label='AGC Enable', wdgt='radio', value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('agc_lvl', label='AGC Level', wdgt='spin', value=Data.spn(0, 2.5, 0.1))
    ctrl.add('bpf', label='Band Pass Filter', wdgt='combo', state='readonly', value=OD([('11MHz', '0'), ('5.5MHz', '2'), ('250kHz', '3')]))
    ctrl.add('bas', label='BAS output', wdgt='radio', value=OD([('Ch1 (sig)', '0'), ('Ch3 (br)', '1')]))
    ctrl.add('test', label='TEST output', wdgt='combo', state='readonly', value=OD([('Synth1(835-1140,1MHz)', '3'), ('Synth2(150,7MHz)', '1'), ('Synth3(1125-1140,1MHz)', '0'), ('XTAL(26MHz)', '2')]))
    ctrl.add('freq', label='Channel1 freq', wdgt='spin', value=Data.spn(975, 1000, 0.01), cmd_cb=freq_cmd_cb)
    ctrl.add('inv', label='Channel1 inv', wdgt='check', fmt_cb=inv_fmt_cb, trace_cb=inv_trace_cb)
    ctrl.add('gain', label='Channel1 gain', wdgt='spin', value=Data.spn(19, 65, 0.5))
    ctrl.add('freqbr', label='Channel3(br) freq', wdgt='spin', value=Data.spn(975, 1000.1, 0.01))
    ctrl.add('gainbr', label='Channel3(br) gain', wdgt='spin', value=Data.spn(29.5, 77.5, 0.5))
    ctrl.add('thrs1', label='Threshold1', wdgt='spin', value=Data.spn(0, 200, 1))
    ctrl.add('thrs2', label='Threshold2', wdgt='spin', value=Data.spn(0, 200, 1))
    ctrl.add('thrsb', label='Threshold (br)', wdgt='spin', value=Data.spn(0, 10, 0.1))
    ctrl.add_page('System')
    ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON')
    return ctrl
Пример #27
0
 def bank_data(self):
     data = Data(name='Bank %d' % len(self.data))
     data.add('R', label='(R) Decimation factor', wdgt='spin', text=100, value=Data.spn(1,127), trace_cb=self.Fo_upd_trace_cb)
     data.add('M', label='(M) Differential delay', wdgt='spin', text=1, value=Data.spn(1,127))
     data.add('N', label='(N) Number of stages', wdgt='spin', text=5, value=Data.spn(1,127), msg='number of cascaded filters')
     data.add('Fs', label='Fs, MHz', wdgt='spin', text=5, value=Data.spn(1,100,.1), msg='Sampling freq in MHz before decimation', trace_cb=self.Fo_upd_trace_cb)
     data.add('Fc', label='Fc, kHz', wdgt='spin', text=1, value=Data.spn(1,1000,1), msg='Pass band edge in kHz', trace_cb=self.Fo_upd_trace_cb)
     data.add('Fo', label='Fo', wdgt='entry', state='readonly', msg='Fo = R*Fc/Fs; Normalized Cutoff freq; 0<Fo<=0.5/M')
     data.add('L', label='(L) Filter order', wdgt='spin', text=32, value=Data.spn(2,128,2), msg='Filter order; must be even')
     data.add('fmt', label='format', wdgt='combo', state='readonly', text='double', value=['double', 'int'], trace_cb=lambda *args: self.bank_update())
     data.add('nbits', label='# of bits', wdgt='spin', value=Data.spn(4, 16), text='8', trace_cb=lambda *args: self.bank_update())
     self.Fo_upd_trace_cb('R', data)
     if len(self.data):
         data.cmds['fmt'].text = self.data.get_value('fmt')
         data.cmds['nbits'].text = self.data.get_value('nbits')
         data.cmds['ntaps'].text = self.data.get_value('ntaps')
     return data
Пример #28
0
def get_ctrl(dev):
    ctrl = Data(io_cb=cmd_serial_io_cb)
    ctrl.add_page('Modulator', send=True)
    ctrl.add('RF', label='RF Output', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add('MF', label='Modulator Frequency, MHz', wdgt='spin', value=Data.spn(50, 180, .001), fmt_cb=mf_fmt_cb)
    ctrl.add('AMRV', label='Modulation type', wdgt='radio', value=OD([('QPSK 1/2','1/2'),('QPSK 3/4','3/4'),('QPSK 7/8','7/8'),('BPSK 1/2','BP12')]), fmt_cb=amrv_fmt_cb)
    ctrl.add('AMRV2', label='Data rate, kbps', wdgt='spin', value=Data.spn(2.4, 5000, .1), fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 1), send=False)
    ctrl.add('MOP', label='Power Level, dBm', wdgt='spin', value=Data.spn(-30, -5), fmt_cb=mop_fmt_cb)
    ctrl.add('SE', label='Scrambler Enable', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add('DENC', label='Dif Decoder Enable', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add_page('Demodulator', send=True)
    ctrl.add('DF', label='Demodulator Frequency', wdgt='spin', value=Data.spn(50, 180, .001), fmt_cb=mf_fmt_cb)
    ctrl.add('ADRV', label='Modulation type', wdgt='radio', value=OD([('QPSK 1/2','1/2'),('QPSK 3/4','3/4'),('QPSK 7/8','7/8'),('BPSK 1/2','BP12')]), fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 2))
    ctrl.add('ADRV2', label='Data rate, kbps', wdgt='spin', value=Data.spn(2.4, 5000, .1), fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 3), send=False)
    ctrl.add('SWR', label='Sweep Width, Hz', wdgt='spin', value=Data.spn(0, 70000), fmt_cb=swr_fmt_cb)
    ctrl.add('SR', label='Sweep Reacquision, s', wdgt='spin', value=Data.spn(0, 999))
    ctrl.add('DE', label='Descrambler enable', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add('DDEC', label='Differential decoder', wdgt='radio', value=['ON', 'OFF'])
    return ctrl
Пример #29
0
def get_ctrl(dev):
    ctrl = Data(send=True, io_cb=cmd_io_cb)
    ctrl.add_page('Modulator')
    ctrl.add('EID', label='Turbo', wdgt='entry', state='readonly', text='???', cmd_cb=turbo_cmd_cb, fmt_cb=turbo_fmt_cb, trace_cb=turbo_trace_cb)
    ctrl.add('TFT', label='Tx FEC Type', wdgt='radio', value=OD([('Viterbi','1'),('Turbo','6')]), trace_cb=ft_trace_cb)
    ctrl.add('TMD', label='Tx Modulation Type', wdgt='radio', value=OD([('BPSK',0),('QPSK',1),('16QAM',4)]), trace_cb=md_trace_cb)
    ctrl.add('TCR', label='Tx FEC Code Rate', wdgt='radio', value=OD([('1/2',2),('3/4',4),('7/8',5),('19/20',6),('21/44',1),('5/16',0)]))
    ctrl.add('TXO', label='Tx Carrier State', wdgt='radio', value=OD([('ON',1),('OFF',0)]))
    ctrl.add('TDR', label='Tx Data Rate, kbps', wdgt='spin', value=Data.spn(2.4, 9980, .001), fmt_cb=dr_fmt_cb)
    ctrl.add('TFQ', label='Tx Frequency, MHz', wdgt='spin', value=Data.spn(50, 90, .001), fmt_cb=fq_fmt_cb)
    ctrl.add('TPL', label='Tx Power Level', wdgt='spin', value=Data.spn(-40, 0, .1), fmt_cb=tpl_fmt_cb)
    ctrl.add('TSC', label='Tx Scrambler', wdgt='radio', value=OD([('ON',1),('OFF','0')]))
    ctrl.add_page('Demodulator')
    ctrl.add('EID', label='Turbo', wdgt='entry', state='readonly', text='???', cmd_cb=turbo_cmd_cb, fmt_cb=turbo_fmt_cb, trace_cb=lambda k,d: turbo_trace_cb(k,d,'R'))
    ctrl.add('RFT', label='Rx FEC Type', wdgt='radio', value=OD([('Viterbi',1),('Turbo',6)]), trace_cb=lambda k,d: ft_trace_cb(k,d,'R'))
    ctrl.add('RMD', label='Rx Demod type', wdgt='radio', value=OD([('BPSK',0),('QPSK',1),('16QAM',4)]), trace_cb=lambda k,d: md_trace_cb(k,d,'R'))
    ctrl.add('RCR', label='Rx FEC Code Rate', wdgt='radio', value=OD([('1/2',2),('3/4',4),('7/8',5),('19/20',6),('21/44',1),('5/16',0)]))
    ctrl.add('RDR', label='Rx Data Rate, kbps', wdgt='spin', value=Data.spn(2.4, 9980, .01), fmt_cb=dr_fmt_cb)
    ctrl.add('RFQ', label='Rx Frequency, MHz', wdgt='spin', value=Data.spn(50, 90, .001), fmt_cb=fq_fmt_cb)
    ctrl.add('RSW', label='Rx Sweep Width, kHz', wdgt='spin', value=Data.spn(1, 32), fmt_cb=rsw_fmt_cb)
    ctrl.add('RDS', label='Rx Scrambler', wdgt='radio', value=OD([('ON',1),('OFF',0)]))
    return ctrl
Пример #30
0
def get_ctrl(dev):
    ctrl = Data(io_cb=cmd_serial_io_cb)
    ctrl.add_page('Modulator', send=True)
    ctrl.add('RF', label='RF Output', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add('MF',
             label='Modulator Frequency, MHz',
             wdgt='spin',
             value=Data.spn(50, 180, .001),
             fmt_cb=mf_fmt_cb)
    ctrl.add('AMRV',
             label='Modulation type',
             wdgt='radio',
             value=OD([('QPSK 1/2', '1/2'), ('QPSK 3/4', '3/4'),
                       ('QPSK 7/8', '7/8'), ('BPSK 1/2', 'BP12')]),
             fmt_cb=amrv_fmt_cb)
    ctrl.add('AMRV2',
             label='Data rate, kbps',
             wdgt='spin',
             value=Data.spn(2.4, 5000, .1),
             fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 1),
             send=False)
    ctrl.add('MOP',
             label='Power Level, dBm',
             wdgt='spin',
             value=Data.spn(-30, -5),
             fmt_cb=mop_fmt_cb)
    ctrl.add('SE', label='Scrambler Enable', wdgt='radio', value=['ON', 'OFF'])
    ctrl.add('DENC',
             label='Dif Decoder Enable',
             wdgt='radio',
             value=['ON', 'OFF'])
    ctrl.add_page('Demodulator', send=True)
    ctrl.add('DF',
             label='Demodulator Frequency',
             wdgt='spin',
             value=Data.spn(50, 180, .001),
             fmt_cb=mf_fmt_cb)
    ctrl.add('ADRV',
             label='Modulation type',
             wdgt='radio',
             value=OD([('QPSK 1/2', '1/2'), ('QPSK 3/4', '3/4'),
                       ('QPSK 7/8', '7/8'), ('BPSK 1/2', 'BP12')]),
             fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 2))
    ctrl.add('ADRV2',
             label='Data rate, kbps',
             wdgt='spin',
             value=Data.spn(2.4, 5000, .1),
             fmt_cb=lambda val, read: amrv_fmt_cb(val, read, 3),
             send=False)
    ctrl.add('SWR',
             label='Sweep Width, Hz',
             wdgt='spin',
             value=Data.spn(0, 70000),
             fmt_cb=swr_fmt_cb)
    ctrl.add('SR',
             label='Sweep Reacquision, s',
             wdgt='spin',
             value=Data.spn(0, 999))
    ctrl.add('DE',
             label='Descrambler enable',
             wdgt='radio',
             value=['ON', 'OFF'])
    ctrl.add('DDEC',
             label='Differential decoder',
             wdgt='radio',
             value=['ON', 'OFF'])
    return ctrl
Пример #31
0
def get_ctrl(dev):
    if 'devdata' not in dev:
        return
    if dev['devdata'].find('mod') == 0:
        ctrl_mod = Data(io_cb=cmd_io_cb, send=True)
        ctrl_mod.add_page('Modulator')
        if dev['devdata'][-1] == 't':
            ctrl_mod.add('CODE',
                         label='FEC codec',
                         wdgt='radio',
                         value=['Turbo', 'Viterbi'])
        ctrl_mod.add('MOD',
                     label='TX output',
                     wdgt='radio',
                     value=['Enable', 'Disable'])
        ctrl_mod.add('MT',
                     label='Modulation',
                     wdgt='radio',
                     value=['BPSK', 'QPSK', '8PSK', '16QAM'])
        ctrl_mod.add('RATE',
                     label='Encoder',
                     wdgt='radio',
                     value=['1/2', '3/4', 'C3/4', '7/8', '19/20'])
        ctrl_mod.add('DATA',
                     label='Data rate,kbps',
                     wdgt='spin',
                     value=Data.spn(9.6, 10000, .1),
                     fmt_cb=data_fmt_cb)
        ctrl_mod.add(
            'CARRIER',
            label='Modulator Frequency,MHz',
            wdgt='spin',
            value=Data.spn(52, 176, .001),
            fmt_cb=lambda val, read=True: data_fmt_cb(val, read, coef=1000000))
        ctrl_mod.add('SCRAM',
                     label='Scrabler',
                     wdgt='radio',
                     value=['Enable', 'Disable'])
        return ctrl_mod
    if dev['devdata'].find('demod') == 0:
        ctrl_demod = Data(io_cb=cmd_io_cb, send=True)
        ctrl_demod.add_page('Demodulator')
        if dev['devdata'][-1] == 't':
            ctrl_demod.add('CODE',
                           label='FEC codec',
                           wdgt='radio',
                           value=['Turbo', 'Viterbi'])
        ctrl_demod.add('ACQ',
                       label='Acquisition',
                       wdgt='radio',
                       value=['FFT', 'SWEEP', 'FFT-SWEEP'])
        ctrl_demod.add('MT',
                       label='Demodulation',
                       wdgt='radio',
                       value=['BPSK', 'QPSK', '8PSK', '16QAM'])
        ctrl_demod.add('RATE',
                       label='Encoder',
                       wdgt='radio',
                       value=['1/2', '3/4', 'C3/4', '7/8', '19/20'])
        ctrl_demod.add('DATA',
                       label='Data rate,kbps',
                       wdgt='spin',
                       value=Data.spn(9.6, 10000, .1),
                       fmt_cb=data_fmt_cb)
        ctrl_demod.add(
            'CARRIER',
            label='Modulator Frequency,MHz',
            wdgt='spin',
            value=Data.spn(52, 176, .001),
            fmt_cb=lambda val, read=True: data_fmt_cb(val, read, coef=1000000))
        ctrl_demod.add('SWEEP',
                       label='Sweep width,khz',
                       wdgt='spin',
                       value=Data.spn(1, 512, .001),
                       fmt_cb=data_fmt_cb)
        ctrl_demod.add('DESC',
                       label='Descrabler',
                       wdgt='radio',
                       value=['Enable', 'Disable'])
        ctrl_demod.add('DIFF',
                       label='Differential decoder',
                       wdgt='radio',
                       value=['Enable', 'Disable'])
        ctrl_demod.add('DESMODE',
                       label='Descrambler mode',
                       wdgt='radio',
                       value=['IESS', 'CCITT'],
                       fmt_cb=desmode_fmt_cb)
        return ctrl_demod
Пример #32
0
 def __init__(self, dev):
     data = get_mntr(dev)
     data.add('step', wdgt='spin', value=Data.spn(1, 100), msg='Step')
     Monitor.__init__(self, data=data, dev=dev)
Пример #33
0
def get_calc_data():
    data = RegsData(sz=16)
    data.add_page('calc0')
    data.add('label0', label='Fmix = Fvco / DIV')
    data.add_page('calc1')
    data.add('Fmix',
             wdgt='spin',
             value=Data.spn(356.25, 2850, 0.01),
             text='1440',
             msg='Fmix',
             src=Fmix_src_cb)
    data.add('Fvco1',
             wdgt='entry',
             state='readonly',
             msg='Fvco',
             src=Fvco_src_cb)
    data.add('DIV',
             wdgt='combo',
             state='readonly',
             text='2',
             value=['2', '4', '8'],
             msg='DIV',
             src=lambda d, v: d.list_src('R22', 3, 4, ['2', '4', '8'], v))
    data.add_page('calc2')
    data.add('label1', label='Fvco = 2 x Fpfd x (INT + FRAC/MOD )')
    data.add_page('calc3')
    data.add('Fvco',
             wdgt='entry',
             state='readonly',
             msg='Fvco',
             src=Fvco_src_cb)
    data.add('Fpfd1',
             wdgt='entry',
             state='readonly',
             msg='Fpfd',
             src=Fpfd_src_cb)
    data.add('INT',
             wdgt='spin',
             value=Data.spn(21, 123),
             msg='INT',
             src=lambda d, v: d.bits_src('R02', 0, 10, v))
    data.add('FRAC',
             wdgt='spin',
             value=Data.spn(0, 63535),
             msg='FRAC',
             src=lambda d, v: d.bits_src('R03', 0, 15, v))
    data.add('MOD',
             wdgt='spin',
             value=Data.spn(1, 63535),
             msg='MOD',
             src=lambda d, v: d.bits_src('R04', 0, 15, v))
    data.add_page('calc4')
    data.add('label0', label='Fpfd = REFin x REFSEL')
    data.add_page('calc5')
    data.add('Fpfd',
             wdgt='entry',
             state='readonly',
             msg='Fpfd',
             src=Fpfd_src_cb)
    data.add('REFin',
             wdgt='entry',
             state='readonly',
             msg='REFin',
             src=lambda d, v: d.dev_src('refin'))
    data.add('REFSEL',
             wdgt='combo',
             state='readonly',
             value=refsel_list,
             msg='REFSEL',
             src=lambda d, v: d.list_src('R21', 0, 2, refsel_list, v))
    data.add_page('calc6')
    data.add('MUXOUT',
             wdgt='combo',
             state='readonly',
             value=muxout_list,
             label='MUXOUT',
             width=30,
             src=lambda d, v: d.list_src('R21', 4, 6, muxout_list, v))
    data.add_page('calc7')
    data.add('VCOSEL',
             wdgt='combo',
             state='readonly',
             value=vcosel_list,
             label='VCOSEL',
             src=lambda d, v: d.list_src('R22', 0, 2, vcosel_list, v))
    return data
Пример #34
0
def get_ctrl(dev):
    ctrl = Data(name='ATTEN', send=True, io_cb=dev_io_cb)
    ctrl.add('atten1', label='Attenuation', wdgt='spin', value=Data.spn(0, 31), text='16', fmt_cb=atten_fmt_cb)
    return ctrl
Пример #35
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Reset', reset_cb), ('Read', read_cb), ('Write', write_cb)])
    data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb)
    data.add_page('Mode', send=True)
    data.add('COMMON', label='Mode', wdgt='combo', state='readonly', value=['INDEPENDENT', 'PARALLEL', 'SERIES', 'DOUBLE'], fmt_cb=common_fmt_cb)
    data.add_page('Independent', send=True)
    data.add('SCH1V', label='Channel1, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb)
    data.add('SCH1C', label='Channel1, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb)
    data.add('SW1', label='Output1 enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')]))
    data.add('SCH2V', label='Channel2, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb)
    data.add('SCH2C', label='Channel2, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb)
    data.add('SW2', label='Output2 enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')]))
    data.add_page('Parallel', send=True)
    data.add('SPARAV', label='Output, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb)
    data.add('SPARAC', label='Output, A', wdgt='spin', value=Data.spn(0,6,.01), fmt_cb=odp_fmt_cb)
    data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')]))
    data.add_page('Series', send=True)
    data.add('SSERIV', label='Output, V', wdgt='spin', value=Data.spn(0,60,.01), fmt_cb=odp_fmt_cb)
    data.add('SSERIC', label='Output, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb)
    data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')]))
    data.add_page('PlusMinus', send=True)
    data.add('SDUAL1V', label='Output1, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb)
    data.add('SDUAL1C', label='Output1, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb)
    data.add('SDUAL2V', label='Output2, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb)
    data.add('SDUAL2C', label='Output2, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb)
    data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')]))
    return data
Пример #36
0
def get_ctrl(dev):             
    data = Data(name='atten', send=True, io_cb=util_io_cb)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, cpha='0', cpol='0')
    data.add('atten', label='Attenuation, dB', wdgt='spin', text='0', value=Data.spn(-13.5, 18, 0.5), fmt_cb=fmt_cb, cmd_cb=cmd_cb)
    return data
Пример #37
0
def get_ctrl(dev):
    data = Data(name='atten', send=True, buttons=OD([('Write', write_cb)]), io_cb=util_io_cb)
    cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='1', cpol='0')
    data.add('atten', label='Attenuation, dB', wdgt='spin', value=Data.spn(0, 31.5, .5), fmt_cb=fmt_cb, cmd_cb=cmd_cb)
    return data
Пример #38
0
 def __init__(self, dev):
     data = get_mntr(dev)
     data.add('step', wdgt='spin', value=Data.spn(1,100), msg='Step')
     Monitor.__init__(self, data=data, dev=dev)
Пример #39
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Reset', reset_cb), ('Read', read_cb),
                       ('Write', write_cb)])
    data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb)
    data.add_page('Mode', send=True)
    data.add('COMMON',
             label='Mode',
             wdgt='combo',
             state='readonly',
             value=['INDEPENDENT', 'PARALLEL', 'SERIES', 'DOUBLE'],
             fmt_cb=common_fmt_cb)
    data.add_page('Independent', send=True)
    data.add('SCH1V',
             label='Channel1, V',
             wdgt='spin',
             value=Data.spn(0, 30, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SCH1C',
             label='Channel1, A',
             wdgt='spin',
             value=Data.spn(0, 3, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SW1',
             label='Output1 enable',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '0'), ('OFF', '1')]))
    data.add('SCH2V',
             label='Channel2, V',
             wdgt='spin',
             value=Data.spn(0, 30, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SCH2C',
             label='Channel2, A',
             wdgt='spin',
             value=Data.spn(0, 3, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SW2',
             label='Output2 enable',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '0'), ('OFF', '1')]))
    data.add_page('Parallel', send=True)
    data.add('SPARAV',
             label='Output, V',
             wdgt='spin',
             value=Data.spn(0, 30, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SPARAC',
             label='Output, A',
             wdgt='spin',
             value=Data.spn(0, 6, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SW1',
             label='Output enable',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '0'), ('OFF', '1')]))
    data.add_page('Series', send=True)
    data.add('SSERIV',
             label='Output, V',
             wdgt='spin',
             value=Data.spn(0, 60, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SSERIC',
             label='Output, A',
             wdgt='spin',
             value=Data.spn(0, 3, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SW1',
             label='Output enable',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '0'), ('OFF', '1')]))
    data.add_page('PlusMinus', send=True)
    data.add('SDUAL1V',
             label='Output1, V',
             wdgt='spin',
             value=Data.spn(0, 30, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SDUAL1C',
             label='Output1, A',
             wdgt='spin',
             value=Data.spn(0, 3, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SDUAL2V',
             label='Output2, V',
             wdgt='spin',
             value=Data.spn(0, 30, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SDUAL2C',
             label='Output2, A',
             wdgt='spin',
             value=Data.spn(0, 3, .01),
             fmt_cb=odp_fmt_cb)
    data.add('SW1',
             label='Output enable',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '0'), ('OFF', '1')]))
    return data
Пример #40
0
def get_ctrl(dev):
    data = Data('ctrl', send=True, io_cb=dev_io_cb)
    data.add('freq', label='Frequency, MHz', wdgt='spin', value=Data.spn(0.1, 12400, 0.1), text='1000')
    data.add('offset', label='TG - MA, MHz', wdgt='spin', value=Data.spn(0.1, 12400, 0.1), text='140')
    return data
Пример #41
0
def get_ctrl(dev):
    ctrl = Data(send=True, io_cb=cmd_io_cb)
    ctrl.add_page('Modulator')
    ctrl.add('EID',
             label='Turbo',
             wdgt='entry',
             state='readonly',
             text='???',
             cmd_cb=turbo_cmd_cb,
             fmt_cb=turbo_fmt_cb,
             trace_cb=turbo_trace_cb)
    ctrl.add('TFT',
             label='Tx FEC Type',
             wdgt='radio',
             value=OD([('Viterbi', '1'), ('Turbo', '6')]),
             trace_cb=ft_trace_cb)
    ctrl.add('TMD',
             label='Tx Modulation Type',
             wdgt='radio',
             value=OD([('BPSK', 0), ('QPSK', 1), ('16QAM', 4)]),
             trace_cb=md_trace_cb)
    ctrl.add('TCR',
             label='Tx FEC Code Rate',
             wdgt='radio',
             value=OD([('1/2', 2), ('3/4', 4), ('7/8', 5), ('19/20', 6),
                       ('21/44', 1), ('5/16', 0)]))
    ctrl.add('TXO',
             label='Tx Carrier State',
             wdgt='radio',
             value=OD([('ON', 1), ('OFF', 0)]))
    ctrl.add('TDR',
             label='Tx Data Rate, kbps',
             wdgt='spin',
             value=Data.spn(2.4, 9980, .001),
             fmt_cb=dr_fmt_cb)
    ctrl.add('TFQ',
             label='Tx Frequency, MHz',
             wdgt='spin',
             value=Data.spn(50, 90, .001),
             fmt_cb=fq_fmt_cb)
    ctrl.add('TPL',
             label='Tx Power Level',
             wdgt='spin',
             value=Data.spn(-40, 0, .1),
             fmt_cb=tpl_fmt_cb)
    ctrl.add('TSC',
             label='Tx Scrambler',
             wdgt='radio',
             value=OD([('ON', 1), ('OFF', '0')]))
    ctrl.add_page('Demodulator')
    ctrl.add('EID',
             label='Turbo',
             wdgt='entry',
             state='readonly',
             text='???',
             cmd_cb=turbo_cmd_cb,
             fmt_cb=turbo_fmt_cb,
             trace_cb=lambda k, d: turbo_trace_cb(k, d, 'R'))
    ctrl.add('RFT',
             label='Rx FEC Type',
             wdgt='radio',
             value=OD([('Viterbi', 1), ('Turbo', 6)]),
             trace_cb=lambda k, d: ft_trace_cb(k, d, 'R'))
    ctrl.add('RMD',
             label='Rx Demod type',
             wdgt='radio',
             value=OD([('BPSK', 0), ('QPSK', 1), ('16QAM', 4)]),
             trace_cb=lambda k, d: md_trace_cb(k, d, 'R'))
    ctrl.add('RCR',
             label='Rx FEC Code Rate',
             wdgt='radio',
             value=OD([('1/2', 2), ('3/4', 4), ('7/8', 5), ('19/20', 6),
                       ('21/44', 1), ('5/16', 0)]))
    ctrl.add('RDR',
             label='Rx Data Rate, kbps',
             wdgt='spin',
             value=Data.spn(2.4, 9980, .01),
             fmt_cb=dr_fmt_cb)
    ctrl.add('RFQ',
             label='Rx Frequency, MHz',
             wdgt='spin',
             value=Data.spn(50, 90, .001),
             fmt_cb=fq_fmt_cb)
    ctrl.add('RSW',
             label='Rx Sweep Width, kHz',
             wdgt='spin',
             value=Data.spn(1, 32),
             fmt_cb=rsw_fmt_cb)
    ctrl.add('RDS',
             label='Rx Scrambler',
             wdgt='radio',
             value=OD([('ON', 1), ('OFF', 0)]))
    return ctrl
Пример #42
0
def get_ctrl(dev):
    data = Data('ctrl', send=True, io_cb=dev_io_cb)
    data.add('ctrl1', label='Test ctrl value1', wdgt='spin', value=Data.spn(0, 10), text='0')
    return data