#!/bin/sh  
# \
exec oagtclsh "$0" "$@"

set auto_path [linsert $auto_path 0  /usr/local/oag/apps/lib/$env(HOST_ARCH)]
set auto_path [linsert $auto_path 0 /usr/local/oag/lib_patch/$env(HOST_ARCH)]
#
#$Log: not supported by cvs2svn $

APSStandardSetup

#this is special code for booster vertical extraction bump used in bts response measurment 
set lattice default
set outDir ""
set amplitude ""
#0, 0-12; 1: 12-86; 2: 86-160; 3: 160-220; 4: 220-230
set region 9
set load 0
set refRamp /home/helios/oagData/booster/ramps/correctors/lattices/$lattice/HVCorr.ramp
set args $argv
APSParseArguments {amplitude load outDir}

set bumpDir /home/helios/oagData/booster/ramps/correctors/lattices/$lattice
set env(EPICS_CA_MAX_ARRAY_BYTES) 140000000
#set bpm B2C9P1  (the coefficients were obtained through BosoterBumpGenerator)
set corr1 B2C8V
set corr2 B3C0V
set corr3 B3C1V
set K1 0.741170
set K2 0.753213
set K3 0.039049

if ![string length $outDir] {
    set outFile /tmp/${corr1}-[clock format [clock seconds] -format %Y%m%d:%H%M%S].ramp
} else {
    set outFile $outDir/${corr1}-[clock format [clock seconds] -format %Y%m%d:%H%M%S].ramp
}


if ![string length $amplitude] {
    #read it from a place holder, B:BconLockoutAO (not in use now, use it for BPM amplitude value)
    if [catch {exec cavget -list=B:$corr1:CorrectionAI -pend=10 -printErrors} amplitude] {
	puts stderr $amplitude
	exit 1
    }
} else {
    if [catch {exec cavput -list=B:$corr1:CorrectionAI=$amplitude -pend=20} result] {
        puts stderr "Error setting amplitude: $result"
        exit 1
    }
}

if $load {
    if [catch {exec makeboosterbump  -correctorList=$corr1,$corr2,$corr3 -coef=$K1,$K2,$K3 -amplitude=$amplitude \
                 -reference=$refRamp -outRampFile=$outFile -region=$region } result] {
        puts stderr "Error generating and loading new ramp: $result"
        exit 1
    }
} else {
    if [catch {exec makeboosterbump  -dryRun -correctorList=$corr1,$corr2,$corr3 -coef=$K1,$K2,$K3 -amplitude=$amplitude \
                 -reference=$refRamp -outRampFile=$outFile -region=$region } result] {
        puts stderr "Error generating  new ramp: $result"
        exit 1
    }
}

exit 0
