private static function set_monitoring_interval()
 {
     if (pts_module::read_variable('MONITOR_INTERVAL') != null) {
         $proposed_interval = pts_module::read_variable('MONITOR_INTERVAL');
         if (is_numeric($proposed_interval) && $proposed_interval >= 0.5) {
             self::$sensor_monitoring_frequency = $proposed_interval;
         }
     }
 }
 public static function __post_test_run_process(&$result_file)
 {
     if (self::$individual_monitoring == false || count(self::$to_monitor) == 0) {
         return;
     }
     // The self::$test_run_timer to contain how long each individual test run lasted, should anything else past this point want to use the info...
     self::$test_run_timer = time() - self::$test_run_timer;
     // Let the system return to brief idling..
     sleep(self::$sensor_monitoring_frequency * 8);
     if (pts_module::read_variable('PERFORMANCE_PER_WATT')) {
         $sensor = array('sys', 'power');
         $sensor_results = self::parse_monitor_log('logs/' . phodevi::sensor_identifier($sensor), self::$individual_test_run_offsets[phodevi::sensor_identifier($sensor)]);
         if (count($sensor_results) > 2 && self::$successful_test_run_request) {
             // Copy the value each time as if you are directly writing the original data, each succeeding time in the loop the used arguments gets borked
             $test_result = clone self::$successful_test_run_request;
             $process_perf_per_watt = true;
             $watt_average = array_sum($sensor_results) / count($sensor_results);
             switch (phodevi::read_sensor_unit($sensor)) {
                 case 'Milliwatts':
                     $watt_average = $watt_average / 1000;
                 case 'Watts':
                     break;
                 default:
                     $process_perf_per_watt = false;
             }
             if ($process_perf_per_watt && $watt_average > 0 && $test_result->test_profile->get_display_format() == 'BAR_GRAPH') {
                 $test_result->test_profile->set_identifier(null);
                 //$test_result->set_used_arguments_description(phodevi::sensor_name('sys.power') . ' Monitor');
                 //$test_result->set_used_arguments(phodevi::sensor_name('sys.power') . ' ' . $test_result->get_arguments());
                 $test_result->test_result_buffer = new pts_test_result_buffer();
                 if ($test_result->test_profile->get_result_proportion() == 'HIB') {
                     $test_result->test_profile->set_result_scale($test_result->test_profile->get_result_scale() . ' Per Watt');
                     $test_result->test_result_buffer->add_test_result(self::$result_identifier, pts_math::set_precision($test_result->active->get_result() / $watt_average));
                     $result_file->add_result($test_result);
                 } else {
                     if ($test_result->test_profile->get_result_proportion() == 'LIB') {
                         $test_result->test_profile->set_result_proportion('HIB');
                         $test_result->test_profile->set_result_scale('Performance Per Watt');
                         $test_result->test_result_buffer->add_test_result(self::$result_identifier, pts_math::set_precision(1 / $test_result->active->get_result() / $watt_average));
                         $result_file->add_result($test_result);
                     }
                 }
                 array_push(self::$perf_per_watt_collection, $test_result->active->get_result());
             }
         }
     }
     foreach (self::$to_monitor as $sensor) {
         $sensor_results = self::parse_monitor_log('logs/' . phodevi::sensor_identifier($sensor), self::$individual_test_run_offsets[phodevi::sensor_identifier($sensor)]);
         if (count($sensor_results) > 2) {
             // Copy the value each time as if you are directly writing the original data, each succeeding time in the loop the used arguments gets borked
             $test_result = clone self::$individual_test_run_request;
             $test_result->test_profile->set_identifier(null);
             $test_result->test_profile->set_result_proportion('LIB');
             $test_result->test_profile->set_display_format('LINE_GRAPH');
             $test_result->test_profile->set_result_scale(phodevi::read_sensor_unit($sensor));
             $test_result->set_used_arguments_description(phodevi::sensor_name($sensor) . ' Monitor');
             $test_result->set_used_arguments(phodevi::sensor_name($sensor) . ' ' . $test_result->get_arguments());
             $test_result->test_result_buffer = new pts_test_result_buffer();
             $test_result->test_result_buffer->add_test_result(self::$result_identifier, implode(',', $sensor_results), implode(',', $sensor_results));
             $result_file->add_result($test_result);
         }
         self::$individual_test_run_offsets[phodevi::sensor_identifier($sensor)] = array();
     }
     self::$successful_test_run_request = null;
     self::$individual_test_run_request = null;
     self::$monitor_test_count++;
     // Let the system rest before jumping to next test...
     sleep(self::$sensor_monitoring_frequency * 6);
 }