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

set args $argv
set filename ""
set steps 1
APSParseArguments {filename steps}

#set filename [lindex $argv 0]
#st steps [lindex $argv 1]

if [string length $filename]==0 {
    puts "Usage $argv0 <filename> <steps(0)>" 
    exit
}

if [string length $steps]==0 {
    set steps 1
}

if [catch {exec cavget -list=B:SampleperiodAI -pend=10 -printErrors} sampleInterval] {
    put stderr "Error in reading sample interval: $sampleInterval"
    exit 1
}
set msPerSample [expr $sampleInterval/4000.0]

set BMCurrentScale 0.0152590
set QDCurrentScale $BMCurrentScale
set QFCurrentScale $BMCurrentScale
set SFCurrentScale 0.0022888
set SDCurrentScale $SFCurrentScale
set SDUCurrentScale $SDCurrentScale

if {0} {
if [catch {exec  cavget -list=It:Bs:LastBunch2BoosterIp -pend=20 -printErrors } boosterIP] {
    puts stderr "Error reading rampstart It:Bs:LastBunch2BoosterIp: $boosterIP"
    exit 1
}
if [catch {exec cavget -list=It:Ddg4chan5CC  -pend=20 -printErrors} startDig] {
    puts stderr "Error reading It:Ddg4chan5CC  : $startDig"
    exit 1
}

set injTime [expr $boosterIP - $startDig]
}
if [catch {exec  cavget -list=It:Bs:StartRamp2BsIp.VAL -pend=20 -printErrors } injTime] {
    put stderr "Error reading rampstart It:Bs:StartRamp2BsIp.VAL: $injTime"
    exit 1
}


if [catch {exec sddswmonitor -erase ${filename}.1 \
    -steps=$steps  -interval=1 \
    -pvnames=B:BM:CurrentWF,B:QF:CurrentWF,B:QD:CurrentWF,B:SF:CurrentWF,B:SF-U:CurrentWF,B:SD:CurrentWF,B:SD-U:CurrentWF -scalars=/home/helios/oagData/booster/ramps/brampcurrentWF.scalars.sdu -pend=30 } result] {
    puts stderr "Error reading booster current waveform:$result"
    exit 1
}
if [catch {exec sddsprocess $filename.1  $filename \
             "-redefine=par,InjectionTime,$injTime,units=ms" \
             "-redefine=col,time,Index $msPerSample *,units=mS" \
             "-redefine=col,BM-I,B:BM:CurrentWF BMDigScale * BMDigOffset + $BMCurrentScale *,units=A" \
             "-redefine=col,QD-I,B:QD:CurrentWF QDDigScale * QDDigOffset + $QDCurrentScale *,units=A" \
             "-redefine=col,QF-I,B:QF:CurrentWF QFDigScale * QFDigOffset + $QFCurrentScale *,units=A" \
             "-redefine=col,SF-I,B:SF:CurrentWF SFDigScale * SFDigOffset + $SFCurrentScale *,units=A" \
             "-redefine=col,SF-U-I,B:SF-U:CurrentWF SFDigScale * SFDigOffset + $SFCurrentScale *,units=A" \
             "-redefine=col,SD-I,B:SD:CurrentWF SDDigScale * SDDigOffset + $SDCurrentScale *,units=A" \
             "-redefine=col,SD-U-I,B:SD-U:CurrentWF SDDigScale * SDDigOffset + $SDUCurrentScale *,units=A" \
             -now } result] {
    puts stderr "Error processing file: $result"
    exit 1
}
file delete -force ${filename}.1
exit
