Lenses, using profile, P03

#!/bin/env perl

use Spectra; 

my ( $lense_start, $lense_stop, $lense_delta) = ( 800, 850, 10); 

my ( $open_y, $open_z) = ( -5, 0.5); 

my $lense_pos = $lense_start; 

#
# move to 'open' positions
#
if( !Spectra::move( hexa5_moty => $open_y))
{
    goto finish;
}
if( !Spectra::move( hexa5_motz => $open_z))
{
    goto finish;
}

while( $lense_pos < $lense_stop)
{
    if( !Spectra::move( crl1_z => $lense_pos))
    {
	goto finish;
    }
    #
    # open: -5
    #
    $Spectra::SYM{ generic_scan_name} = "lns_y"; 
    if( !Spectra::scan( device => "hexa5_moty", 
			start => -2.9,
			stop => -2.1,
			auto_return => 1, 
			st => 0.1, 
			np => 11,
			comment => "lense at $lense_pos, motz " . 
			           Spectra::gmup( "hexa5_motz"), 
			profile => 
			{ timer => [ qw( exp_t01)],
			  counter => [ qw( exp_vfc01 ipetra)], 
			  flags => [ qw( write_to_disk 1
					 display_deadtime 1
					 bell_on_scan_end 1)],}))
    {
	goto finish;
    }
    #
    # open: 0.5
    #
    $Spectra::SYM{ generic_scan_name} = "lns_z"; 
    if( !Spectra::scan( device => "hexa5_motz", 
                        start => -0.5, 
			stop => 0.5, 
			auto_return => 1, 
			st => 0.1, 
			np => 11,
			comment => "lense at $lense_pos, moty " . 
			           Spectra::gmup( "hexa5_moty"), 
			profile => 
			{ timer => "exp_t01",
			  counter => [ qw( exp_vfc01 ipetra)], 
			  flags => [ qw( write_to_disk 1
					 display_deadtime 1
					 bell_on_scan_end 1)],}))
    {
	goto finish;
    }
    $lense_pos += $lense_delta; 
}

finish:
    ;