예제 #1
0
def scan_device():
    np1 = int(scan1_np.value)
    if np1 <= 0:
        raise Exception, 'invalid number of points for dimension 1'
    np2 = int(scan2_np.value)
    if np2 <= 0:
        raise Exception, 'invalid number of points for dimension 2'
    
    motor1 = device1_name.value
    motor2 = device2_name.value
    
    start1 = scan1_start.value
    stop1 = scan1_stop.value
    start2 = scan2_start.value
    stop2 = scan2_stop.value
    
    if np1 == 1:
        step1 = 0.
    else:
        step1 = (stop1 - start1) * 1.0 / (np1 - 1)
        
    if np2 == 1:
        step2 = 0.
    else:
        step2 = (stop2 - start2) * 1.0 / (np2 - 1)
    
    mode = scan_mode.value
    preset = scan_preset.value

    slog('*********** scan started ***********')
    rev = False    
    for i in xrange(np1):
        pos1 = start1 + i * step1
        slog('drive ' + motor1  + ' ' + str(pos1))
        sics.drive(motor1, pos1)
        for j in xrange(np2):
            if rev:
                pos2 = stop2 - j * step2
            else:
                pos2 = start2 + j * step2
            slog('drive ' + motor2  + ' ' + str(pos2))
            sics.drive(motor2, pos2)
            
            slog('collect data with ' + motor1 + '=' + str(pos1) + ' and ' + 
                 motor2 + '=' + str(pos2) + ' on "' + mode + '" for preset of ' + 
                 str(preset))
            sicsext.runscan('dummy_motor', 0, 0, 1, 
                            mode, preset, None, True, \
                            'HISTOGRAM_XY')
        rev = not rev
    slog('*********** scan finished ***********')    
예제 #2
0
def scan_device():
    aname = device_name.value
    try:
        if DEBUGGING :
            aname = 'dummy_motor'
    except:
        pass
    axis_name.value = aname
    slog('runscan ' + str(device_name.value) + ' ' + str(scan_start.value) + ' ' + str(scan_stop.value) \
                    + ' ' + str(number_of_points.value) + ' ' + str(scan_mode.value) + ' ' + str(scan_preset.value))
    sicsext.runscan(device_name.value, scan_start.value, scan_stop.value, number_of_points.value, 
                    scan_mode.value, scan_preset.value, load_experiment_data, True, \
                    'HISTOGRAM_XY')
    time.sleep(2)
    peak_pos.value = float('NaN')
    FWHM.value = float('NaN')
    fit_curve()
예제 #3
0
def scan_device():
    aname = device_name.value
    try:
        if DEBUGGING:
            aname = 'dummy_motor'
    except:
        pass
    axis_name.value = aname
    slog('runscan ' + str(device_name.value) + ' ' + str(scan_start.value) + ' ' + str(scan_stop.value) \
                    + ' ' + str(number_of_points.value) + ' ' + str(scan_mode.value) + ' ' + str(scan_preset.value))
    sicsext.runscan(device_name.value, scan_start.value, scan_stop.value, number_of_points.value,
                    scan_mode.value, scan_preset.value, load_experiment_data, True, \
                    'HISTOGRAM_T')
    time.sleep(2)
    peak_pos.value = float('NaN')
    FWHM.value = float('NaN')
    if auto_fit.value:
        fit_curve()
예제 #4
0
def scan_device():
    aname = device_name.value
    try:
        if DEBUGGING :
            aname = 'dummy_motor'
    except:
        pass
    axis_name.value = aname
    slog('runscan ' + str(device_name.value) + ' ' + str(scan_start.value) + ' ' + str(scan_stop.value) \
                    + ' ' + str(number_of_points.value) + ' ' + str(scan_mode.value) + ' ' + str(scan_preset.value))
    sicsext.runscan(device_name.value, scan_start.value, scan_stop.value, number_of_points.value, 
                    scan_mode.value, scan_preset.value, load_experiment_data, True, \
                    'HISTOGRAM_XY')
    time.sleep(2)
    peak_pos.value = float('NaN')
    FWHM.value = float('NaN')
    if auto_fit.value :
        fit_curve()
        footer = 'POS_OF_PEAK=' + ('%.3f' % peak_pos.value) + '; ' \
            + 'FWHM=' + ('%.3f' % FWHM.value)
        n_logger.log_plot(Plot1, footer = footer)
    else :
        n_logger.log_plot(Plot1)