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

set root DAQPSStats

# S???:*PS:BuckTempM
# S???:*PS:CapacitorTempM
# S???:*PS:AdcTempM
# S???:*PS:CarrierTempM
# S???:*PS:HeatSinkTempM
# S???:*PS:DampResTempM

set pvList [exec sddsprocess /home/helios/oagData/pvdata/iocRecNamesOAG.sdds -pipe=out \
                "-match=column,rec_name=*DAQPS:Stats:LtwData*.mad*,rec_name=*DAQPS:Stats:LtwData*.max*,|,rec_name=*DAQPS:Stats:LtwData*.mean*,|,rec_name=*DAQPS:Stats:LtwData*.min*,|,rec_name=*DAQPS:Stats:LtwData*.min*,|,rec_name=*DAQPS:Stats:LtwData.count,|,rec_name=*DAQPS:Stats:LtwData.endTime,|,rec_name=*DAQPS:Stats:LtwData.objectTime,|,rec_name=*DAQPS:Stats:LtwData.startTime,|,rec_name=*DAQPS:Stats:LtwData.objectId,|,rec_name=*DAQPS:Stats:LtwData.sampleInterval,|,rec_name=S???:*PS:BuckTempM,|,rec_name=S???:*PS:CapacitorTempM,|,rec_name=S???:*PS:AdcTempM,|,rec_name=S???:*PS:CarrierTempM,|,rec_name=S???:*PS:HeatSinkTempM,|,rec_name=S???:*PS:DampResTempM,|" | \
                sddssort -pipe -col=rec_name -num | \
                sdds2stream -pipe=in -col=rec_name,Provider]

set data(Layout.DataMode.Mode) "ascii"

set data(ParameterNames) "InstallLocation"
set data(Parameter.InstallLocation) [list /home/helios/oagData/logging/${root}/${root}.mon]

set data(ColumnNames) "ControlName ReadbackName Units Provider ExpectNumeric ExpectFieldType ExpectElements"
set data(ColumnInfo.ControlName)     "type SDDS_STRING"
set data(ColumnInfo.ReadbackName)    "type SDDS_STRING"
set data(ColumnInfo.Units)           "type SDDS_STRING"
set data(ColumnInfo.Provider)        "type SDDS_STRING"
set data(ColumnInfo.ExpectNumeric)   "type SDDS_CHARACTER"
set data(ColumnInfo.ExpectFieldType) "type SDDS_STRING"
set data(ColumnInfo.ExpectElements)  "type SDDS_LONG"

foreach "pv provider" $pvList {
    lappend data(Column.ControlName)     $pv
    lappend data(Column.ReadbackName)    $pv
    lappend data(Column.Units)           ""
    lappend data(Column.Provider)        $provider
    lappend data(Column.ExpectNumeric)   "y"
    lappend data(Column.ExpectFieldType) "scalar"
    lappend data(Column.ExpectElements)  "1"
}
set data(Column.ControlName)     [list $data(Column.ControlName)]
set data(Column.ReadbackName)    [list $data(Column.ReadbackName)]
set data(Column.Units)           [list $data(Column.Units)]
set data(Column.Provider)        [list $data(Column.Provider)]
set data(Column.ExpectNumeric)   [list $data(Column.ExpectNumeric)]
set data(Column.ExpectFieldType) [list $data(Column.ExpectFieldType)]
set data(Column.ExpectElements)  [list $data(Column.ExpectElements)]

sdds save ./../DataLogging/${root}.mon data
