#!/bin/sh  
# \
exec oagtclsh "$0" "$@"

# output files:
# PSS.mon

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


lappend controlnames "ACIS:FA_BP_MODE"
lappend controlnames "ACIS:FB_BP_MD"
lappend controlnames "ACIS:RA_BP_MODE"
lappend controlnames "ACIS:RB_BP_MODE"

for {set i 1} {$i < 40} {incr i} {
    append sectors "[format %02d $i] "
}

#GEN 1 FES
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:STA_A_FES_OPEN_PL"
    lappend controlnames "PA:${sector}ID:STA_A_FES_OPEN_PL"
    lappend controlnames "PB:${sector}BM:STA_A_FES_CLSD_PL"
    lappend controlnames "PB:${sector}ID:STA_A_FES_CLSD_PL"
}

#GEN 3 FES
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:A_BEAM_PRESENT"
    lappend controlnames "PB:${sector}BM:A_BEAM_PRESENT"
    lappend controlnames "PC:${sector}BM:A_BEAM_PRESENT"
    lappend controlnames "PA:${sector}ID:A_BEAM_PRESENT"
    lappend controlnames "PB:${sector}ID:A_BEAM_PRESENT"
    lappend controlnames "PC:${sector}ID:A_BEAM_PRESENT"
}

#GEN 4 FES
foreach sector $sectors {
    lappend controlnames "S${sector}BM-PSS:FES:BeamBlockingM"
    lappend controlnames "S${sector}ID-PSS:FES:BeamBlockingM"
}

#GEN 1 PS1
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:FES_PS1_CLOSED_LS"
    lappend controlnames "PA:${sector}BM:FES_PS1_OPENED_LS"
    lappend controlnames "PB:${sector}BM:FES_PS1_CLOSED_LS"
    lappend controlnames "PB:${sector}BM:FES_PS1_OPENED_LS"
    lappend controlnames "PA:${sector}ID:FES_PS1_CLOSED_LS"
    lappend controlnames "PA:${sector}ID:FES_PS1_OPENED_LS"
    lappend controlnames "PB:${sector}ID:FES_PS1_CLOSED_LS"
    lappend controlnames "PB:${sector}ID:FES_PS1_OPENED_LS"
}

#GEN 3 PS1
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:FES_PS1_CLOSED"
    lappend controlnames "PA:${sector}BM:FES_PS1_OPENED"
    lappend controlnames "PB:${sector}BM:FES_PS1_CLOSED"
    lappend controlnames "PB:${sector}BM:FES_PS1_OPENED"
    lappend controlnames "PA:${sector}ID:FES_PS1_CLOSED"
    lappend controlnames "PA:${sector}ID:FES_PS1_OPENED"
    lappend controlnames "PB:${sector}ID:FES_PS1_CLOSED"
    lappend controlnames "PB:${sector}ID:FES_PS1_OPENED"
}

#GEN 4 PS1
foreach sector $sectors {
    lappend controlnames "S${sector}BM-PSS:FES:PS1Closed:LIM"
    lappend controlnames "S${sector}ID-PSS:FES:PS1Closed:LIM"
}

#GEN 1 Doors
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:STA_A_DR1_CLOSE_LS"
    lappend controlnames "PA:${sector}BM:STA_A_DR2_CLOSE_LS"
    lappend controlnames "PA:${sector}BM:STA_A_DR3_CLOSE_LS"
    lappend controlnames "PA:${sector}BM:STA_A_DR4_CLOSE_LS"
    lappend controlnames "PB:${sector}BM:STA_A_DR1_CLOSE_LS"
    lappend controlnames "PB:${sector}BM:STA_A_DR2_CLOSE_LS"
    lappend controlnames "PB:${sector}BM:STA_A_DR3_CLOSE_LS"
    lappend controlnames "PB:${sector}BM:STA_A_DR4_CLOSE_LS"
    lappend controlnames "PA:${sector}ID:STA_A_DR1_CLOSE_LS"
    lappend controlnames "PA:${sector}ID:STA_A_DR2_CLOSE_LS"
    lappend controlnames "PA:${sector}ID:STA_A_DR3_CLOSE_LS"
    lappend controlnames "PA:${sector}ID:STA_A_DR4_CLOSE_LS"
    lappend controlnames "PB:${sector}ID:STA_A_DR1_CLOSE_LS"
    lappend controlnames "PB:${sector}ID:STA_A_DR2_CLOSE_LS"
    lappend controlnames "PB:${sector}ID:STA_A_DR3_CLOSE_LS"
    lappend controlnames "PB:${sector}ID:STA_A_DR4_CLOSE_LS"
}

#GEN 3 FES
foreach sector $sectors {
    lappend controlnames "PA:${sector}BM:A_DOOR_1_CLOSED"
    lappend controlnames "PA:${sector}BM:A_DOOR_2_CLOSED"
    lappend controlnames "PA:${sector}BM:A_DOOR_3_CLOSED"
    lappend controlnames "PA:${sector}BM:A_DOOR_4_CLOSED"
    lappend controlnames "PB:${sector}BM:A_DOOR_1_CLOSED"
    lappend controlnames "PB:${sector}BM:A_DOOR_2_CLOSED"
    lappend controlnames "PB:${sector}BM:A_DOOR_3_CLOSED"
    lappend controlnames "PB:${sector}BM:A_DOOR_4_CLOSED"
    lappend controlnames "PA:${sector}ID:A_DOOR_1_CLOSED"
    lappend controlnames "PA:${sector}ID:A_DOOR_2_CLOSED"
    lappend controlnames "PA:${sector}ID:A_DOOR_3_CLOSED"
    lappend controlnames "PA:${sector}ID:A_DOOR_4_CLOSED"
    lappend controlnames "PB:${sector}ID:A_DOOR_1_CLOSED"
    lappend controlnames "PB:${sector}ID:A_DOOR_2_CLOSED"
    lappend controlnames "PB:${sector}ID:A_DOOR_3_CLOSED"
    lappend controlnames "PB:${sector}ID:A_DOOR_4_CLOSED"
}

#GEN 4 FES
foreach sector $sectors {
    lappend controlnames "S${sector}BM-PSS:StaA:Door1:LIM"
    lappend controlnames "S${sector}BM-PSS:StaA:Door2:LIM"
    lappend controlnames "S${sector}ID-PSS:StaA:Door1:LIM"
    lappend controlnames "S${sector}ID-PSS:StaA:Door2:LIM"
}

set tempdata(ColumnNames) "ControlName ReadbackName"
set tempdata(Column.ControlName) [list $controlnames]
set tempdata(Column.ReadbackName) [list $controlnames]

set tmpFile /tmp/[APSTmpString]
if {[catch {sdds save $tmpFile tempdata} result]} {
    catch {exec rm $tmpFile}
    puts stderr "Error: $result"
    exit
}

if {[catch {exec sddsprocess $tmpFile -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
}


if {[catch {exec  sddsprocess $tmpFile -pipe=out \
              -edit=column,SimpleControlName,ControlName,S?/./K | \
              sddsselect -pipe /home/helios/oagData/pvdata/iocRecNamesOAG.sdds \
              -match=SimpleControlName=rec_name -nowarning -reuse | \
              sddsconvert -pipe -delete=column,SimpleControlName | \
              sddssort -pipe=in ../DataLogging/FOE.mon -col=ControlName -num -unique} results]} {
    catch {exec rm $tmpFile}
    puts stderr "Error: $results"
    exit
}

catch {exec rm $tmpFile}

sdds load ./../DataLogging/FOE.mon data
set data(ParameterNames) "InstallLocation"
set data(Parameter.InstallLocation) [list /home/helios/oagData/logging/FOE/FOE.mon]
set data(Layout.DataMode.Mode) "ascii"
sdds save ./../DataLogging/FOE.mon data

puts "use cppatch to install FOE.mon"
