#!/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 linacBNumber [lindex $argv 0]

set enable0 It:L:B00_enb_bo.VAL
set enable2 It:L:B02_enb_bo.VAL
set enable4 It:L:B04_enb_bo.VAL
set enable6  It:L:B06_enb_bo.VAL
set enable8  It:L:B08_enb_bo.VAL
set enable10  It:L:B10_enb_bo.VAL
set enable12  It:L:B12_enb_bo.VAL
set enable14  It:L:B14_enb_bo.VAL
set enable16  It:L:B16_enb_bo.VAL
set enable18  It:L:B18_enb_bo.VAL
set enable20  It:L:B20_enb_bo.VAL
set enable22  It:L:B22_enb_bo.VAL
set enable24  It:L:B24_enb_bo.VAL
set enable26  It:L:B26_enb_bo.VAL
set enable28  It:L:B28_enb_bo.VAL
set enable30  It:L:B30_enb_bo.VAL


if [catch {exec cavget -list=It:L:1HzNot2Hz_bo.VAL -pend=20 -num  -printErrors} mode] {
    puts stderr "Error reading It:L:1HzNot2Hz_bo.VAL: $mode"
    exit 1
}

if { [string length $linacBNumber] == 0 } {
    puts "Usage: $argv0 <bucketNumber(1-6)>"
    exit
}

if { $linacBNumber < 0 || $linacBNumber > 20} {
    puts "Usage: $argv0 <bucketNumber(0-20)>"
    exit
}

switch $mode {
    0 {
        #2Hz the maximum of 6 pulses allowed
        if {$linacBNumber>6} {
            puts stderr "The maximum number of pulses allowed for 2 Hz mode is 6!"
            exit 1
        }
    }
    1 {
        #1Hz mode, the maximum of 20 pulised allowed
        if {$linacBNumber>20} {
            puts stderr "The maximum number of pulses allowed for 1 Hz mode is 10!"
            exit 1
        }
    }
}

### always set bucket #0
set bucketList ""
for {set i 0} {$i<60} {incr i 2} {
    lappend bucketList [format %02d $i]
}
if [catch {exec cavput -list=It:L:B -list=[join $bucketList ,] -list=_enb_bo.VAL=0 -pend=30} result] {
    puts stderr "Error disabling all buckets: $result"
    exit 1
}

set bucketList ""
for {set i 0} {$i<$linacBNumber} {incr i} {
    lappend bucketList [format %02d [expr 2 * $i]]
}

if [catch {exec cavput -list=It:L:B -list=[join $bucketList ,] -list=_enb_bo.VAL=0 -pend=30} result] {
    puts stderr "Error disabling all buckets: $result"
    exit 1
}

exit 0
