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

# Input files: ../DataLogging/BMs.mon.template
#              ../DataLogging/BMs.mon.steering.template
#              ../DataLogging/BMs.mon.misc
#
# Output file: ../DataLogging/BMs.mon


set recordFile /home/helios/oagData/pvdata/iocRecNamesOAG.sdds

set fileList ""
for {set sector 1} {$sector<41} {incr sector} {
    set ssector [format %02ld $sector]
    if [catch {exec sddsprocess ../DataLogging/BMs.mon.template ../DataLogging/BMs.mon.$sector\
                 -reedit=column,ControlName,%/<sector>/$ssector/ \
                 -reedit=column,ReadbackName,%/<sector>/$ssector/ \
                 -reedit=column,Beamline,%/<sector>/S$ssector/ } result] {
        puts stderr "Error: $result"
        exit
    }
    lappend fileList ../DataLogging/BMs.mon.$sector

    if [catch {exec replaceText ../DataLogging/BMs.mon.steering.template ../DataLogging/BMs.mon.Yp.$sector \
                 -orig=<sector>,<steer> -replace=$ssector,Yp} result] {
        return -code error "Error: $result"
    }
    lappend fileList ../DataLogging/BMs.mon.Yp.$sector

       
    #scan $sector %ld sector
}

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