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

APSStandardSetup

set dataDir /home/helios/oagData/linac/archiveData/rfGunKicker
set monFile /home/helios/oagData/linac/archiveData/rfGunKicker.wmon
set scalarFile /home/helios/oagData/linac/archiveData/rfGunKicker.scalars

#wait for 5 minutes, 
set timeout [expr [clock seconds] + 3000]
set dataTaken 0
while {[clock seconds]<$timeout} {
    if [catch {APScavget -list=L1:RG1:KIK:chargeTrigC,L1:RG2:KIK:chargeTrigC -pend=10 -printErrors -num} triggers] {
	puts stderr "Error in reading L1:RG1:KIK:chargeTrigC and/or L1:RG2:KIK:chargeTrigC: $triggers"
	exit 1
    }
    set trigger1 [lindex $triggers 0]
    set trigger2 [lindex $triggers 1]

    if [catch {APScavget -list=L1:CM2:measCurrentCM -pend=10 -printErrors} current] {
	puts stderr "Error in reading L1:CM2:measCurrentCM: $current"
	exit 1
    }
    if {($trigger1 || $trigger2) && $current>0.5} {
	after 3000
	set filename $dataDir/RGKicker-[clock format [clock seconds] -format %Y-%j-%m%d-%H%M%S].sdds
	if [catch {exec sddswmonitor -step=1 $monFile -scalars=$scalarFile $filename -pend=30} result] {
	    puts stderr "Error in collecting RG kicker data: $result"
	    exit 1
	}
	set current [exec sdds2stream -par=L1:CM2:measCurrentCM $filename]
	if {$current>0.5} {
	    #data was taken successfully
	    set dataTaken 1
	    break
	} else {
	    file delete -force $filename
	    after 1000
	}
    } else {
	after 1000
    }
}
if !$dataTaken {
    puts stderr "No data were taken after waiting for 5 minutes."
}
exit 0
