Пример #1
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
Пример #2
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Reset', reset_cb), ('Write', write_cb)])
    data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb)
    data.add_page('Generator', send=True)
    data.add('freq', label='Frequency, MHz', wdgt='spin', value={'min':0.1, 'max':12400, 'step':0.1}, text='1451')
    data.add('amp', label='Amplitude, dBm', wdgt='spin', value={'min':-40, 'max':-6, 'step':0.5}, text='-40')
    return data
Пример #3
0
def get_mntr(self):
    data = Data(name='Monitor')
    data.add('az',
             label='Azimuth',
             wdgt='entry',
             state='readonly',
             send=True,
             cmd_cb=polus_cmd_cb)
    data.add('el',
             label='Elevation',
             wdgt='entry',
             state='readonly',
             send=True,
             cmd_cb=polus_cmd_cb)

    def add_alarm(k, bit, msg, cmd_cb=None):
        data.add(k,
                 wdgt='alarm',
                 send=True if cmd_cb else False,
                 cmd_cb=cmd_cb,
                 fmt_cb=lambda val, read: alarm_fmt_cb(val, read, bit),
                 msg=msg,
                 trace_cb=alarm_trace_cb)

    add_alarm('az+', 0, 'az+', cmd_cb=lambda *args: 'POLUS.status')
    add_alarm('az-', 1, 'az-')
    #add_alarm('limaz+', 4, 'limaz+')
    #add_alarm('limaz-', 5, 'limaz-')
    add_alarm('el+', 2, 'el+')
    add_alarm('el-', 3, 'el-')
    #add_alarm('limel+', 6, 'limel+')
    #add_alarm('limel-', 7, 'limel-')
    return data
Пример #4
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
Пример #5
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
Пример #6
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
Пример #7
0
def get_mntr(dev):
    data = Data(name='mntr', io_cb=lambda d, c: util_io_cb(d, c, prefix='ALT'))
    data.add('pio',
             label='IN',
             wdgt='entry',
             state='readonly',
             cmd_cb=alt_cmd_cb,
             send=True)
    return data
Пример #8
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
Пример #9
0
def get_mntr(dev):
    data = Data('mntra', send=True, io_cb=dev_serial_io_cb)
    for ch in range(1, 9):
        data.add('a%d'%ch,cmd='fetch',wdgt='alarm',msg='CH%d'%ch,fmt_cb=lambda val,read,c=ch:fmt_cb1(val,read,c),send=(ch==1),trace_cb=alarm_trace_cb)
    data.add_page('mntre', send=True)
    for ch in range(1, 9):
        v = data.add('CH%d'%ch, wdgt='entry', label='CH%d'%ch, msg='CH%d'%ch)
    data.cmds.columns = 4
    return data
Пример #10
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
Пример #11
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_io_cb)
    mntr.add_page('mntr', send=True)
    mntr.add('synth',
             wdgt='alarm',
             trace_cb=alarm_trace_cb,
             fmt_cb=synth_fmt_cb,
             msg='Synthesizer status')
    mntr.add('uout', wdgt='entry', state='readonly', msg='Uout, V')
    return mntr
Пример #12
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
Пример #13
0
def get_mntr(dev):
    mntr = Data('mntr', send=True, io_cb=dev_serial_io_cb)
    mntr.add('pwr',
             wdgt='entry',
             state='readonly',
             msg='current power reading (in dBm)')
    mntr.add('temp',
             wdgt='entry',
             state='readonly',
             msg='current temperature reading')
    return mntr
Пример #14
0
 def __init__(self, dev, title='File IO'):
     data = Data()
     data.dev = dev
     data.buttons = OD()
     #data.buttons['TX stop'] = self.dma_stop_cb
     self.add_tx_cmds(data, txcrc32=False)
     data.add('txstop', wdgt='button', text='TX stop', click_cb=self.dma_stop_cb)
     self.add_rx_cmds(data)
     Control.__init__(self, data, dev, title=title)
     self.fileext = 'pcm'
     self.center()
Пример #15
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
Пример #16
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
Пример #17
0
def get_ctrl(dev):
    data = Data(name='ctrl', io_cb=lambda d, c: util_io_cb(d, c, prefix='ALT'))
    data.add('pio',
             label='PIO',
             wdgt='spin',
             value={
                 'min': 0,
                 'max': 0xFF,
                 'step': 1
             },
             cmd_cb=alt_cmd_cb,
             send=True)
    return data
Пример #18
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
Пример #19
0
def get_ctrl(dev):
    ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb)
    ctrl.add('chup',
             label='Channel UP',
             wdgt='combo',
             state='readonly',
             value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('chdn',
             label='Channel DOWN',
             wdgt='combo',
             state='readonly',
             value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('test',
             label='Test signal',
             wdgt='combo',
             state='readonly',
             value=OD([('UC-HF', '0'), ('UC-IF', '1'), ('DC-HF', '2'),
                       ('DC-IF', '3')]))
    ctrl.add_page('System')
    ctrl.add('commit',
             label='EFC commit enable',
             wdgt='combo',
             state='readonly',
             value=['ON', 'OFF'],
             text='ON')
    return ctrl
Пример #20
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_page('System')
    ctrl.add('commit',
             label='EFC commit enable',
             wdgt='combo',
             state='readonly',
             value=['ON', 'OFF'],
             text='ON')
    return ctrl
Пример #21
0
def get_ctrl(dev):
    ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb)
    ctrl.add('chup', label='Channel UP', wdgt='combo', state='readonly', value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('chdn', label='Channel DOWN', wdgt='combo', state='readonly', value=OD([('Channel A', '1'), ('Channel B', '0')]))
    ctrl.add('test', label='Test signal', wdgt='combo', state='readonly', value=OD([('UC-HF', '0'), ('UC-IF', '1'), ('DC-HF', '2'), ('DC-IF', '3')]))
    ctrl.add_page('System')
    ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON')
    return ctrl
Пример #22
0
def get_mntr(self):
    data = Data(name='Monitor')
    data.add('az', label='Azimuth', wdgt='entry', state='readonly', send=True, cmd_cb=polus_cmd_cb)
    data.add('el', label='Elevation', wdgt='entry', state='readonly', send=True, cmd_cb=polus_cmd_cb)
    def add_alarm(k, bit, msg, cmd_cb=None):
        data.add(k, wdgt='alarm', send=True if cmd_cb else False, cmd_cb=cmd_cb, fmt_cb=lambda val, read: alarm_fmt_cb(val, read, bit), msg=msg, trace_cb=alarm_trace_cb)
    add_alarm('az+', 0, 'az+', cmd_cb=lambda *args: 'POLUS.status')
    add_alarm('az-', 1, 'az-')
    #add_alarm('limaz+', 4, 'limaz+')
    #add_alarm('limaz-', 5, 'limaz-')
    add_alarm('el+', 2, 'el+')
    add_alarm('el-', 3, 'el-')
    #add_alarm('limel+', 6, 'limel+')
    #add_alarm('limel-', 7, 'limel-')
    return data
Пример #23
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
Пример #24
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
Пример #25
0
def get_mntr(dev):
    mntr = Data(io_cb=CDM570.cmd_io_cb, send=True)
    mntr.add_page('mntr0')
    aa = lambda k, send, msg, fltn: mntr.add(k, wdgt='alarm', send=send, msg=msg, cmd='FLT', fmt_cb=lambda val,read=True: flt_fmt_cb(val, read, fltn=fltn), trace_cb=alarm_trace_cb)
    aa('FLT0', True, 'Unit fault', 0)
    aa('FLT1', False, 'Slot 1', 1)
    aa('FLT2', False, 'Slot 2', 2)
    aa('FLT3', False, 'Slot 3', 3)
    aa('FLT4', False, 'Slot 4', 4)
    mntr.add('TMP', wdgt='entry', msg='Temperature')
    if dev['devdata'] == 'mod':
        return mntr
    if dev['devdata'] == 'demod':
        mntr1 = CDM570.get_mntr(dev)
        mntr.add_page(name=mntr1[1].name, cmds=mntr1[1])
        return mntr
Пример #26
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
Пример #27
0
def get_lpf_ctrl(data=None, cmd=None):
    if not data:
        data = Data(name='LPF', io_cb=util_io_cb)
    if not cmd:
        cmd = 'lpf'
    data.add(cmd, label='LPF, MHz', wdgt='spin', text='15', value={'min':0, 'max':31, 'step':1}, fmt_cb=lpf_fmt_cb, cmd_cb=lpf_cmd_cb, send=True)
    data.add('g3', label='Preamplifier gain', wdgt='radio', text=gain_list[2][0], value=gain_list[2], fmt_cb=lambda v,r: gain_fmt_cb(v,r,2), send=False)
    data.add('g2', label='Postamplifier gain', wdgt='radio', text=gain_list[1][0], value=gain_list[1], fmt_cb=lambda v,r: gain_fmt_cb(v,r,1), send=False)
    data.add('g1', label='VGA max gain', wdgt='radio', text=gain_list[0][0], value=gain_list[0], fmt_cb=lambda v,r: gain_fmt_cb(v,r,0), send=False)
Пример #28
0
def get_mntr(dev):
    mntr = Data(name='status', send=True, io_cb=dev_io_cb)
    mntr.add('status',
             wdgt='alarm',
             trace_cb=alarm_trace_cb,
             fmt_cb=status_fmt_cb,
             msg='Power supply')
    add_status = lambda n, msg: mntr.add('status%d' % n,
                                         wdgt='alarm',
                                         send=False,
                                         trace_cb=alarm_trace_cb,
                                         fmt_cb=lambda val, read:
                                         status_fmt_cb(val, read, n),
                                         msg=msg)
    add_status(1, 'Synth1 lock detect')
    add_status(2, 'Synth2 (aux) lock detect')
    add_status(3, 'Output level < threshold')
    mntr.add_page('mntr')
    mntr.add('5_5v', wdgt='entry', label='5.5V', state='readonly', msg='5.5V')
    mntr.add('txl',
             wdgt='entry',
             label='TXL',
             state='readonly',
             msg='TX signal level')
    return mntr
Пример #29
0
def get_mntr(dev):
    data = Data('mntra', send=True, io_cb=dev_serial_io_cb)
    for ch in range(1, 9):
        data.add('a%d' % ch,
                 cmd='fetch',
                 wdgt='alarm',
                 msg='CH%d' % ch,
                 fmt_cb=lambda val, read, c=ch: fmt_cb1(val, read, c),
                 send=(ch == 1),
                 trace_cb=alarm_trace_cb)
    data.add_page('mntre', send=True)
    for ch in range(1, 9):
        v = data.add('CH%d' % ch,
                     wdgt='entry',
                     label='CH%d' % ch,
                     msg='CH%d' % ch)
    data.cmds.columns = 4
    return data
Пример #30
0
def get_mntr(dev):
    mntr = Data(name='status', send=True, io_cb=dev_io_cb)
    mntr.add('status', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=status_fmt_cb, msg='Power supply')
    add_status = lambda n, msg: mntr.add('status%d' % n, wdgt='alarm', send=False, trace_cb=alarm_trace_cb, fmt_cb=lambda val, read: status_fmt_cb(val,read,n), msg=msg)
    add_status(1, 'Ch1 (sig)')
    add_status(2, 'Ch2 (aux)')
    add_status(3, 'Ch3 (br)')
    add_status(4, 'Uch1 (sig) < LVL')
    add_status(5, 'Uch3 (br) < LVL')
    mntr.add_page('Vcc')
    mntr.add('3v', wdgt='entry', label='3V', state='readonly', msg='3V')
    mntr.add('11v', wdgt='entry', label='11V', state='readonly', msg='11V')
    mntr.add('2_5v1', wdgt='entry', label='UC 2.5V', state='readonly', msg='UC 2.5V')
    mntr.add('2_5v2', wdgt='entry', label='DC 2.5V', state='readonly', msg='DC 2.5V')
    return mntr
Пример #31
0
Файл: DC.py Проект: ivanovev/tmb
def get_mntr(dev):
    mntr = Data(name='status', send=True, io_cb=dev_io_cb)
    mntr.add('status', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=status_fmt_cb, msg='Power supply')
    add_status = lambda n, msg: mntr.add('status%d' % n, wdgt='alarm', send=False, trace_cb=alarm_trace_cb, fmt_cb=lambda val, read: status_fmt_cb(val,read,n), msg=msg)
    add_status(1, 'Ch1 (sig)')
    add_status(2, 'Ch2')
    add_status(3, 'Ch3 (br)')
    add_status(4, '(RXL < Thrs1) || (RXL > Thrs2)')
    add_status(5, 'BRL < ThrsB')
    mntr.add_page('mntr')
    mntr.add('5_5v', wdgt='entry', label='5.5V', state='readonly', msg='5.5V')
    mntr.add('rxl', wdgt='entry', label='RXL', state='readonly', msg='RX signal level')
    mntr.add('brl', wdgt='entry', label='BRL', state='readonly', msg='Beacon signal level')
    mntr.cmds.columns = 3
    return mntr
Пример #32
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
Пример #33
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
Пример #34
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_serial_io_cb)
    mntr.add_page('mntr0', send=True)
    mntr.add('alarm', wdgt='alarm', msg='Sum Alarm', trace_cb=alarm_trace_cb)
    mntr.add('temp', wdgt='entry', state='readonly', msg='Temperature')
    mntr.add('pwr', wdgt='entry', state='readonly', msg='Power level')
    return mntr
Пример #35
0
def get_mntr(dev):
    mntr=Data(io_cb=dev_serial_io_cb, send=True)
    mntr.add_page('mntr0')
    aa = lambda k, send, msg: mntr.add(k, wdgt='alarm', send=send, msg=msg, cmd='ALARM', fmt_cb=lambda val,read=True,almn=k: alarm_fmt_cb(val,read,almn), trace_cb=alarm_trace_cb)
    aa('ALARM0', True, 'General')
    aa('ALARM1', False, 'TEMP')
    aa('ALARM2', False, 'PLL')
    aa('ALARM3', False, 'TX/RX')
    aa('ALARM4', False, 'PWR')
    mntr.add('TEMP', wdgt='entry', state='readonly', msg='Temperature', cmd_cb=adc_cmd_cb)
    mntr.add('TXIN', wdgt='entry', state='readonly', pack_forget=True, msg='TX In', cmd_cb=adc_cmd_cb)
    mntr.add_page('mntr1')
    ae = lambda cmd, label: mntr.add(cmd, wdgt='entry', state='readonly', label=label, cmd_cb=adc_cmd_cb, send=True)
    ae('TXIN', 'TX In')
    ae('TXOUT', 'TX Out')
    ae('RXOUT', 'RX Out')
    ae('OSLPLL', 'OSLPLL')
    ae('TXPLL', 'TXPLL')
    ae('RXPLL', 'RXPLL')
    for i in range(1, 7):
        ae('PA%d' % i, 'PA%d, V' % i)
    ae('P12V', '+12V')
    ae('P5V', '+5V')
    ae('LNBV', 'LNBV')
    ae('N5V', '-5V')
    mntr.cmds.columns=4
    return mntr
Пример #36
0
Файл: UC.py Проект: ivanovev/tmb
def get_mntr(dev):
    mntr = Data(name='status', send=True, io_cb=dev_io_cb)
    mntr.add('status', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=status_fmt_cb, msg='Power supply')
    add_status = lambda n, msg: mntr.add('status%d' % n, wdgt='alarm', send=False, trace_cb=alarm_trace_cb, fmt_cb=lambda val, read: status_fmt_cb(val,read,n), msg=msg)
    add_status(1, 'Synth1 lock detect')
    add_status(2, 'Synth2 (aux) lock detect')
    add_status(3, 'Output level < threshold')
    mntr.add_page('mntr')
    mntr.add('5_5v', wdgt='entry', label='5.5V', state='readonly', msg='5.5V')
    mntr.add('txl', wdgt='entry', label='TXL', state='readonly', msg='TX signal level')
    return mntr
Пример #37
0
def get_mntr(dev):
    mntr = Data(name='mntr', send=True, io_cb=dev_io_cb)
    #mntr.add('temp', wdgt='entry', msg='Temperature')
    #am('dma0', 'DMA0')
    #am('dma1', 'DMA1')
    #am('dma2', 'DMA2')
    #am('dma3', 'DMA3')
    avti=lambda k,msg,i,send=False: mntr.add(k,wdgt='alarm',cmd='vtune',send=send,msg=msg,fmt_cb=lambda val,read: vtune_fmt_cb(val,read,i),trace_cb=alarm_trace_cb)
    avti('txvtuneh', 'TX VTUNE_H', 0, True)
    avti('txvtunel', 'TX VTUNE_L', 1)
    avti('rxvtuneh', 'TX VTUNE_H', 2)
    avti('rxvtunel', 'TX VTUNE_L', 3)
    return mntr
Пример #38
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
Пример #39
0
 def fircalc_cb1(self):
     cmd = 'read' if self.read else 'write'
     bdata = self.bank_data()
     tdata = Data()
     tdata.add_page('taps',
                    cmds=OD((k, bdata.cmds[k]) for k in ['ntaps', 'nbits']))
     tdata.add('nbank',
               label='bank #',
               wdgt='combo',
               state='readonly',
               text='0',
               value=['0', '1'])
     dlg = Control(data=tdata, parent=self.root, title='%s taps' % cmd)
     dlg.add_buttons_ok_cancel()
     dlg.center()
     dlg.do_modal()
     if not hasattr(dlg, 'kw'):
         return
     ntaps = dlg.kw['ntaps']
     self.nbits = int(dlg.kw['nbits'])
     nbank = int(dlg.kw['nbank'])
     n = ceil(int(ntaps) / 2)
     offset = n if nbank else 0
     dev = self.data.dev
     if self.read:
         self.taps = []
         for i in range(0, n):
             self.qo.put('tap ALT.firii %s %s %d' %
                         (dev['ip_addr'], dev['altname'], i + offset))
     else:
         taps = self.get_taps_fmt(fmt=self.nbits)
         taps[n:] = []
         for i in range(0, n):
             self.qo.put(
                 'tap ALT.firii %s %s %d %s' %
                 (dev['ip_addr'], dev['altname'], i + offset, taps[i]))
     self.pb['maximum'] = self.qo.qsize()
     return True
Пример #40
0
def get_ctrl(dev):
    ctrl_buttons = OD([('Reset', reset_cb), ('Write', write_cb)])
    data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb)
    data.add_page('Generator', send=True)
    data.add('freq',
             label='Frequency, MHz',
             wdgt='spin',
             value={
                 'min': 0.1,
                 'max': 12400,
                 'step': 0.1
             },
             text='1451')
    data.add('amp',
             label='Amplitude, dBm',
             wdgt='spin',
             value={
                 'min': -40,
                 'max': -6,
                 'step': 0.5
             },
             text='-40')
    return data
Пример #41
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_io_cb)
    mntr.add_page('mntr', send=True)
    mntr.add('synth1', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer 1')
    mntr.add('synth2', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer 2')
    mntr.add('uout1', wdgt='entry', state='readonly', msg='Uout1, V')
    mntr.add('uout2', wdgt='entry', state='readonly', msg='Uout2, V')
    mntr.add('uout3', wdgt='entry', state='readonly', msg='abs(Uout1-Uout2), V')
    return mntr
Пример #42
0
def get_ctrl(dev):
    ctrl = Data(io_cb=dev_serial_io_cb, send=True, name='ctrl')
    ctrl.add('tx',
             label='Mute/unmute tx',
             wdgt='combo',
             state='readonly',
             value=OD([('ON', '1'), ('OFF', '0')]))
    ctrl.add('gain', label='Gain', wdgt='entry')
    ctrl.add('atten', label='Attenuation', wdgt='entry')
    return ctrl
Пример #43
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
Пример #44
0
 def add_memory_cb(self):
     mem = Data(name='mem')
     mem.add('name', label='Name', wdgt='entry', text='new')
     mem.add('addr', label='Start address', wdgt='entry', text='00000000')
     mem.add('sz', label='Size in bytes', wdgt='entry', text='4')
     dlg = Control(data=mem, parent=self.root, title='Add memory', pady=5)
     dlg.add_buttons_ok_cancel()
     dlg.do_modal()
     if not hasattr(dlg, 'kw'):
         return
     if len(dlg.kw.keys()) == 0:
         return
     self.add_memory(dlg.kw['name'], dlg.kw['addr'], dlg.kw['sz'])
Пример #45
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_io_cb)
    mntr.add_page('mntr', send=True)
    mntr.add('synth1',
             wdgt='alarm',
             trace_cb=alarm_trace_cb,
             fmt_cb=synth_fmt_cb,
             msg='Synthesizer 1')
    mntr.add('synth2',
             wdgt='alarm',
             trace_cb=alarm_trace_cb,
             fmt_cb=synth_fmt_cb,
             msg='Synthesizer 2')
    mntr.add('uout1', wdgt='entry', state='readonly', msg='Uout1, V')
    mntr.add('uout2', wdgt='entry', state='readonly', msg='Uout2, V')
    mntr.add('uout3',
             wdgt='entry',
             state='readonly',
             msg='abs(Uout1-Uout2), V')
    return mntr
Пример #46
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
Пример #47
0
def get_ctrl(dev):
    gnsw_list = ['6dB', '12dB']
    gnsw_fmt_cb = lambda val, read=True: gpio_list_fmt_cb(val, read, gnsw_list, 0)
    gnsw_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 0)

    ofds_list = ['Enable', 'Disable']
    ofds_fmt_cb = lambda val, read=True: gpio_list_fmt_cb(val, read, ofds_list, 1)
    ofds_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 1)

    lpf_cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='1', cpol='1')

    data = Data(name='LPF', send=True, io_cb=util_io_cb)
    data.add('gnsw', label='Gain switch', wdgt='radio', value=gnsw_list, fmt_cb=gnsw_fmt_cb, cmd_cb=gnsw_cmd_cb)
    data.add('ofds', label='Offset correction loop', wdgt='radio', value=ofds_list, fmt_cb=ofds_fmt_cb, cmd_cb=ofds_cmd_cb)
    data.add('lpf', label='LPF, MHz', wdgt='spin', value={'min':1, 'max':30, 'step':1}, fmt_cb=lpf_fmt_cb, cmd_cb=lpf_cmd_cb)

    return data
Пример #48
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
Пример #49
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_io_cb)
    mntr.add_page('mntr', send=True)
    mntr.add('synth', wdgt='alarm', trace_cb=alarm_trace_cb, msg='Synthesizer status')
    mntr.add('uout', wdgt='entry', state='readonly', msg='Uout, V')
    mntr.add_page('mntr1', send=True)
    mntr.add('vcm1', label='VCM1', wdgt='entry', state='readonly', msg='VCM1')
    mntr.add('vcm2', label='VCM2', wdgt='entry', state='readonly', msg='VCM2')
    mntr.add('5v_1', label='5V_1', wdgt='entry', state='readonly', msg='5V_1')
    mntr.add('5v_2', label='5V_2', wdgt='entry', state='readonly', msg='5V_2')
    mntr.add('3v3_1', label='3V3_1', wdgt='entry', state='readonly', msg='3V3_1')
    mntr.add('3v3_2', label='3V3_2', wdgt='entry', state='readonly', msg='3V3_2')
    mntr.add('3v3_3', label='3V3_3', wdgt='entry', state='readonly', msg='3V3_3')
    mntr.add('14v', label='14V', wdgt='entry', state='readonly', msg='14V')
    mntr.cmds.columns=2
    return mntr
Пример #50
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
Пример #51
0
def get_mntr(dev):
    mntr = Data(io_cb=dev_io_cb)
    mntr.add_page('mntr', send=True)
    mntr.add('synth', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer status')
    mntr.add('uout', wdgt='entry', state='readonly', msg='Uout, V')
    return mntr
Пример #52
0
def get_ctrl(dev):
    ctrl = Data(name='CSP', send=True, io_cb=dev_io_cb)
    ctrl.add('modem1', label='Modem1 antenna', wdgt='combo', state='readonly', value=['Main', 'Reserve'], text='Main', fmt_cb=csp_fmt_cb)
    ctrl.add('modem2', label='Modem2 antenna', wdgt='combo', state='readonly', value=['Main', 'Reserve'], text='Main', fmt_cb=csp_fmt_cb)
    return ctrl
Пример #53
0
def get_mntr(dev, cc=None):
    mntr = Data(io_cb=lambda d,c,v=None: 'QD2048.cmd %s %s %s' % (d['serial'], d['addr'], c))
    mntr.add_page('mntr0')
    aa = lambda k, send, msg: mntr.add(k, wdgt='alarm', send=send, msg=msg, cmd='FLT', fmt_cb=flt_fmt_cb)
    aa('CD', True, 'CD')
    aa('DEC', True, 'DEC')
    aa('RSYNTH', True, 'RSYNTH')
    mntr.add('EBNO', wdgt='entry', state='readonly', pack_forget=True, msg='Eb/No')
    mntr.add('BER', wdgt='entry', state='readonly', pack_forget=True, msg='BER')
    mntr.add_page('mntr1')
    mntr.add('EBNO', wdgt='entry', state='readonly', label='Eb/No')
    mntr.add('BER', wdgt='entry', state='readonly', label='BER')
    mntr.add('AGC', wdgt='entry', state='readonly', label='AGC')
    mntr.add('ROFFSET', wdgt='entry', state='readonly', label='ROFFSET')
    mntr.cmds.columns=2
    return mntr
Пример #54
0
def get_mntr(dev):
    data = Data('mntr', send=True, io_cb=dev_serial_io_cb)
    data.add('fetch', wdgt='entry', msg='FETCh?', width=10, fmt_cb=fmt_cb)
    data.add('diff', wdgt='entry', msg='diff', width=10, fmt_cb=fmt_cb)
    return data
Пример #55
0
def get_mntr(dev):
    data = Data(name='mntr', io_cb=lambda d,c: util_io_cb(d,c,prefix='ALT'))
    data.add('pio', label='IN', wdgt='entry', state='readonly', cmd_cb=alt_cmd_cb, send=True)
    return data