use QA;
use Getopt::Long;
use Data::Dumper;
+use Perl2Epics;
my $magnet_on = 1 - $QA::MagnetOff;
my %range_list = (
- 'Time' => {},
- 'TC1200' => {'min' => 5.2 , 'max' =>5.6 },
- 'TC1266' => {'min' => 4.9 , 'max' =>5.1 },
- 'TC1202' => {'min' => 4.4 , 'max' =>4.6 },
- 'TC1208' => {'min' => 4.5 , 'max' =>4.8 },
- 'TC1214' => {'min' => 4.4 , 'max' =>4.6 },
- 'TC1220' => {'min' => 4.4 , 'max' =>4.6 },
- 'TC1226' => {'min' => 4.5 , 'max' =>4.8 },
- 'TC1232' => {'min' => 4.4 , 'max' =>4.6 },
- 'TC1206' => {'min' => 4.0 , 'max' =>6.0 },
- 'TC1212' => {'min' => 3.7 , 'max' =>6.0 },
- 'TC1218' => {'min' => 6.0 , 'max' =>7.0 },
- 'TC1224' => {'min' => 6.0 , 'max' =>8.0 },
- 'TC1230' => {'min' => 4.6 , 'max' =>8.0 },
- 'TC1236' => {'min' => 4.4 , 'max' =>6.0 },
- 'TC1238' => {'min' => 4.6 , 'max' =>4.9 },
- 'TC1248' => {'min' => 4.5 , 'max' =>4.7 },
- 'FI1400' => {'min' => 0.36 , 'max' =>0.62 },
- 'PSUI_rbk' => {'min' => 2990 , 'max' =>3210 },
- 'PSUV_rbk' => {'min' => 0 , 'max' =>1 },
- 'BBI' => {'min' => 419 , 'max' =>620 },
- 'LL1708' => {'min' => 55.2 , 'max' =>63.0 },
- 'TP1240' => {'min' => 75.5 , 'max' =>89.0 , 'cal_max' => 2},
- 'PI2610' => {'min' => 1.7 , 'max' =>3.1 },
- 'TP2200' => {'min' => 83.0 , 'max' =>85.5 , 'cal_max' => 2},
- 'TP2202' => {'min' => 81.0 , 'max' =>87.0 , 'cal_max' => 2},
- 'TP2204' => {'min' => 81.0 , 'max' =>85.5 , 'cal_max' => 2},
- 'TP2206' => {'min' => 81.0 , 'max' =>85.0 , 'cal_max' => 2},
- 'TP2208' => {'min' => 87.0 , 'max' =>95.0 , 'cal_max' => 2},
- 'TP2210' => {'min' => 80.0 , 'max' =>85.0 , 'cal_max' => 2},
- 'TP2212' => {'min' => 82.0 , 'max' =>92.0 , 'cal_max' => 2},
- 'TP2214' => {'min' => 80.0 , 'max' =>85.0 , 'cal_max' => 2},
- 'TP2216' => {'min' => 80.0 , 'max' =>84.0 , 'cal_max' => 2},
- 'TP2218' => {'min' => 84.0 , 'max' =>90.5 , 'cal_max' => 2},
- 'TP2220' => {'min' => 80.0 , 'max' =>84.0 , 'cal_max' => 2},
- 'TP2222' => {'min' => 80.0 , 'max' =>86.0 , 'cal_max' => 2},
- 'TP2224' => {'min' => 81.0 , 'max' =>85.0 , 'cal_max' => 2},
- 'TP2226' => {'min' => 80.0 , 'max' =>100 , 'cal_max' => 2},
- 'TP2228' => {'min' => 85 , 'max' =>94.0 , 'cal_max' => 2},
- 'TP2230' => {'min' => 80.0 , 'max' =>85.5 , 'cal_max' => 2},
- 'PI2600' => {'min' => 1.65 , 'max' =>2.0 },
- 'VG3000' => {'min' => -6.5 , 'max' =>-5.5 },
- 'PI1600' => {'min' => 2.94 , 'max' =>3.03 },
- 'PI1602' => {'min' => 1.30 , 'max' =>1.37 },
- 'PI1604' => {'min' => 2.7 , 'max' =>2.99 },
- 'PI1612' => {'min' =>0 , 'max' =>12.0},
- 'EV1100R' => {'min' => 27 , 'max' =>45 },
- 'EV1122R' => {'min' => 55 , 'max' =>61 },
- 'EV1128R' => {'min' => 73 , 'max' =>88 },
- 'TC1200M' => {'min' => 6.5 , 'max' =>8.5 },
- 'PI1600I' => {'min' => 1.28 , 'max' =>1.37 },
- 'MV2102X' => {},
- 'MV2102L' => {},
- 'MV2102LUX(a)' => {'min' => .8 , 'max' =>8.0},
- 'MV2102U' => {},
- 'EV2128E' => {},
- 'EV2128F' => {},
- 'EV2128FG(a)' => {},
- 'EV2128G' => {},
- 'EV2128L' => {},
- 'EV2128LUX(a)' => {},
- 'EV2128U' => {},
- 'EV2128X' => {},
- 'HR3104(a)' => {},
- 'HR3108R' => {},
- 'MV1106R' => {},
- );
+ 'Time' => {},
+ 'TC1200' => {'min' => 5.2 , 'max' =>5.6 },
+ 'TC1266' => {'min' => 4.9 , 'max' =>5.1 },
+ 'TC1202' => {'min' => 4.4 , 'max' =>4.6 },
+ 'TC1208' => {'min' => 4.5 , 'max' =>4.8 },
+ 'TC1214' => {'min' => 4.4 , 'max' =>4.6 },
+ 'TC1220' => {'min' => 4.4 , 'max' =>4.6 },
+ 'TC1226' => {'min' => 4.5 , 'max' =>4.8 },
+ 'TC1232' => {'min' => 4.4 , 'max' =>4.6 },
+ 'TC1206' => {'min' => 4.0 , 'max' =>6.0 },
+ 'TC1212' => {'min' => 3.7 , 'max' =>6.0 },
+ 'TC1218' => {'min' => 6.0 , 'max' =>7.0 },
+ 'TC1224' => {'min' => 6.0 , 'max' =>8.0 },
+ 'TC1230' => {'min' => 4.6 , 'max' =>8.0 },
+ 'TC1236' => {'min' => 4.4 , 'max' =>6.0 },
+ 'TC1238' => {'min' => 4.6 , 'max' =>4.9 },
+ 'TC1248' => {'min' => 4.5 , 'max' =>4.7 },
+ 'FI1400' => {'min' => 0.36 , 'max' =>0.62 },
+ 'PSUI_rbk' => {'min' => 2990 , 'max' =>3210 },
+ 'PSUV_rbk' => {'min' => 0 , 'max' =>1 },
+ 'BBI' => {'min' => 419 , 'max' =>620 },
+ 'LL1708' => {'min' => 54 , 'max' =>65.0, 'minerror' => 53 },
+ 'TP1240' => {'min' => 75.5 , 'max' =>89.0 , 'cal_max' => 2},
+ 'PI2610' => {'min' => 1.7 , 'max' =>3.1 },
+ 'TP2200' => {'min' => 83.0 , 'max' =>85.5 , 'cal_max' => 2},
+ 'TP2202' => {'min' => 81.0 , 'max' =>87.0 , 'cal_max' => 2},
+ 'TP2204' => {'min' => 81.0 , 'max' =>85.5 , 'cal_max' => 2},
+ 'TP2206' => {'min' => 81.0 , 'max' =>85.0 , 'cal_max' => 2},
+ 'TP2208' => {'min' => 87.0 , 'max' =>95.0 , 'cal_max' => 2},
+ 'TP2210' => {'min' => 80.0 , 'max' =>85.0 , 'cal_max' => 2},
+ 'TP2212' => {'min' => 82.0 , 'max' =>92.0 , 'cal_max' => 2},
+ 'TP2214' => {'min' => 80.0 , 'max' =>85.0 , 'cal_max' => 2},
+ 'TP2216' => {'min' => 80.0 , 'max' =>84.0 , 'cal_max' => 2},
+ 'TP2218' => {'min' => 84.0 , 'max' =>90.5 , 'cal_max' => 2},
+ 'TP2220' => {'min' => 80.0 , 'max' =>84.0 , 'cal_max' => 2},
+ 'TP2222' => {'min' => 80.0 , 'max' =>86.0 , 'cal_max' => 2},
+ 'TP2224' => {'min' => 81.0 , 'max' =>85.0 , 'cal_max' => 2},
+ 'TP2226' => {'min' => 80.0 , 'max' =>100 , 'cal_max' => 2},
+ 'TP2228' => {'min' => 85 , 'max' =>94.0 , 'cal_max' => 2},
+ 'TP2230' => {'min' => 80.0 , 'max' =>85.5 , 'cal_max' => 2},
+ 'PI2600' => {'min' => 1.65 , 'max' =>2.0 },
+ 'VG3000' => {'min' => -6.5 , 'max' =>-5.5 },
+ 'PI1600' => {'min' => 2.94 , 'max' =>3.03 },
+ 'PI1602' => {'min' => 1.30 , 'max' =>1.37 },
+ 'PI1604' => {'min' => 2.7 , 'max' =>2.99 },
+ 'PI1612' => {'min' =>0 , 'max' =>12.0},
+ 'EV1100R' => {'min' => 27 , 'max' =>45 },
+ 'EV1122R' => {'min' => 55 , 'max' =>61 },
+ 'EV1128R' => {'min' => 73 , 'max' =>88 },
+ 'TC1200M' => {'min' => 6.5 , 'max' =>8.5 },
+ 'PI1600I' => {'min' => 1.28 , 'max' =>1.37 },
+ 'MV2102X' => {},
+ 'MV2102L' => {},
+ 'MV2102LUX(a)' => {'min' => .8 , 'max' =>8.0},
+ 'MV2102U' => {},
+ 'EV2128E' => {},
+ 'EV2128F' => {},
+ 'EV2128FG(a)' => {},
+ 'EV2128G' => {},
+ 'EV2128L' => {},
+ 'EV2128LUX(a)' => {},
+ 'EV2128U' => {},
+ 'EV2128X' => {},
+ 'HR3104(a)' => {},
+ 'HR3108R' => {},
+ 'MV1106R' => {},
+ );
}
}
+Perl2Epics::Connect("TS105", "HAD:CRYO:TS105");
+my $callEmergency = 0;
-while(1) {
- my $fatal_error_string = "";
- my $current = "OFF";
- my $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"ls -rtl /home/magnet/Hades_Magnet_Labview/Log/log1 | tail -n 1\"";
- my @get_filename_result = qx($get_filename_command);
- #printf("$get_filename_result[0]");
+while (1) {
- my $title = "Magnet";
- my $value = "";
- my $longtext = "";
- my $time = "--";
+ my $fatal_error_string = "";
+ my $current = "OFF";
+ my $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"ls -rtl /home/magnet/Hades_Magnet_Labview/Log/log1 | tail -n 1\"";
+ my @get_filename_result = qx($get_filename_command);
+ #printf("$get_filename_result[0]");
- if ((scalar @get_filename_result) != 1) {
+ my $title = "Magnet";
+ my $value = "";
+ my $longtext = "";
+ my $time = "--";
+
+
+#ssh Log Loop
+ if ((scalar @get_filename_result) != 1) {
#if (!defined $ssh_fh || eof($ssh_fh)) {
- $red_error_counter++;
- $fatal_error_string = "No ssh connection to magnet PC";
- } else {
- my ($Sekunden, $Minuten, $Stunden, $Tag, $Monat,
- $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
- $Monat += 1;
- $Jahr += 1900;
- my $log_localtime = sprintf('%02d%02d%04d', $Tag, $Monat, $Jahr);
+ $red_error_counter++;
+ $fatal_error_string = "No ssh connection to magnet PC";
+ } else {
+ my ($Sekunden, $Minuten, $Stunden, $Tag, $Monat,
+ $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
+ $Monat += 1;
+ $Jahr += 1900;
+ my $log_localtime = sprintf('%02d%02d%04d', $Tag, $Monat, $Jahr);
- my @get_filename_array = split(/\s+/,$get_filename_result[0]);
- #printf("@get_filename_array\n");
- $get_filename_array[8] =~ s/\n//g;
+ my @get_filename_array = split(/\s+/,$get_filename_result[0]);
+ #printf("@get_filename_array\n");
+ $get_filename_array[8] =~ s/\n//g;
- #printf("$log_localtime $get_filename_array[8]\n");
- if (!($log_localtime eq $get_filename_array[8])) {
- $fatal_error_string = "Log file is not up-to-date";
- $red_error_counter++;
+ #printf("$log_localtime $get_filename_array[8]\n");
+ if (!($log_localtime eq $get_filename_array[8])) {
+ $fatal_error_string = "Log file is not up-to-date";
+ $red_error_counter++;
+ } else {
+ my $log_file = "/home/magnet/Hades_Magnet_Labview/Log/log1/" . $log_localtime;
+ #check if file is increasing
+ if ($started == 1) {
+ $started = 0;
+ $last_mod_time = $Sekunden + 60*$Minuten + 60*60*$Stunden;
+ $last_size = $get_filename_array[4];
+ }
+ if ($last_size != $get_filename_array[4]) {
+ $last_mod_time = $Sekunden + 60*$Minuten + 60*60*$Stunden;
+ $last_size = $get_filename_array[4];
+ }
+ my $time_diff = ($Sekunden + 60*$Minuten + 60*60*$Stunden) - $last_mod_time;
+ if ($time_diff > 3*60+20) {
+ $fatal_error_string = "Log file not increased since $time_diff sec.";
+ $red_error_counter++;
} else {
- my $log_file = "/home/magnet/Hades_Magnet_Labview/Log/log1/" . $log_localtime;
- #check if file is increasing
- if ($started == 1) {
- $started = 0;
- $last_mod_time = $Sekunden + 60*$Minuten + 60*60*$Stunden;
- $last_size = $get_filename_array[4];
- }
- if ($last_size != $get_filename_array[4]) {
- $last_mod_time = $Sekunden + 60*$Minuten + 60*60*$Stunden;
- $last_size = $get_filename_array[4];
- }
- my $time_diff = ($Sekunden + 60*$Minuten + 60*60*$Stunden) - $last_mod_time;
- if ($time_diff > 3*60+20) {
- $fatal_error_string = "Log file not increased since $time_diff sec.";
- $red_error_counter++;
- } else {
- my $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"tail -n 1 /home/magnet/Hades_Magnet_Labview/Log/log1/$get_filename_array[8] \"";
- my @get_value_array = qx($get_filename_command);
- #printf("$get_filename_command");
- #printf("@get_value_array");
- $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"head -n 1 /home/magnet/Hades_Magnet_Labview/Log/log1/$get_filename_array[8] \"";
- my @get_header_array = qx($get_filename_command);
- #printf("@get_header_array");
- if (scalar @get_header_array != 1 || scalar @get_value_array != 1) {
- $fatal_error_string = "Log file has no header line";
- $red_error_counter++;
- } else {
- my @get_header_array_split = split(/\s+/,$get_header_array[0]);
- my @get_value_array_split = split(/\t+/,$get_value_array[0]);
- if ((scalar @get_header_array_split) != (scalar @get_value_array_split) + 1) {
- $fatal_error_string = "Log file entries not consistent";
- print scalar @get_header_array_split . ":" . scalar @get_value_array_split . "\n";
- $red_error_counter++;
- #print $fatal_error_string . "\n";
- } else {
- my $old_error_counter = $red_error_counter;
- my $old_red_error_counter = $red_error_counter;
- my $old_fatal_error_counter = $fatal_error_counter;
- $time = $get_value_array_split[0];
- $red_error_counter = 0;
- $fatal_error_counter = 0;
- $yellow_error_counter = 0;
- #print scalar @get_header_array_split . ":" . scalar @get_value_array_split . ":" . $nrOfValues . "\n";
- for (my $i = 1; $i < scalar @get_header_array_split; $i++) {
- #print $name . "\n";
-
- my $name = $get_header_array_split[$i];
- my $val = $get_value_array_split[$i-1];
- if (!defined $range_list_href->{$name}) {
- $fatal_error_string = "Found entry '$name' which is not existing";
- $red_error_counter = $old_red_error_counter + 1;
- } else {
- if($name eq 'PSUI_rbk') {
- $current = $val;
+ my $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"tail -n 1 /home/magnet/Hades_Magnet_Labview/Log/log1/$get_filename_array[8] \"";
+ my @get_value_array = qx($get_filename_command);
+ #printf("$get_filename_command");
+ #printf("@get_value_array");
+ $get_filename_command = "ssh -o BatchMode=yes magnet\@hadesp28 \"head -n 1 /home/magnet/Hades_Magnet_Labview/Log/log1/$get_filename_array[8] \"";
+ my @get_header_array = qx($get_filename_command);
+ #printf("@get_header_array");
+ if (scalar @get_header_array != 1 || scalar @get_value_array != 1) {
+ $fatal_error_string = "Log file has no header line";
+ $red_error_counter++;
+ } else {
+ my @get_header_array_split = split(/\s+/,$get_header_array[0]);
+ my @get_value_array_split = split(/\t+/,$get_value_array[0]);
+ if ((scalar @get_header_array_split) != (scalar @get_value_array_split) + 1) {
+ $fatal_error_string = "Log file entries not consistent";
+ print scalar @get_header_array_split . ":" . scalar @get_value_array_split . "\n";
+ $red_error_counter++;
+ #print $fatal_error_string . "\n";
+ } else {
+ my $old_error_counter = $red_error_counter;
+ my $old_red_error_counter = $red_error_counter;
+ my $old_fatal_error_counter = $fatal_error_counter;
+ $time = $get_value_array_split[0];
+ $red_error_counter = 0;
+ $fatal_error_counter = 0;
+ $yellow_error_counter = 0;
+ #print scalar @get_header_array_split . ":" . scalar @get_value_array_split . ":" . $nrOfValues . "\n";
+ for (my $i = 1; $i < scalar @get_header_array_split; $i++) {
+ #print $name . "\n";
+
+ my $name = $get_header_array_split[$i];
+ my $val = $get_value_array_split[$i-1];
+ if (!defined $range_list_href->{$name}) {
+ $fatal_error_string = "Found entry '$name' which is not existing";
+ $red_error_counter = $old_red_error_counter + 1;
+ } else {
+ if ($name eq 'PSUI_rbk') {
+ $current = $val;
+ }
+
+
+ $range_list_href->{$name}->{'value'} = $val;
+ if (defined $range_list_href->{$name}->{'max'} && $val > $range_list_href->{$name}->{'max'}) {
+ if ($yellow_error_counter>0) {
+ $fatal_error_string .= ", Value '$name' has $val, maximum is $range_list_href->{$name}->{'max'}";
+ } else {
+ $fatal_error_string .= "Value '$name' has $val, maximum is $range_list_href->{$name}->{'max'}";
+ }
+ $yellow_error_counter++;
+ $red_error_counter++ if (defined $range_list_href->{$name}->{'maxerror'} && $val > $range_list_href->{$name}->{'maxerror'});
+ $callEmergency++ if (defined $range_list_href->{$name}->{'maxerror'} && $val > $range_list_href->{$name}->{'maxerror'});;
+ }
+ if (defined $range_list_href->{$name}->{'min'} && $val < $range_list_href->{$name}->{'min'}) {
+ if ($yellow_error_counter>0) {
+ $fatal_error_string .= ", Value '$name' has $val, minimum is $range_list_href->{$name}->{'min'}";
+ } else {
+ $fatal_error_string .= "Value '$name' has $val, minimum is $range_list_href->{$name}->{'min'}";
+ }
+ $yellow_error_counter++;
+ $red_error_counter++ if (defined $range_list_href->{$name}->{'minerror'} && $val < $range_list_href->{$name}->{'minerror'});
+ $callEmergency++ if (defined $range_list_href->{$name}->{'minerror'} && $val < $range_list_href->{$name}->{'minerror'});
+ }
+ }
+ } #for
+ if ($yellow_error_counter>2) {
+ #print $yellow_error_counter . "\n";
+ $fatal_error_counter = $old_fatal_error_counter + $yellow_error_counter;
+ }
+ }
}
-
-
- $range_list_href->{$name}->{'value'} = $val;
- if (defined $range_list_href->{$name}->{'max'} && $val > $range_list_href->{$name}->{'max'}) {
- if ($yellow_error_counter>0) {
- $fatal_error_string .= ", Value '$name' has $val, maximum is $range_list_href->{$name}->{'max'}";
- } else {
- $fatal_error_string .= "Value '$name' has $val, maximum is $range_list_href->{$name}->{'max'}";
- }
- $yellow_error_counter++;
- }
- if (defined $range_list_href->{$name}->{'min'} && $val < $range_list_href->{$name}->{'min'}) {
- if ($yellow_error_counter>0) {
- $fatal_error_string .= ", Value '$name' has $val, minimum is $range_list_href->{$name}->{'min'}";
- } else {
- $fatal_error_string .= "Value '$name' has $val, minimum is $range_list_href->{$name}->{'min'}";
- }
- $yellow_error_counter++;
- }
- }
- } #for
- if ($yellow_error_counter>2) {
- #print $yellow_error_counter . "\n";
- $fatal_error_counter = $old_fatal_error_counter + $yellow_error_counter;
- }
- }
- }
- }
}
}
+ }
+#EPICS Loop
+ my $epics = Perl2Epics::GetAll();
+ my $val = $epics->{"TS105"}->{val} if $epics->{"TS105"}->{tme} != -1;
+# print Dumper $epics;
+ if(defined $val && ($val < 116 || $val > 121)) {
+ $red_error_counter++;
+ $fatal_error_string .= " Value \"TS105\" has $val, range is 116 to 121";
+ $callEmergency++;
+ $fatal_error_counter=4;
+ }
+ elsif (defined $val) {
+ $callEmergency=0;
+ }
- if(!$magnet_on) {$fatal_error_string .= "-- MAGNET IS DEFINED TO BE OFF --"; $value = "$current";}
- #print $fatal_error_string . "\n";
- if ($fatal_error_counter>3) {
- $fatal_error_string .= " (last good check at $last_good_time)";
- my $state = $magnet_on?(QA::FATAL):(QA::NOTE);
- QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
- } elsif ($red_error_counter > 0) {
- $fatal_error_string .= " (last good check at $last_good_time)";
- my $state = $magnet_on?(QA::ERROR):(QA::NOTE);
- QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
- } elsif ($yellow_error_counter > 0) {
- $fatal_error_string .= " (last good check at $last_good_time)";
- my $state = $magnet_on?(QA::WARN):(QA::NOTE);
- QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
- } else {
- $longtext = "Checked at $time";
- QA::WriteQALog($flog,"misc","magnet",$interval+20,QA::OK,$title,$value,$longtext);
- $last_good_time = $time;
- }
+ #Make Calls
+ printf "call Emergency: $callEmergency : not off: %d\n", !$QA::MagnetOff;
+ if(($callEmergency==3 || $callEmergency==6 ) && !$QA::MagnetOff) {
+ Hmon::CallScript("./magnet_emergency_call.sh","Magnet/Cryo","Fehler am Magnet");
+ }
+ if($callEmergency >= 60) {
+ $callEmergency = 0;
+ }
- sleep($interval);
+#Output
+ if (!$magnet_on) {
+ $fatal_error_string .= "-- MAGNET IS DEFINED TO BE OFF --"; $value = "$current";
+ }
+ #print $fatal_error_string . "\n";
+ if ($fatal_error_counter>3) {
+ $fatal_error_string .= " (last good check at $last_good_time)";
+ my $state = $magnet_on?(QA::FATAL):(QA::NOTE);
+ QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
+ } elsif ($red_error_counter > 0) {
+ $fatal_error_string .= " (last good check at $last_good_time)";
+ my $state = $magnet_on?(QA::ERROR):(QA::NOTE);
+ QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
+ } elsif ($yellow_error_counter > 0) {
+ $fatal_error_string .= " (last good check at $last_good_time)";
+ my $state = $magnet_on?(QA::WARN):(QA::NOTE);
+ QA::WriteQALog($flog,"misc","magnet",$interval+20,$state,$title,$value,$fatal_error_string);
+ } else {
+ $longtext = "Checked at $time";
+ QA::WriteQALog($flog,"misc","magnet",$interval+20,QA::OK,$title,$value,$longtext);
+ $last_good_time = $time;
+ }
+ print $fatal_error_string."\n";
+ sleep($interval);
}