#!/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

set corrList ""
set DC 0
set sign -1
set args $argv
APSParseArguments {corrList DC sign}

if {![string length $corrList]} {
    puts stderr "Missing arguments, usage:\n checkAndLoadBoosterBump -corrList <list of correctors>"
    exit 1
}

set varList ""
set pvList ""
puts $corrList
foreach corr $corrList {
    lappend varList $corr
    lappend pvList B:${corr}:CorrectionAI
}
#lappend pvList B:CorrBumpStart
#lappend varList region
set errorInfo ""
set errorCode ""
if [pv linkw $varList $pvList 30] {
    puts stderr "Unable to link pv: $errorInfo, $errorCode"
    exit 1
}
if [pv linkw region B:CorrBumpStart] {
    puts stderr "unable to link B:CorrBumpStart pv: $errorCode"
    exit 1
}
if [pv getw $varList 30] {
    puts stderr "Unable to read pvs: $errorInfo, $errorCode"
    exit 1
}
foreach var $varList {
    set ${var}_0 [set $var]
}
while {1} {
    if [pv getw $varList 30] {
        puts stderr "Unable to read pv values: $errorInfo, $errorCode"
        exit 1
    }
    if [pv getw region 30] {
        puts stderr "Error reading region pv: $errorCode"
        exit 1
    }
    foreach var $varList {
        set val0 [set ${var}_0]
        set val1 [set $var]
        if {$val1!=$val0} {
            puts "[exec date] changing ramp amplitude for $var amp=$val1 region $region..."
            if $DC {
                if [catch {exec SetBoosterSingleDCAmplitude -sign $sign -region [format %.0f $region] \
                             -sector $var -load 1} result] {
                    puts stderr "Error setting $corr bump: $result"
                    exit 1
                }
            } else {
                if [catch {exec SetBoosterSingleBumpAmplitude -region $region  \
                             -sector $var -load 1} result] {
                    puts stderr "Error setting $corr bump: $result"
                    exit 1
                }
            }
            puts "[exec date] done."
        }
        set ${var}_0 $val1
    }
    after 500
}

exit 0
