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

puts "Not used"
exit
# input files:
# SRDCPS-HVDextraPVs.mon
#
# output file:
# SRDCPS-HVD.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

set root SRDCPS-HVD

set dipoleMagTempsPVList { MMagTempAI }
set dipoleMagTempsNameList { MMagTempAI }
set dipoleMagTempsUnitsList { C }

set correctorPVList { CurrentAI CurrentAO DacAI }
set correctorNameList { CurrentAI CurrentAO DacAI }
set correctorUnitsList { A A A}

set MTPVList {CurrentAI CurrentAO DacAI}
set MTNameList $MTPVList
set MTUnitsList {A A A}

set dipolePVList {ACCurrentAI ACVoltageAI CabTempAI CurrentAI CurrentAO DCVoltageAI TMDispAI TMEnergyCC TMNMRSignalBI XDCT:CurrentCALC XDCT2:CurrentCALC XDCT3:CurrentCALC DacAI}
set dipoleNameList {ACCurrentAI ACVoltageAI CabTempAI CurrentAI CurrentAO DCVoltageAI NMR:Field TMEnergyCC NMR:Signal XDCT:Current XDCT2:Current XDCT3:Current DacAI}
set dipoleUnitsList {A V degF A A V T "" A A}

set chmbrPVList {G2:Chmbr:TempAI A:Q2:TempAI B:Q1:TempAI}
set chmbrNameList {:G2:Chmbr:Temp A:Q2:cntrSpacer:Temp B:Q1:cntrSpacer:Temp}
set chmbrUnitsList {degF degF degF}

set airPVList {ambientAir:TempAI returnAirDuct:TempAI}
set airNameList {ambientAirTemp returnAirDuctTemp}
set airUnitsList {degF degF}

set output(ColumnNames) "ControlName ReadbackName ReadbackUnits"

for {set sector 1} {$sector<41} {incr sector} {
    foreach side {A B C} {
        foreach num {1 2 3 4} {
            foreach plane {H V} {
                set prefix S${sector}$side:${plane}$num
                foreach pv $correctorPVList name $correctorNameList units $correctorUnitsList {
                    lappend CNList $prefix:$pv
                    lappend NameList $prefix:$name
                    lappend UnitsList $units
                }
                set prefix SFB:S${sector}$side:${plane}$num
                lappend CNList $prefix:CurrentAO
                lappend NameList $prefix:CurrentAO
                lappend UnitsList A
            }
        }
        foreach plane {MT BM} {
            set prefix S${sector}$side:${plane}
            foreach pv $correctorPVList name $correctorNameList units $correctorUnitsList {
                lappend CNList $prefix:$pv
                lappend NameList $prefix:$name
                lappend UnitsList $units
            }
            set prefix SFB:S${sector}$side:${plane}$num
            lappend CNList $prefix:CurrentAO
            lappend NameList $prefix:CurrentAO
            lappend UnitsList A
        }
    }
}

for {set sector 1} {$sector<41} {incr sector} {
    foreach side {A B} {
        set prefix S${sector}:$side
        foreach pv $dipoleMagTempsPVList name $dipoleMagTempsNameList units $dipoleMagTempsUnitsList {
            lappend CNList $prefix$pv
            lappend NameList $prefix$name
            lappend UnitsList $units
        }
    }
}

if {0} {
for {set sector 1} {$sector<41} {incr sector} {
    foreach side {A B C} {
        set prefix S${sector}$side:MT
        foreach pv $MTPVList name $MTNameList units $MTUnitsList {
            lappend CNList $prefix:$pv
            lappend NameList $prefix:$name
            lappend UnitsList $units
        }
        set prefix SFB:S${sector}$side:MT
        lappend CNList $prefix:CurrentAO
        lappend NameList $prefix:CurrentAO
        lappend UnitsList A
        set prefix S${sector}$side:BM
        lappend CNList $prefix:CurrentAI
        lappend NameList $prefix:CurrentAI
        lappend UnitsList A
        set prefix SFB:S${sector}$side:BM
        lappend CNList $prefix:CurrentAI
        lappend NameList $prefix:CurrentAI
        lappend UnitsList A
    }
}
}

for {set sector 1} {$sector<41} {incr sector} {
    set prefix S[format %02ld $sector]
    foreach pv $chmbrPVList name $chmbrNameList units $chmbrUnitsList {
        lappend CNList $prefix:$pv
        lappend NameList $prefix$name
        lappend UnitsList $units
    }
}

for {set sector 1} {$sector<41} {incr sector 1} {
    set prefix S[format %02ld $sector]
    foreach pv $airPVList name $airNameList units $airUnitsList {
        lappend CNList $prefix:$pv
        lappend NameList $prefix:$name
        lappend UnitsList $units
    }
}

for {set sector 1} {$sector<41} {incr sector 1} {
    set prefix ID[format %02ld $sector]
    foreach pv "xPolarity yPolarity xqPolarity yqPolarity" {
        lappend CNList $prefix:$pv
        lappend NameList $prefix:$pv
        lappend UnitsList ""
    }
}

set prefix S:BM
foreach pv $dipolePVList name $dipoleNameList units $dipoleUnitsList {
    lappend CNList $prefix:$pv
    lappend NameList $prefix:$name
    lappend UnitsList $units
}

set output(Column.ControlName) [list $CNList]
set output(Column.ReadbackName) [list $NameList]
set output(Column.ReadbackUnits) [list $UnitsList]

if {[catch {sdds save /tmp/makeMonFile.out1 output} result]} {
    puts "error: $result"
    file delete -force /tmp/makeMonFile.out1
    exit
}
if {[catch {exec sddsprocess /tmp/makeMonFile.out1 -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 sddscombine /tmp/makeMonFile.out1 ./DataLogging/SRDCPS-HVDextraPVs.mon \
              -pipe=out -overwrite -merge | \
              sddssort -pipe \
              -col=ControlName -nowarning -numericHigh | \
              sddsprocess -pipe=in /tmp/SRDCPS-HVD.mon \
              -edit=column,SimpleControlName,ControlName,S?/./K} result]} {
    puts "error1: $result"
    file delete -force /tmp/makeMonFile.out1
    exit
}

#file delete -force /tmp/makeMonFile.out1

puts "Comparing against master PV list"
exec sddsselect /tmp/SRDCPS-HVD.mon /home/helios/oagData/pvdata/iocRecNamesOAG.sdds -pipe=out -match=SimpleControlName=rec_name -nowarning -reuse | sddsconvert -pipe=in ./DataLogging/SRDCPS-HVD.mon -delete=column,SimpleControlName

file delete -force /tmp/SRDCPS-HVD.mon


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

puts "use cppatch to install SRDCPS-HVD.mon"
