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

# Input files: ../DataLogging/IDs.mon.template
#              ../DataLogging/IDs.mon.steering.template
#              ../DataLogging/IDs.mon.misc
#
# Output file: ../DataLogging/IDs.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 recordFile /home/helios/oagData/pvdata/iocRecNamesOAG.sdds

for {set sector 1} {$sector<41} {incr sector} {
    set ssector [format %02ld $sector]
    exec sddsprocess ../DataLogging/IDs.mon.template ../DataLogging/IDs.mon.US.$sector \
      -reedit=column,ControlName,%/<sector>/$ssector/%/DSID/USID/ \
      -reedit=column,ReadbackName,%/<sector>/$ssector/%/DSID/USID/ 
    exec sddsprocess ../DataLogging/IDs.mon.template ../DataLogging/IDs.mon.DS.$sector \
      -reedit=column,ControlName,%/<sector>/$ssector/ \
      -reedit=column,ReadbackName,%/<sector>/$ssector/
    lappend fileList ../DataLogging/IDs.mon.US.$sector
    lappend fileList ../DataLogging/IDs.mon.DS.$sector

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

if [catch {eval exec sddscombine $fileList ../DataLogging/IDs.mon.misc -merge -pipe=out  \
             | sddsprocess -pipe \
             -edit=col,rec_name,ControlName,S?/./D \
             | sddssort  -pipe \
             -column=rec_name -pipe \
             | sddsxref -pipe $recordFile \
             -reuse -nowarnings  -match=rec_name  \
             | sddsconvert -pipe -delete=col,rec_name -ascii -delete=para,NumberCombined \
             | sddssort -pipe -column=ReadbackName -num -unique \
             | sddsprocess -pipe=in ../DataLogging/IDs.mon \
             -print=parameter,InstallLocation,/home/helios/oagData/monitoring/IDs/IDs.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

