}
}
+############################################
+# A simple date string
+sub getTimeString {
+ my $timeStamp = localtime();
+
+ my @months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
+ my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
+ my ($sec,$minute,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
+ my $updatetime = sprintf("%03s, %02d %s %04d - %02d:%02d:%02d",$days[$wday], $mday, $months[$mon], 1900 + $year, $hour, $minute, $sec);
+ return $updatetime;
+ }
+
+
1;
__END__
use Time::HiRes qw(usleep time);
use List::Util qw[min max];
+use Encode qw(encode from_to);
+use JSON::XS;
#my $flog = Hmon::OpenLogfile();
#my $fqa = QA::OpenQAFile();
ylabel => "Sensor Number on Board",
ymin => -0.5,
ymax => 3.5,
-cbmax => "",#"40<*<1E5",
+cbmax => "15<*<35",
cbmin => 0.0,
cblabel => "Temperature [°C]",
noinit => 1,
while(1){
my $count = 0;
my $data;
+ my $mintemp = 100; my $maxtemp = 0;
my $magActive = trb_register_read_mem(0x0110, 0xe001,0,0x6) or sleep 5 and next;
my $rich = trb_register_read_mem(0x0110, 0xe010,0,0x60) or sleep 5 and next;
#print Dumper $magActive->{0x0110}[2];
if (($magActive->{0x0110}[$boardT] >> 8) == 0 ) {
#print "$boardT $sensT $t\n";
HPlot::PlotFill('RichInnerTemp',$t,$boardT,$sensT);#
+ $data->{$boardT}{$sensT} = $t;
+ $mintemp = $t if $t < $mintemp;
+ $maxtemp = $t if $t > $maxtemp;
my $reg = 4*$boardT+$sensT;
#print "$reg $t\n";
if ($cnt > 7) {$cnt =0;} else {$cnt++;}
HPlot::PlotDraw('RichMagnet');
HPlot::PlotDraw('RichInnerTemp');
HPlot::PlotDraw('RichInnerTempHist');
+
+
+ $data->{max} = $maxtemp;
+ $data->{min} = $mintemp;
+ $data->{symbol} = " °C";
+ $data->{title} = "RICH spoke temperature";
+
+
+ $data->{updatetime} = QA::getTimeString();
+
+ my $fh;
+ open($fh, ">", Hmon::HMONDIR."/files/richSpokeTemperature.json");
+ print $fh encode_json($data);
+ close $fh;
+
+
sleep 10;
}
$data->{symbol} = " °C";
$data->{title} = "RICH Temperature";
- my $timeStamp = localtime();
-
- my @months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
- my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
- my ($sec,$minute,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
- my $updatetime = sprintf("%03s, %02d %s %04d - %02d:%02d:%02d",$days[$wday], $mday, $months[$mon], 1900 + $year, $hour, $minute, $sec);
-
- $data->{updatetime} = $updatetime;
+ $data->{updatetime} = QA::getTimeString();
$data->{min} = $min;
$data->{symbol} = " °C";
$data->{title} = "RICH Temperature on Backplane";
- my $timeStamp = localtime();
-
- my @months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
- my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
- my ($sec,$minute,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
- my $updatetime = sprintf("%03s, %02d %s %04d - %02d:%02d:%02d",$days[$wday], $mday, $months[$mon], 1900 + $year, $hour, $minute, $sec);
-
- $data->{updatetime} = $updatetime;
+
+ $data->{updatetime} = QA::getTimeString();
#-------Software Interlock-------#
my $InterlockValHW = (($Interlock_value->{0x0110} || 0) & 0xfff)/16;
my $qastate = QA::GetQAState('below', $max, @QA::RichInnerTempLimits);
+ my $fh;
+ open($fh, "<", Hmon::HMONDIR."/files/richSpokeTemperature.json");
+ chomp(my @lines = <$fh>);
+ close $fh;
+
+ eval {
+ $data = decode_json(join " ",@lines);
+ 1;
+ }
+ or sleep 5 and next;
+ my $strspokes = sprintf("%i - %i", $data->{min}, $data->{max});
+
my $qastate_interlock = QA::GetQAState('below', $max, @QA::RichInnerTempLimits);
my $str = sprintf("%i - %i", $min, $max);
QA::WriteQALog($fqa,"rich","bkpl", 40, $qastate, "Temperature", $str,
- "Min/Max temperature in RICH " . $str . " °C<br> Software Interlock Temperature: " . $interlockTemperature . " °C | " .$InterlockActive ."<br>". $strHWInterlock);
+ "Min/Max temperature in RICH BKPL " . $str . " °C<br>Min/Max temperature on RICH spokes " . $strspokes . " °C<br> Software Interlock Temperature: " . $interlockTemperature . " °C | " .$InterlockActive ."<br>". $strHWInterlock);
- my $fh;
+
open($fh, ">", Hmon::HMONDIR."/files/richTemperatureBackplane.json");
print $fh encode_json($data);
close $fh;
# $data->{symbol} = " Hits/s";
# $data->{title} = "Mean DiRICH TDC Rate";
- # my $timeStamp = localtime();
+
+ # $data->{updatetime} = getTimeString;
- # my @months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
- # my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
- # my ($sec,$minute,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
- # my $updatetime = sprintf("%03s, %02d %s %04d - %02d:%02d:%02d",$days[$wday], $mday, $months[$mon], 1900 + $year, $hour, $minute, $sec);
-
- # $data->{updatetime} = $updatetime;
-
- #print Dumper $data;
# my $fh;
# open($fh, ">", Hmon::HMONDIR."/files/richMeanRateDiRICH.json");
# print $fh encode_json($data);