#!/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 root FrontendBeamlines
cd /home/helios/oagData/logging/FrontendBeamlines

set generation 1
set newFile ""
while 1 {
    set lastFile $newFile
    set newFile [format ${root}.mon-%04ld $generation]
    if {![file exists $newFile]} {
        break
    }
    incr generation
}

set ControlName "S-DCCT:CurrentM"
set ReadbackName "S-DCCT:CurrentM"
set ReadbackUnits "mA"

lappend ControlName "S:ActualModeCalc"
lappend ReadbackName "SRActualMode"
lappend ReadbackUnits ""

lappend ControlName "XFD:ShutterPermit"
lappend ReadbackName "ShutterPermit"
lappend ReadbackUnits ""

lappend ControlName "NoOfShuttersOpenA"
lappend ReadbackName "NumberOfShuttersOpen"
lappend ReadbackUnits ""

#Shutters
#set sectors "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35"
#set sectors2 "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35"
set sectors "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40"
set sectors2 "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40"
foreach sector $sectors sector2 $sectors2 {
    lappend ControlName ACIS:RAI_${sector2}BM_CLOSED ACIS:RAI_${sector2}ID_CLOSED
    lappend ReadbackName BM${sector}ShutterClosed ID${sector}ShutterClosed
    lappend ReadbackUnits "" ""
}

#Frontend BM VAC
#set sectors "01 02 05 06 07 08 09 10 12 13 14 15 16 17 18 19 20 22 33 34 35"
foreach sector $sectors {
    for {set i 1} {$i <= 25} {incr i} {
        lappend ControlName "FE:${sector}:BM:IP$i"
        lappend ReadbackName "BM${sector}_IP${i}_Pressure"
        lappend ReadbackUnits "Torr"
    }
    for {set i 1} {$i <= 5} {incr i} {
        lappend ControlName "FE:${sector}:BM:VGC${i}.PRES"
        lappend ReadbackName "BM${sector}_VGC${i}_Pressure"
        lappend ReadbackUnits "Torr"
    }
}

#Frontend ID VAC
#set sectors "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 31 32 33 34 35"
foreach sector $sectors {
    set num 25
    for {set i 1} {$i <= $num} {incr i} {
        lappend ControlName "FE:${sector}:ID:IP$i"
        lappend ReadbackName "ID${sector}_IP${i}_Pressure"
        lappend ReadbackUnits "Torr"
    }
    for {set i 1} {$i <= 5} {incr i} {
        lappend ControlName "FE:${sector}:ID:VGC${i}.PRES"
        lappend ReadbackName "ID${sector}_VGC${i}_Pressure"
        lappend ReadbackUnits "Torr"
    }
    for {set i 1} {$i <= 2} {incr i} {
        lappend ControlName "FE:${sector}:ID:Tvac:CC${i}:Pres"
        lappend ReadbackName "ID${sector}_Tvac:CC${i}_Pressure"
        lappend ReadbackUnits "Torr"
    }
    
}

#Frontend BM water
foreach sector $sectors {
#BPM1
#new version
    lappend ControlName FE:${sector}:BM:BPM1:F:Read FE:${sector}:BM:BPM1:F:Low
    lappend ReadbackName BM${sector}_BPM1_Flow_GPM BM${sector}_BPM1_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:BPM1:F:ReadCC FE:${sector}:BM:BPM1:F:ReadAI FE:${sector}:BM:BPM1:F:AlLoAI
    lappend ReadbackName BM${sector}_BPM1_Flow_GPM BM${sector}_BPM1_Flow_IOW BM${sector}_BPM1_AlLoAI
    lappend ReadbackUnits gpm iow ""
#BPM2
#new version
    lappend ControlName FE:${sector}:BM:BPM2:F:Read FE:${sector}:BM:BPM2:F:Low
    lappend ReadbackName BM${sector}_BPM2_Flow_GPM BM${sector}_BPM2_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:BPM2:F:ReadCC FE:${sector}:BM:BPM2:F:ReadAI FE:${sector}:BM:BPM2:F:AlLoAI
    lappend ReadbackName BM${sector}_BPM2_Flow_GPM BM${sector}_BPM2_Flow_IOW BM${sector}_BPM2_AlLoAI
    lappend ReadbackUnits gpm iow ""
#FM1
#new version
    lappend ControlName FE:${sector}:BM:FM1:F:Read FE:${sector}:BM:FM1:F:Low
    lappend ReadbackName BM${sector}_FM1_Flow_GPM BM${sector}_FM1_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:FM1:F:ReadCC FE:${sector}:BM:FM1:F:ReadAI FE:${sector}:BM:FM1:F:AlLoAI
    lappend ReadbackName BM${sector}_FM1_Flow_GPM BM${sector}_FM1_Flow_IOW BM${sector}_FM1_AlLoAI
    lappend ReadbackUnits gpm iow ""
#FM2
#new version
    lappend ControlName FE:${sector}:BM:FM2:F:Read FE:${sector}:BM:FM2:F:Low
    lappend ReadbackName BM${sector}_FM2_Flow_GPM BM${sector}_FM2_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:FM2:F:ReadCC FE:${sector}:BM:FM2:F:ReadAI FE:${sector}:BM:FM2:F:AlLoAI
    lappend ReadbackName BM${sector}_FM2_Flow_GPM BM${sector}_FM2_Flow_IOW BM${sector}_FM2_AlLoAI
    lappend ReadbackUnits gpm iow ""
#FM3
#new version
    lappend ControlName FE:${sector}:BM:FM3:F:Read FE:${sector}:BM:FM3:F:Low
    lappend ReadbackName BM${sector}_FM3_Flow_GPM BM${sector}_FM3_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:FM3:F:ReadCC FE:${sector}:BM:FM3:F:ReadAI FE:${sector}:BM:FM3:F:AlLoAI
    lappend ReadbackName BM${sector}_FM3_Flow_GPM BM${sector}_FM3_Flow_IOW BM${sector}_FM3_AlLoAI
    lappend ReadbackUnits gpm iow ""
#PS1
#new version
    lappend ControlName FE:${sector}:BM:PS1:F:Read FE:${sector}:BM:PS1:F:Low
    lappend ReadbackName BM${sector}_PS1_Flow_GPM BM${sector}_PS1_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:PS1:F:ReadCC FE:${sector}:BM:PS1:F:ReadAI FE:${sector}:BM:PS1:F:AlLoAI
    lappend ReadbackName BM${sector}_PS1_Flow_GPM BM${sector}_PS1_Flow_IOW BM${sector}_PS1_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:BM:PS1:DP:ReadAI FE:${sector}:BM:PS1:DP:AlLoAI
    lappend ReadbackName BM${sector}_PS1_Pres BM${sector}_PS1_Pres_AlLoAI
    lappend ReadbackUnits psi ""

##New shutter time pv's
    lappend ControlName  FE:${sector}:ID:PS1open:Time
    lappend ReadbackName ID:${sector}_PS1open:Time
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:PS1close:Time
    lappend ReadbackName ID${sector}_PS1close:Time
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:SS1open:Time
    lappend ReadbackName ID:${sector}_SS1open:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:SS1close:Time
    lappend ReadbackName ID${sector}_SS1close:Time    
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:S21open:Time
    lappend ReadbackName ID:${sector}_SS2open:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:SS2close:Time
    lappend ReadbackName ID${sector}_SS2close:Time    
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:SVopen:Time
    lappend ReadbackName ID:${sector}_SVopen:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:SV2close:Time
    lappend ReadbackName ID${sector}_SV2close:Time    
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:FVopen:Time
    lappend ReadbackName ID:${sector}_FVopen:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:FV2close:Time
    lappend ReadbackName ID${sector}_FV2close:Time    
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:FEVopen:Time
    lappend ReadbackName ID:${sector}_FEVopen:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:FEV2close:Time
    lappend ReadbackName ID${sector}_FEV2close:Time    
    lappend ReadbackUnits "Seconds"
    lappend ControlName  FE:${sector}:ID:BIVopen:Time
    lappend ReadbackName ID:${sector}_BIVopen:Time
    lappend ReadbackUnits "Seconds"    
    lappend ControlName  FE:${sector}:ID:BIV2close:Time
    lappend ReadbackName ID${sector}_BIV2close:Time    
    lappend ReadbackUnits "Seconds"


#PS2
#new version
    lappend ControlName FE:${sector}:BM:PS2:F:Read FE:${sector}:BM:PS2:F:Low
    lappend ReadbackName BM${sector}_PS2_Flow_GPM BM${sector}_PS2_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:PS2:F:ReadCC FE:${sector}:BM:PS2:F:ReadAI FE:${sector}:BM:PS2:F:AlLoAI
    lappend ReadbackName BM${sector}_PS2_Flow_GPM BM${sector}_PS2_Flow_IOW BM${sector}_PS2_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:BM:PS2:DP:ReadAI FE:${sector}:BM:PS2:DP:AlLoAI
    lappend ReadbackName BM${sector}_PS2_Pres BM${sector}_PS2_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#FM1_PS1 no longer used
#    lappend ControlName FE:${sector}:BM:FM1_PS1:F:ReadCC FE:${sector}:BM:FM1_PS1:F:ReadAI FE:${sector}:BM:FM1_PS1:F:AlLoAI
#    lappend ReadbackName BM${sector}_FM1-PS1_Flow_GPM BM${sector}_FM1-PS1_Flow_IOW BM${sector}_FM1-PS1_AlLoAI
#    lappend ReadbackUnits gpm iow ""

#    lappend ControlName FE:${sector}:BM:FM1_PS1:DP:ReadAI FE:${sector}:BM:FM1_PS1:DP:AlLoAI
#    lappend ReadbackName BM${sector}_FM1-PS1_Pres BM${sector}_FM1-PS1_Pres_AlLoAI
#    lappend ReadbackUnits psi ""
#FM2_PS1 no longer used
#    lappend ControlName FE:${sector}:BM:FM2_PS1:F:ReadCC FE:${sector}:BM:FM2_PS1:F:ReadAI FE:${sector}:BM:FM2_PS1:F:AlLoAI
#    lappend ReadbackName BM${sector}_FM2-PS1_Flow_GPM BM${sector}_FM2-PS1_Flow_IOW BM${sector}_FM2-PS1_AlLoAI
#    lappend ReadbackUnits gpm iow ""

#    lappend ControlName FE:${sector}:BM:FM2_PS1:DP:ReadAI FE:${sector}:BM:FM2_PS1:DP:AlLoAI
#    lappend ReadbackName BM${sector}_FM2-PS1_Pres BM${sector}_FM2-PS1_Pres_AlLoAI
#    lappend ReadbackUnits psi ""
#FM2_TA
#new version
    lappend ControlName FE:${sector}:BM:FM2_TA:F:Read FE:${sector}:BM:FM2_TA:F:Low
    lappend ReadbackName BM${sector}_FM2-TA_Flow_GPM BM${sector}_FM2-TA_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:FM2_TA:F:ReadCC FE:${sector}:BM:FM2_TA:F:ReadAI FE:${sector}:BM:FM2_TA:F:AlLoAI
    lappend ReadbackName BM${sector}_FM2-TA_Flow_GPM BM${sector}_FM2-TA_Flow_IOW BM${sector}_FM2-TA_AlLoAI
    lappend ReadbackUnits gpm iow ""
#FM3_PS2 no longer used
#    lappend ControlName FE:${sector}:BM:FM3_PS2:F:ReadCC FE:${sector}:BM:FM3_PS2:F:ReadAI FE:${sector}:BM:FM3_PS2:F:AlLoAI
#    lappend ReadbackName BM${sector}_FM3-PS2_Flow_GPM BM${sector}_FM3-PS2_Flow_IOW BM${sector}_FM3-PS2_AlLoAI
#    lappend ReadbackUnits gpm iow ""

#    lappend ControlName FE:${sector}:BM:FM3_PS2:DP:ReadAI FE:${sector}:BM:FM3_PS2:DP:AlLoAI
#    lappend ReadbackName BM${sector}_FM3-PS2_Pres BM${sector}_FM3-PS2_Pres_AlLoAI
#    lappend ReadbackUnits psi ""
#PS2_FM3 no longer used
#    lappend ControlName FE:${sector}:BM:PS2_FM3:F:ReadCC FE:${sector}:BM:PS2_FM3:F:ReadAI FE:${sector}:BM:PS2_FM3:F:AlLoAI
#    lappend ReadbackName BM${sector}_PS2-FM3_Flow_GPM BM${sector}_PS2-FM3_Flow_IOW BM${sector}_PS2-FM3_AlLoAI
#    lappend ReadbackUnits gpm iow ""
#FM4_WIN no longer used
#    lappend ControlName FE:${sector}:BM:FM4_WIN:F:ReadCC FE:${sector}:BM:FM4_WIN:F:ReadAI FE:${sector}:BM:FM4_WIN:F:AlLoAI
#    lappend ReadbackName BM${sector}_BeW_Flow_GPM BM${sector}_BeW_Flow_IOW BM${sector}_BeW_AlLoAI
#    lappend ReadbackUnits gpm iow ""
#HEADER
    lappend ControlName FE:${sector}:BM:HEADER:DP:ReadAI FE:${sector}:BM:HEADER:DP:AlLoAI
    lappend ReadbackName BM${sector}_HEADER_Pres BM${sector}_HEADER_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#BEWIN
#new version
    lappend ControlName FE:${sector}:BM:BEWIN:F:Read FE:${sector}:BM:BEWIN:F:Low
    lappend ReadbackName BM${sector}_BeW_Flow_GPM BM${sector}_BeW_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:BM:BEWIN:F:ReadCC FE:${sector}:BM:BEWIN:F:ReadAI FE:${sector}:BM:BEWIN:F:AlLoAI
    lappend ReadbackName BM${sector}_BeW_Flow_GPM BM${sector}_BeW_Flow_IOW BM${sector}_BeW_AlLoAI
    lappend ReadbackUnits gpm iow ""
#BE_WIN no longer used
#    lappend ControlName FE:${sector}:BM:BE_WIN:F:ReadCC FE:${sector}:BM:BE_WIN:F:ReadAI FE:${sector}:BM:BE_WIN:F:AlLoAI
#    lappend ReadbackName BM${sector}_BeW_Flow_GPM BM${sector}_BeW_Flow_IOW BM${sector}_BeW_AlLoAI
#    lappend ReadbackUnits gpm iow ""

#EM
    lappend ControlName FE:${sector}:BM:EM:F:Read
    lappend ReadbackName BM${sector}_EM_Flow_GPM
    lappend ReadbackUnits gpm

}

#Frontend ID water
#set sectors "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 31 32 33 34 35"
foreach sector $sectors {
#BPM1
#new version
    lappend ControlName FE:${sector}:ID:BPM1:F:Read FE:${sector}:ID:BPM1:F:Low
    lappend ReadbackName ID${sector}_BPM1_Flow_GPM ID${sector}_BPM1_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:BPM1:F:ReadCC FE:${sector}:ID:BPM1:F:ReadAI FE:${sector}:ID:BPM1:F:AlLoAI
    lappend ReadbackName ID${sector}_BPM1_Flow_GPM ID${sector}_BPM1_Flow_IOW ID${sector}_BPM1_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""
#BPM2
#new version
    lappend ControlName FE:${sector}:ID:BPM2:F:Read FE:${sector}:ID:BPM2:F:Low
    lappend ReadbackName ID${sector}_BPM2_Flow_GPM ID${sector}_BPM2_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:BPM2:F:ReadCC FE:${sector}:ID:BPM2:F:ReadAI FE:${sector}:ID:BPM2:F:AlLoAI
    lappend ReadbackName ID${sector}_BPM2_Flow_GPM ID${sector}_BPM2_Flow_IOW ID${sector}_BPM2_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""


#XBPM
    lappend ControlName FE:${sector}:ID:BPMTARL:F:Read FE:${sector}:ID:BPMCHAML:F:Read FE:${sector}:ID:BPMDETL:F:Read
    lappend ReadbackName ID${sector}_BPMTARL_Flow ID${sector}_BPMCHAML_Flow ID${sector}_BPMDETL_Flow
    lappend ReadbackUnits "" "" ""


#FM1
#new version
    lappend ControlName FE:${sector}:ID:FM1:F:Read FE:${sector}:ID:FM1:F:Low
    lappend ReadbackName ID${sector}_FM1_Flow_GPM ID${sector}_FM1_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:FM1:F:ReadCC FE:${sector}:ID:FM1:F:ReadAI FE:${sector}:ID:FM1:F:AlLoAI
    lappend ReadbackName ID${sector}_FM1_Flow_GPM ID${sector}_FM1_Flow_IOW ID${sector}_FM1_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:FM1:DP:ReadAI FE:${sector}:ID:FM1:DP:AlLoAI
    lappend ReadbackName ID${sector}_FM1_Pres ID${sector}_FM1_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#FM2
#new version
    lappend ControlName FE:${sector}:ID:FM2:F:Read FE:${sector}:ID:FM2:F:Low
    lappend ReadbackName ID${sector}_FM2_Flow_GPM ID${sector}_FM2_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:FM2:F:ReadCC FE:${sector}:ID:FM2:F:ReadAI FE:${sector}:ID:FM2:F:AlLoAI
    lappend ReadbackName ID${sector}_FM2_Flow_GPM ID${sector}_FM2_Flow_IOW ID${sector}_FM2_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:FM2:DP:ReadAI FE:${sector}:ID:FM2:DP:AlLoAI
    lappend ReadbackName ID${sector}_FM2_Pres ID${sector}_FM2_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#FM3
#new version
    lappend ControlName FE:${sector}:ID:FM3:F:Read FE:${sector}:ID:FM3:F:Low
    lappend ReadbackName ID${sector}_FM3_Flow_GPM ID${sector}_FM3_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:FM3:F:ReadCC FE:${sector}:ID:FM3:F:ReadAI FE:${sector}:ID:FM3:F:AlLoAI
    lappend ReadbackName ID${sector}_FM3_Flow_GPM ID${sector}_FM3_Flow_IOW ID${sector}_FM3_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:FM3:DP:ReadAI FE:${sector}:ID:FM3:DP:AlLoAI
    lappend ReadbackName ID${sector}_FM3_Pres ID${sector}_FM3_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#FM4
#new version
    lappend ControlName FE:${sector}:ID:FM4:F:Read FE:${sector}:ID:FM4:F:Low
    lappend ReadbackName ID${sector}_FM4_Flow_GPM ID${sector}_FM4_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:FM4:F:ReadCC FE:${sector}:ID:FM4:F:ReadAI FE:${sector}:ID:FM4:F:AlLoAI
    lappend ReadbackName ID${sector}_FM4_Flow_GPM ID${sector}_FM4_Flow_IOW ID${sector}_FM4_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:FM4:DP:ReadAI FE:${sector}:ID:FM4:DP:AlLoAI
    lappend ReadbackName ID${sector}_FM4_Pres ID${sector}_FM4_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#PS1
#new version
    lappend ControlName FE:${sector}:ID:PS1:F:Read FE:${sector}:ID:PS1:F:Low
    lappend ReadbackName ID${sector}_PS1_Flow_GPM ID${sector}_PS1_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:PS1:F:ReadCC FE:${sector}:ID:PS1:F:ReadAI FE:${sector}:ID:PS1:F:AlLoAI
    lappend ReadbackName ID${sector}_PS1_Flow_GPM ID${sector}_PS1_Flow_IOW ID${sector}_PS1_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:PS1:DP:ReadAI FE:${sector}:ID:PS1:DP:AlLoAI
    lappend ReadbackName ID${sector}_PS1_Pres ID${sector}_PS1_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#PS2
#new version
    lappend ControlName FE:${sector}:ID:PS2:F:Read FE:${sector}:ID:PS2:F:Low
    lappend ReadbackName ID${sector}_PS2_Flow_GPM ID${sector}_PS2_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:PS2:F:ReadCC FE:${sector}:ID:PS2:F:ReadAI FE:${sector}:ID:PS2:F:AlLoAI
    lappend ReadbackName ID${sector}_PS2_Flow_GPM ID${sector}_PS2_Flow_IOW ID${sector}_PS2_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

    lappend ControlName FE:${sector}:ID:PS2:DP:ReadAI FE:${sector}:ID:PS2:DP:AlLoAI
    lappend ReadbackName ID${sector}_PS2_Pres ID${sector}_PS2_Pres_AlLoAI
    lappend ReadbackUnits psi ""
#MM
#new version
    lappend ControlName FE:${sector}:ID:MM:F:Read FE:${sector}:ID:MM:F:Low
    lappend ReadbackName ID${sector}_MM_Flow_GPM ID${sector}_MM_Flow_AlLoAI
    lappend ReadbackUnits gpm ""
#old version
    lappend ControlName FE:${sector}:ID:MM:F:ReadCC FE:${sector}:ID:MM:F:ReadAI FE:${sector}:ID:MM:F:AlLoAI
    lappend ReadbackName ID${sector}_MM_Flow_GPM ID${sector}_MM_Flow_IOW ID${sector}_MM_Flow_AlLoAI
    lappend ReadbackUnits gpm iow ""

#EM
    lappend ControlName FE:${sector}:ID:EM:F:Read
    lappend ReadbackName ID${sector}_EM_Flow_GPM
    lappend ReadbackUnits gpm

    for {set i 1} {$i <= 10} {incr i} {
        lappend ControlName PA:${sector}ID:CHANNEL_${i}_CALC PA:${sector}ID:CHANNEL_${i}_SET
        lappend ReadbackName PA:${sector}ID:CHANNEL_${i}_CALC PA:${sector}ID:CHANNEL_${i}_SET
        lappend ReadbackUnits "" ""
        
        lappend ControlName PB:${sector}ID:CHANNEL_${i}_CALC PB:${sector}ID:CHANNEL_${i}_SET
        lappend ReadbackName PB:${sector}ID:CHANNEL_${i}_CALC PB:${sector}ID:CHANNEL_${i}_SET
        lappend ReadbackUnits "" ""
    }

    for {set i 1} {$i <= 10} {incr i} {
        lappend ControlName PA:${sector}ID:DIW_CURRENT_${i} PA:${sector}ID:DIW_SET_POINT_${i}
        lappend ReadbackName PA:${sector}ID:DIW_CURRENT_${i} PA:${sector}ID:DIW_SET_POINT_${i}
        lappend ReadbackUnits "" ""
        
        lappend ControlName PB:${sector}ID:DIW_CURRENT_${i} PB:${sector}ID:DIW_SET_POINT_${i}
        lappend ReadbackName PB:${sector}ID:DIW_CURRENT_${i} PB:${sector}ID:DIW_SET_POINT_${i}
        lappend ReadbackUnits "" ""
    }

    for {set i 1} {$i <= 10} {incr i} {
        lappend ControlName PSS:${sector}ID:FLOW_${i}_CH_A PSS:${sector}ID:FLOW_${i}_CH_B
        lappend ReadbackName PSS:${sector}ID:FLOW_${i}_CH_A PSS:${sector}ID:FLOW_${i}_CH_B
        lappend ReadbackUnits "" ""
    }

    for {set i 1} {$i <= 25} {incr i} {

        lappend ControlName PA:${sector}ID:FM${i}:ReadAI PB:${sector}ID:FM${i}:ReadAI PA:${sector}ID:FM${i}:AlarmBI PB:${sector}ID:FM${i}:AlarmBI PA:${sector}ID:FM${i}:SP_ReadAI PB:${sector}ID:FM${i}:SP_ReadAI
        lappend ReadbackName PA:${sector}ID:FM${i}:ReadAI PB:${sector}ID:FM${i}:ReadAI PA:${sector}ID:FM${i}:AlarmBI PB:${sector}ID:FM${i}:AlarmBI PA:${sector}ID:FM${i}:SP_ReadAI PB:${sector}ID:FM${i}:SP_ReadAI
        lappend ReadbackUnits "" "" "" "" "" ""

        lappend ControlName PD:${sector}ID:FM${i}:ReadAI PD:${sector}ID:FM${i}:AlLoAI PD:${sector}ID:FM${i}:AlHiAI
        lappend ReadbackName PD:${sector}ID:FM${i}:ReadAI PD:${sector}ID:FM${i}:AlLoAI PD:${sector}ID:FM${i}:AlHiAI
        lappend ReadbackUnits iow "" ""
    }
}

#ID gap
#set sectors "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 31 32 33 34 35"
foreach sector $sectors {
    #lappend ControlName "ID${sector}:Gap"
    #lappend ReadbackName "ID${sector}AverageGap"
    #lappend ReadbackUnits "mm"
    
    lappend ControlName "S${sector}ID:DSID:GapM"
    lappend ReadbackName "ID${sector}DSAverageGap"
    lappend ReadbackUnits "mm"
    
    lappend ControlName "S${sector}ID:USID:GapM"
    lappend ReadbackName "ID${sector}USAverageGap"
    lappend ReadbackUnits "mm"
    
    lappend ControlName "ID${sector}:difai1"
    lappend ReadbackName "ID${sector}:EMW:AC:CurrentAI"
    lappend ReadbackUnits "kA"
    
    lappend ControlName "ID${sector}:bi12"
    lappend ReadbackName "ID${sector}:EMW:State"
    lappend ReadbackUnits "state"

    lappend ControlName  "PA:${sector}BM:StPS1OpenLs"
    lappend ReadbackName "PA:${sector}BM:StPS1OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StPS1CloseLs"
    lappend ReadbackName "PA:${sector}BM:StPS1CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StPS2OpenLs"
    lappend ReadbackName "PA:${sector}BM:StPS2OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StPS2CloseLs"
    lappend ReadbackName "PA:${sector}BM:StPS2CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StSS1OpenLs"
    lappend ReadbackName "PA:${sector}BM:StSS1OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StSS1CloseLs"
    lappend ReadbackName "PA:${sector}BM:StSS1CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StSS2OpenLs"
    lappend ReadbackName "PA:${sector}BM:StSS2OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}BM:StSS2CloseLs"
    lappend ReadbackName "PA:${sector}BM:StSS2CloseLs"
    lappend ReadbackUnits ""

    lappend ControlName  "PA:${sector}ID:StPS1OpenLs"
    lappend ReadbackName "PA:${sector}ID:StPS1OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StPS1CloseLs"
    lappend ReadbackName "PA:${sector}ID:StPS1CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StPS2OpenLs"
    lappend ReadbackName "PA:${sector}ID:StPS2OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StPS2CloseLs"
    lappend ReadbackName "PA:${sector}ID:StPS2CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StSS1OpenLs"
    lappend ReadbackName "PA:${sector}ID:StSS1OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StSS1CloseLs"
    lappend ReadbackName "PA:${sector}ID:StSS1CloseLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StSS2OpenLs"
    lappend ReadbackName "PA:${sector}ID:StSS2OpenLs"
    lappend ReadbackUnits ""
    lappend ControlName  "PA:${sector}ID:StSS2CloseLs"
    lappend ReadbackName "PA:${sector}ID:StSS2CloseLs"
    lappend ReadbackUnits ""
    
}
foreach sector $sectors {
    foreach P "PA PB" {
        foreach type "BM ID" {
            for {set i 1} {$i <= 2} {incr i} {
                lappend ControlName "${P}:${sector}${type}:FES_PS${i}_CLOSED_LS"
                lappend ReadbackName "${P}:${sector}${type}:FE_Photon_Shutter_${i}_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:FES_PS${i}_OPENED_LS"
                lappend ReadbackName "${P}:${sector}${type}:FE_Photon_Shutter_${i}_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:FES_SS${i}_CLOSED_LS"
                lappend ReadbackName "${P}:${sector}${type}:FE_Safety_Shutter_${i}_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:FES_SS${i}_OPENED_LS"
                lappend ReadbackName "${P}:${sector}${type}:FE_Safety_Shutter_${i}_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SBS_MS${i}_SS${i}_CLSD_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_B_MS${i}_Shutter_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SBS_MS${i}_SS${i}_OPEN_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_B_MS${i}_Shutter_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SCS_MS${i}_SS${i}_CLSD_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_C_MS${i}_Shutter_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SCS_MS${i}_SS${i}_OPEN_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_C_MS${i}_Shutter_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SDS_MS${i}_SS${i}_CLSD_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_D_MS${i}_Shutter_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SDS_MS${i}_SS${i}_OPEN_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_D_MS${i}_Shutter_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SES_MS${i}_SS${i}_CLSD_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_E_MS${i}_Shutter_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SES_MS${i}_SS${i}_OPEN_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_E_MS${i}_Shutter_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SFS_MS${i}_SS${i}_CLSD_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_F_MS${i}_Shutter_Closed"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:SFS_MS${i}_SS${i}_OPEN_LS"
                lappend ReadbackName "${P}:${sector}${type}:Station_F_MS${i}_Shutter_Open"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:B_PBS_CURRENT"
                lappend ReadbackName "${P}:${sector}${type}:B_PBS_CURRENT"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:C_PBS_CURRENT"
                lappend ReadbackName "${P}:${sector}${type}:C_PBS_CURRENT"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:D_PBS_CURRENT"
                lappend ReadbackName "${P}:${sector}${type}:D_PBS_CURRENT"
                lappend ReadbackUnits ""
                
                lappend ControlName "${P}:${sector}${type}:E_PBS_CURRENT"
                lappend ReadbackName "${P}:${sector}${type}:E_PBS_CURRENT"
                lappend ReadbackUnits ""
                
           }
        }
    }
}

set data(ColumnNames) "ControlName ReadbackName ReadbackUnits"
set data(Column.ControlName) [list $ControlName]
set data(Column.ReadbackName) [list $ReadbackName]
set data(Column.ReadbackUnits) [list $ReadbackUnits]

sdds save ${newFile} data 

catch {exec sddsxref $newFile /home/helios/oagData/pvdata/iocRecNamesOAG.sdds FrontendBeamlines2.mon -match=ControlName=rec_name }
exec sddsconvert FrontendBeamlines2.mon FrontendBeamlines3.mon -delete=column,ioc_name,rec_name


#remove old style PV names when the new style exist.
sdds load FrontendBeamlines3.mon data

set cnnew ""
set rnnew ""
set runew ""
foreach cn [lindex $data(Column.ControlName) 0] \
    rn [lindex $data(Column.ReadbackName) 0] \
    ru [lindex $data(Column.ReadbackUnits) 0] {
    if {[info exists namelist($rn)]} {

    } else {
        set namelist($rn) 1
        lappend cnnew $cn
        lappend rnnew $rn
        lappend runew $ru
    }
}

set data(Column.ControlName) [list $cnnew]
set data(Column.ReadbackName) [list $rnnew]
set data(Column.ReadbackUnits) [list $runew]

sdds save FrontendBeamlines4.mon data
if {[catch {exec sddsprocess FrontendBeamlines4.mon FrontendBeamlines5.mon -print=column,Provider,ca -print=column,ExpectNumeric,y,type=character -print=column,ExpectFieldType,scalar -define=column,ExpectElements,1,type=long -nowarn} results]} {
    puts "ERROR: $results"
    exit
}


exec sddssort FrontendBeamlines5.mon -pipe=out -col=ControlName -numeric | sddsconvert -pipe=in $newFile -ascii
file delete FrontendBeamlines2.mon
file delete FrontendBeamlines3.mon
file delete FrontendBeamlines4.mon
file delete FrontendBeamlines5.mon

if [file exists ${root}.mon] {
     file delete ${root}.mon
}
exec ln -s $newFile ${root}.mon
