#!/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 systemClock [clock seconds] 
set day [clock format $systemClock -format %j]
set dataDir /home/helios/oagData/monitoring/IDs
set dir /net/epics-ops/web_roots/ops/AutoSavedPlots
set year [clock format $systemClock -format %Y]
set month [clock format $systemClock -format %m%d]
set yesterdayClock [clock scan yesterday]
set day0  [clock format $yesterdayClock -format %j]
set year0 [clock format $yesterdayClock -format %Y]
set month0 [clock format $yesterdayClock -format %m%d]
set dateTag0 "$year0-$day0-$month0" 
if {[file exists $dataDir/IDs-${dateTag0}.gz]} {
    set fileDay0 $dataDir/IDs-${dateTag0}.gz
} else {
    set fileDay0 $dataDir/IDs-${dateTag0}.0001
}
set dateTag "$year-$day-$month" 
set fileDay1 $dataDir/IDs-${dateTag}.0001
set dataFile $dir/IDsCPUtemp
if {[catch {exec sddscombine $fileDay0 $fileDay1 $dataFile -merge -overWrite} results]} {
    #The files sometimes don't exists at midnight.
    exit
}


set printoutFile  $dir/CPUplots.html
global printoutFile

catch {exec sddsplot $dataFile -columnNames=Time,ID04b:CPUTimeNegative\
         -device=png\
         -output=$dir/TimeNeg.png \
         "-topline=Duration of last negative state (seconds)"\
         -range=ymin=1\
         -ticks=xtime\
         -mode=y=log,y=special\
         -filter=column,Time,[expr [clock seconds]-24*3600],1e100}


catch {exec sddsplot $dataFile -columnNames=Time,ID04b:CPUTimePositive\
         -device=png\
         -output=$dir/TimePos.png\
         "-topline=Duration of last positive state (seconds)"\
         -range=ymin=1\
         -ticks=xtime\
         -mode=y=log,y=special\
         -filter=column,Time,[expr [clock seconds]-24*3600],1e100}


catch {exec sddsplot $dataFile -columnNames=Time,ID04b:LastTrigPeriod\
         -device=png\
         -output=$dir/TriggerPeriod.png\
         "-topline=Last trigger period (seconds)"\
         -range=ymin=1\
         -mode=y=log,y=special\
         -ticks=xtime\
         -filter=column,Time,[expr [clock seconds]-24*3600],1e100}


exec sddsmakedataset $dir/enumFields.sdds \
  -column=IndexValue,type=long -data=0,1,2,3,4 \
  -column=FieldString,type=string -data=CW/RCP,CCW/LCP,V,H,CW/CCW

exec sddsxref $dataFile $dir/enumFields.sdds $dir/newDataFile.sdds \
  -reuse=rows,page -equate=ID4:CPU:mode=IndexValue \
  -take=FieldString

exec sddsplot -column=Time,FieldString $dir/newDataFile.sdds\
  -device=png\
  -output=$dir/CPUmode.png\
  -range=yMinimum=4\
  "-topline=CPU mode"\
  -ticks=xtime\
  -filter=column,Time,[expr [clock seconds]-24*3600],1e100\ 


set dfile  [open $printoutFile w]
puts $dfile "<html><head><title>Plots of SR CPU activity</title></head>"
puts $dfile "<body bgcolor=\#ffffff>"
puts $dfile "<img  src='CPUmode.png'><img  src='TriggerPeriod.png'>"
puts $dfile "<p>"
puts $dfile "<img src='TimeNeg.png'>"
puts $dfile "<img src='TimePos.png'><p>"


after 1000

file delete $dir/newDataFile.sdds $dir/enumFields.sdds $dataFile
