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

# input files:
# dumpRecord.reqTemplate BPLD sector PVs
# dumpRecord.reqTemplate2 all sector PVs
# dumpRecord.reqGeneral
#
# output files:
# dumpRecord.req
#

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 usage "usage: makeMPSdumpReqFile"
set listFile "/home/helios/oagData/sr/BPLDs/sectors.sdds"


set sectorList [APSGetSDDSColumn -fileName $listFile -column Sector]
foreach sector $sectorList {
    puts stderr "Working on $sector"
    set sectorP1 [expr $sector+1]
    set filename [format dumpRecord.req%02ld $sector]
    set sec [format %02ld $sector]
    exec sddsprocess ../requestFiles/dumpRecord.reqTemplate $filename \
      -reedit=column,ControlName,%/<n>/$sector/%/<n+1>/$sectorP1/
    lappend fileList $filename
}

set sectorList ""
for {set i 1} {$i <= 40} {incr i} {
    lappend sectorList $i
} 
foreach sector $sectorList {
    puts stderr "Working on $sector"
    set sec [format %02ld $sector]
    set filename dumpRecord.req.2.$sec
    exec sddsprocess ../requestFiles/dumpRecord.reqTemplate2 $filename \
      -reedit=column,ControlName,%/<m>/$sec/%/<n>/$sector/
    lappend fileList $filename
}

set outputFile ../requestFiles/dumpRecord.req

set tmpfile /tmp/[APSTmpString]
eval exec sddscombine $fileList \
    ../requestFiles/dumpRecord.reqGeneral ../requestFiles/dumpRecord.reqExtra -merge -pipe=out | \
  sddssort -pipe -column=ControlName -numericHigh -unique | \
  sddsprocess -pipe=in $tmpfile \
    -edit=column,SimpleControlName,ControlName,S?/./K

eval file delete $fileList
puts "Comparing against master PV list"
exec sddsselect $tmpfile \
    /home/helios/oagData/pvdata/iocRecNamesOAG.sdds \
    -pipe=out -match=SimpleControlName=rec_name \
    -nowarning -reuse | \
    sddsconvert -pipe=in $outputFile \
    -delete=column,SimpleControlName
file delete $tmpfile

sdds load $outputFile data
set data(ParameterNames) "InstallLocation"
set data(Parameter.InstallLocation) [list /home/helios/oagData/mpsDumps/dumpRecord.req]
set data(Layout.DataMode.Mode) "ascii"
sdds save $outputFile data

puts stderr "Old file: [exec sdds2stream -rows /home/helios/oagData/mpsDumps/dumpRecord.req]"
puts stderr "New file: [exec sdds2stream -rows $outputFile]"

