#!/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)]

#Input   ../DataLogging/srBPLD.mon.template
#        ../DataLogging/srBPLD.mon.extra
#
#Output  ../DataLogging/srBPLD.mon


APSStandardSetup

set root srBPLD 
set recordFile /home/helios/oagData/pvdata/iocRecNamesOAG.sdds
set positionFile /home/helios/oagData/sr/lattices/default/aps.twi
set output "../DataLogging/${root}.mon"


set fileListKeep ../DataLogging/srBPLD.mon.extra

set sectorList [exec sdds2stream -col=Sector \
                  /home/helios/oagData/sr/BPLDs/sectors.sdds]

set fileList ""
set tmpRoot /tmp/[APSTmpString]
for {set i 1} {$i <= 40} {incr i} {
    set sector [format %02d $i]
    if [catch {exec sddsprocess ../DataLogging/${root}.mon.template $tmpRoot.${root}.mon.${sector} \
                 -reedit=column,ControlName,%/<sector>/${sector}/ \
                 -reedit=column,ReadbackName,%/<sector>/${sector}/ }  result] {
        puts stderr "Error: $result"
        exit
    } 
    lappend fileList $tmpRoot.${root}.mon.${sector}
}

if [catch {eval exec sddscombine $fileListKeep $fileList -pipe=out -merge | \
             sddsprocess -pipe -edit=col,rec_name,ControlName,S?/./D \
             {"-description=text=Created by makeBPLDmonFile"} \
             | sddssort -column=rec_name -pipe \
             | sddsxref -reuse -nowarnings -pipe $recordFile -match=rec_name \
             | sddssort -pipe -col=ControlName -numericHigh -unique \
             | sddsconvert -pipe -ascii -delete=col,rec_name,ioc_name -delete=para,NumberCombined \
             | sddsprocess -pipe=in $output -print=column,Provider,ca \
             -print=column,ExpectNumeric,y,type=character \
             -print=column,ExpectFieldType,scalar \
             -define=column,ExpectElements,1,type=long \
             -print=parameter,InstallLocation,/home/helios/oagData/logging/srBPLD/srBPLD.mon } result] {
    puts stderr "Error: $result"
    exit
}

eval file delete $fileList

