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
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
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)
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)
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
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
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)
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)