#!/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 force 0
set args $argv
APSParseArguments {force}

if $force {
    if [catch {APSSetupFPGABpmTriggers -enableMPS 1} result] {
        puts stderr "Error in setup FPGA bpm triggers: $result"
        exit 1
    }
    exit 0
}

#this checks the transacation from machine studies to user operations and ARM the FPGA bpms for the transition.
if [catch {APScavget -list=S:DesiredMode -num -pend=10} srMode] {
    puts stderr "unable read S:DesiredMode: $srMode"
    exit 1
}
set prevMode $srMode
if {$srMode==1} {
    #exit if it is already in user operation
    #only setup the FPGA triggers when switch to user operation mode
    puts "it is already in user operation now."
    exit 0
}
if {$srMode!=4} {
    #it only checks the transacation from machine studies to user operation
    puts "it is not in machine studes."
    exit 0
}
after 1000
while {1} {
    if [catch {APScavget -list=S:DesiredMode -num -pend=10} srMode] {
	puts stderr "unable read S:DesiredMode: $srMode"
	exit 1
    }
    if {$srMode==4} {
	#continue if it is machine studies
	after 1000
	continue
    } else {
	if {$srMode!=1 && $srMode!=2} {
	    puts stderr "It is not in user operation mode, exit."
	    exit 1
	} else {
	    #setup FPGA bpm trigger when transit from machine stuides to user operation
	    puts "Setup FPGA bpm triggers."
	    if [catch {APSSetupFPGABpmTriggers -enableMPS 1} result] {
		puts stderr "Error in setup FPGA bpm triggers: $result"
	    }
	    exit 0
	}
    }
}
exit 0
