コード例 #1
0
def get_offsets(handle, ctrl_reg, gainlist, caldict):
    offset_list = []
    gainlist = cgrlib.set_hw_gain(handle, gainlist)
    rawdata = cgrlib.get_uncal_forced_data(handle, ctrl_reg)
    for channel in range(2):
        offset_list.append(511 - average(rawdata[channel]))
    if gainlist[0] == 0:  # Channel A set for 1x gain
        caldict['chA_1x_offset'] = offset_list[0]
    elif gainlist[0] == 1:  # Channel A set for 10x gain
        caldict['chA_10x_offset'] = offset_list[0]
    if gainlist[1] == 0:  # Channel B set for 1x gain
        caldict['chB_1x_offset'] = offset_list[1]
    elif gainlist[1] == 1:  # Channel B set for 10x gain
        caldict['chB_10x_offset'] = offset_list[1]
    return caldict
コード例 #2
0
ファイル: cgr_cal.py プロジェクト: johnpeck/protoscript
def get_offsets(handle, ctrl_reg, gainlist, caldict):
    offset_list = []
    gainlist = cgrlib.set_hw_gain(handle,gainlist)
    rawdata = cgrlib.get_uncal_forced_data(handle,ctrl_reg)
    for channel in range(2):
        offset_list.append(511 - average(rawdata[channel]))
    if gainlist[0] == 0: # Channel A set for 1x gain
        caldict['chA_1x_offset'] = offset_list[0]
    elif gainlist[0] == 1: # Channel A set for 10x gain
        caldict['chA_10x_offset'] = offset_list[0] 
    if gainlist[1] == 0: # Channel B set for 1x gain
        caldict['chB_1x_offset'] = offset_list[1]
    elif gainlist[1] == 1: # Channel B set for 10x gain
        caldict['chB_10x_offset'] = offset_list[1]
    return caldict
コード例 #3
0
ファイル: cgr_capture.py プロジェクト: johnpeck/protoscript
def main():
    config = load_config(configfile)
    caldict = cgrlib.load_cal()
    trigdict = cgrlib.get_trig_dict( int(config['Trigger']['source']), 
                                     float(config['Trigger']['level']), 
                                     int(config['Trigger']['polarity']),
                                     int(config['Trigger']['points'])
    )
    cgr = cgrlib.get_cgr()
    gainlist = cgrlib.set_hw_gain(cgr, [int(config['Inputs']['Aprobe']),
                                        int(config['Inputs']['Bprobe'])
                                    ]
    )
    # sys.exit() # For running without cgr

    cgrlib.set_trig_level(cgr, caldict, gainlist, trigdict)
    cgrlib.set_trig_samples(cgr,trigdict)
    [ctrl_reg, fsamp_act] = cgrlib.set_ctrl_reg(cgr,
                                                float(config['Acquire']['rate']), 
                                                trigdict)
    if not (fsamp_act == float(config['Acquire']['rate'])):
        logger.warning('Requested sample frequency ' + 
                       '{:0.3f} kHz '.format(float(config['Acquire']['rate'])/1000) +
                       'adjusted to ' + 
                       '{:0.3f} kHz '.format(float(fsamp_act)/1000))

    # Wait for trigger, then return uncalibrated data
    
    for capturenum in range(int(config['Acquire']['averages'])):
        if trigdict['trigsrc'] == 3:
            # Internal trigger
            tracedata = cgrlib.get_uncal_forced_data(cgr,ctrl_reg)
        elif trigdict['trigsrc'] < 3:
            # Trigger on a voltage present at some input
            tracedata = cgrlib.get_uncal_triggered_data(cgr,trigdict)
        logger.info('Acquiring trace ' + str(capturenum + 1) + ' of ' +
                    config['Acquire']['averages'])
        if capturenum == 0:
            sumdata = tracedata
        else:
            sumdata = add(sumdata,tracedata)
        avgdata = divide(sumdata,float(capturenum +1))

        # Apply calibration
        voltdata = cgrlib.get_cal_data(caldict,gainlist,[avgdata[0],avgdata[1]])
        timedata = cgrlib.get_timelist(fsamp_act)
        logger.debug('Plotting average of ' + str(capturenum + 1) + ' traces.')
    plotdata(timedata, voltdata, trigdict)
コード例 #4
0
def main():
    config = load_config(configfile)
    caldict = cgrlib.load_cal()
    trigdict = cgrlib.get_trig_dict(int(config['Trigger']['source']),
                                    float(config['Trigger']['level']),
                                    int(config['Trigger']['polarity']),
                                    int(config['Trigger']['points']))
    cgr = cgrlib.get_cgr()
    gainlist = cgrlib.set_hw_gain(
        cgr,
        [int(config['Inputs']['Aprobe']),
         int(config['Inputs']['Bprobe'])])
    # sys.exit() # For running without cgr

    cgrlib.set_trig_level(cgr, caldict, gainlist, trigdict)
    cgrlib.set_trig_samples(cgr, trigdict)
    [ctrl_reg,
     fsamp_act] = cgrlib.set_ctrl_reg(cgr, float(config['Acquire']['rate']),
                                      trigdict)
    if not (fsamp_act == float(config['Acquire']['rate'])):
        logger.warning(
            'Requested sample frequency ' +
            '{:0.3f} kHz '.format(float(config['Acquire']['rate']) / 1000) +
            'adjusted to ' + '{:0.3f} kHz '.format(float(fsamp_act) / 1000))

    # Wait for trigger, then return uncalibrated data

    for capturenum in range(int(config['Acquire']['averages'])):
        if trigdict['trigsrc'] == 3:
            # Internal trigger
            tracedata = cgrlib.get_uncal_forced_data(cgr, ctrl_reg)
        elif trigdict['trigsrc'] < 3:
            # Trigger on a voltage present at some input
            tracedata = cgrlib.get_uncal_triggered_data(cgr, trigdict)
        logger.info('Acquiring trace ' + str(capturenum + 1) + ' of ' +
                    config['Acquire']['averages'])
        if capturenum == 0:
            sumdata = tracedata
        else:
            sumdata = add(sumdata, tracedata)
        avgdata = divide(sumdata, float(capturenum + 1))

        # Apply calibration
        voltdata = cgrlib.get_cal_data(caldict, gainlist,
                                       [avgdata[0], avgdata[1]])
        timedata = cgrlib.get_timelist(fsamp_act)
        logger.debug('Plotting average of ' + str(capturenum + 1) + ' traces.')
    plotdata(timedata, voltdata, trigdict)
コード例 #5
0
def get_slopes(handle, ctrl_reg, gainlist, caldict, calvolt):
    slope_list = []
    gainlist = cgrlib.set_hw_gain(handle, gainlist)
    rawdata = cgrlib.get_uncal_forced_data(handle, ctrl_reg)
    offcal_data = get_offcal_data(caldict, gainlist, rawdata)
    for channel in range(2):
        slope_list.append(calvolt / (average(offcal_data[channel])))
    if gainlist[0] == 0:  # Channel A set for 1x gain
        caldict['chA_1x_slope'] = slope_list[0]
    elif gainlist[0] == 1:  # Channel A set for 10x gain
        caldict['chA_10x_slope'] = slope_list[0]
    if gainlist[1] == 0:  # Channel B set for 1x gain
        caldict['chB_1x_slope'] = slope_list[1]
    elif gainlist[1] == 1:  # Channel B set for 10x gain
        caldict['chB_10x_slope'] = slope_list[1]
    return caldict
コード例 #6
0
ファイル: cgr_cal.py プロジェクト: johnpeck/protoscript
def get_slopes(handle, ctrl_reg, gainlist, caldict, calvolt):
    slope_list = []
    gainlist = cgrlib.set_hw_gain(handle,gainlist)
    rawdata = cgrlib.get_uncal_forced_data(handle,ctrl_reg)
    offcal_data = get_offcal_data(caldict,gainlist,rawdata)
    for channel in range(2):
        slope_list.append(calvolt/(average(offcal_data[channel])))
    if gainlist[0] == 0: # Channel A set for 1x gain
        caldict['chA_1x_slope'] = slope_list[0]
    elif gainlist[0] == 1: # Channel A set for 10x gain
        caldict['chA_10x_slope'] = slope_list[0] 
    if gainlist[1] == 0: # Channel B set for 1x gain
        caldict['chB_1x_slope'] = slope_list[1]
    elif gainlist[1] == 1: # Channel B set for 10x gain
        caldict['chB_10x_slope'] = slope_list[1]
    return caldict
コード例 #7
0
def main():
    caldict = cgrlib.load_cal()
    cgr = cgrlib.get_cgr()
    ctrl_reg = cgrlib.set_ctrl_reg(cgr, fsamp, 0, 0)
    gainlist = cgrlib.set_hw_gain(cgr, [cha_gain, chb_gain])

    # Start the offset calibration
    raw_input('* Remove all inputs and press return...')
    caldict = get_offsets(cgr, ctrl_reg, gainlist, caldict)

    # Start the slope calibration
    raw_input('* Connect ' + '{:0.3f}'.format(calvolt) +
              'V calibration voltage and press return...')
    caldict = get_slopes(cgr, ctrl_reg, gainlist, caldict, calvolt)

    # Test calibration
    raw_input('* Ready to test calibration...')
    tracedata = cgrlib.get_uncal_forced_data(cgr, ctrl_reg)
    # Get calibrated volts
    voltdata = cgrlib.get_cal_data(caldict, gainlist, tracedata)
    plotdata(voltdata)
    # Write the calibration data
    cgrlib.write_cal(caldict)
コード例 #8
0
ファイル: cgr_cal.py プロジェクト: johnpeck/protoscript
def main(): 
    caldict = cgrlib.load_cal()
    cgr = cgrlib.get_cgr()
    ctrl_reg = cgrlib.set_ctrl_reg(cgr,fsamp,0,0)
    gainlist = cgrlib.set_hw_gain(cgr,[cha_gain,chb_gain])
    
    # Start the offset calibration
    raw_input('* Remove all inputs and press return...')
    caldict = get_offsets(cgr, ctrl_reg, gainlist, caldict)

    # Start the slope calibration
    raw_input('* Connect ' + '{:0.3f}'.format(calvolt) +
              'V calibration voltage and press return...')
    caldict = get_slopes(cgr, ctrl_reg, gainlist, caldict, calvolt)

    # Test calibration
    raw_input('* Ready to test calibration...')
    tracedata = cgrlib.get_uncal_forced_data(cgr,ctrl_reg)
    # Get calibrated volts
    voltdata = cgrlib.get_cal_data(caldict,gainlist,tracedata)
    plotdata(voltdata)
    # Write the calibration data
    cgrlib.write_cal(caldict)