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

# input files:
# processWater.sector.template processWater.set1.mon processWater.set2.mon processWater.set3.mon
#
# output file:
# processWater.mon
# airTemps.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


# Allen-Bradley controller every two sectors starting at 2.
for {set sector 1} {$sector<41} {incr sector} {
    set s2 [expr $sector + 1]
    if {$s2 == 41} {set s2 1}
    # sectoru is the unformatted sector value.
    exec sddsprocess ./../DataLogging/processWater.sector.template /tmp/processWater.sector.$sector \
      -reedit=column,ControlName,%/<sector>/[format %02ld $sector]/%/<sectoru>/$sector/ \
      -reedit=column,ReadbackName,%/<sector>/[format %02ld $sector]/%/<sectoru>/$sector/%/<sector2>/[format %02ld $s2]/
    lappend fileList /tmp/processWater.sector.$sector
}

if {[catch {eval exec sddscombine $fileList ./../DataLogging/processWater.set1.mon \
              ./../DataLogging/processWater.set2.mon ./../DataLogging/processWater.set3.mon -merge -pipe=out \
              | sddsprocess -pipe -print=col,ControlType,pv \
              | sddssort -pipe -column=ControlName -numericHigh -unique \
              | sddsprocess -pipe=in /tmp/processWater.mon \
              -edit=column,SimpleControlName,ControlName,S?/./K} result]} {
    puts "error: $result"
    eval exec rm $fileList
    exit
}

eval exec rm $fileList

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

file delete -force /tmp/processWater.mon 

exec sddsprocess /tmp/processWater.mon2 -pipe=out -match=column,Type=Air | sddsprocess -pipe=in ./../DataLogging/airTemps.mon -delete=column,Type
exec sddsprocess /tmp/processWater.mon2 -pipe=out -match=column,Type=Water | sddsprocess -pipe=in ./../DataLogging/processWater.mon -delete=column,Type

file delete -force /tmp/processWater.mon2


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

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

puts "use cppatch to install processWater.mon and airTemps.mon"
