Пример #1
0
 /**
  * get voltage information
  *
  * @return void
  */
 private function _voltage()
 {
     foreach ($this->_lines as $line) {
         $buffer = preg_split("/[ ]+\\|[ ]+/", $line);
         if ($buffer[2] == "Volts" && $buffer[5] != "na") {
             $dev = new SensorDevice();
             $dev->setName($buffer[0]);
             $dev->setValue($buffer[1]);
             $dev->setMin($buffer[5]);
             $dev->setMax($buffer[8]);
             $this->mbinfo->setMbVolt($dev);
         }
     }
 }
Пример #2
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     foreach ($this->_lines as $line) {
         $buffer = preg_split("/\\s*\\|\\s*/", $line);
         if (isset($buffer[2]) && $buffer[2] == "Fan" && $buffer[1] == "Full" && isset($buffer[6]) && preg_match("/^(\\S+)\\sRPM\$/", $buffer[6], $value)) {
             $dev = new SensorDevice();
             $dev->setName($buffer[4]);
             $dev->setValue($value[1]);
             if (isset($buffer[7]) && $buffer[7] == "Thresholds") {
                 if (isset($buffer[8]) && preg_match("/^lo-crit\\s(\\S+)\\s*\$/", $buffer[8], $limits) || isset($buffer[9]) && preg_match("/^lo-crit\\s(\\S+)\\s*\$/", $buffer[9], $limits) || isset($buffer[10]) && preg_match("/^lo-crit\\s(\\S+)\\s*\$/", $buffer[10], $limits) || isset($buffer[11]) && preg_match("/^lo-crit\\s(\\S+)\\s*\$/", $buffer[11], $limits)) {
                     $dev->setMin($limits[1]);
                 } elseif (isset($buffer[8]) && preg_match("/^hi-crit\\s(\\S+)\\s*\$/", $buffer[8], $limits) || isset($buffer[9]) && preg_match("/^hi-crit\\s(\\S+)\\s*\$/", $buffer[9], $limits) || isset($buffer[10]) && preg_match("/^hi-crit\\s(\\S+)\\s*\$/", $buffer[10], $limits) || isset($buffer[11]) && preg_match("/^hi-crit\\s(\\S+)\\s*\$/", $buffer[11], $limits)) {
                     if ($limits[1] < $value[1]) {
                         //max instead min issue
                         $dev->setMin($limits[1]);
                     }
                 }
             }
             if ($buffer[5] != "OK") {
                 $dev->setEvent($buffer[5]);
             }
             $this->mbinfo->setMbFan($dev);
         }
     }
 }
Пример #3
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     $ar_buf = preg_split("/\t+/", $this->_lines);
     $dev1 = new SensorDevice();
     $dev1->setName('fan1');
     $dev1->setValue($ar_buf[4]);
     $dev1->setMin(3000);
     $this->mbinfo->setMbFan($dev1);
     $dev2 = new SensorDevice();
     $dev2->setName('fan2');
     $dev2->setValue($ar_buf[5]);
     $dev2->setMin(3000);
     $this->mbinfo->setMbFan($dev2);
     $dev3 = new SensorDevice();
     $dev3->setName('fan3');
     $dev3->setValue($ar_buf[6]);
     $dev3->setMin(3000);
     $this->mbinfo->setMbFan($dev3);
 }
Пример #4
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     for ($intPosi = 13; $intPosi < 16; $intPosi++) {
         if (!isset($this->_buf_value[$intPosi])) {
             continue;
         }
         preg_match("/([0-9\\.])*/", str_replace(",", ".", $this->_buf_value[$intPosi]), $hits);
         $dev = new SensorDevice();
         $dev->setName($this->_buf_label[$intPosi]);
         $dev->setValue($hits[0]);
         $dev->setMin(3000);
         $this->mbinfo->setMbFan($dev);
     }
 }
Пример #5
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     foreach ($this->_lines as $line) {
         $buffer = preg_split("/[ ]+\\|[ ]+/", $line);
         if ($buffer[2] == "RPM" && $buffer[3] != "na") {
             $dev = new SensorDevice();
             $dev->setName($buffer[0]);
             $dev->setValue($buffer[1]);
             $dev->setMin($buffer[8]);
             $this->mbinfo->setMbFan($dev);
         }
     }
 }
Пример #6
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     foreach ($this->_lines as $line) {
         $buffer = preg_split("/\\s*\\|\\s*/", $line);
         if ($buffer[2] == "RPM" && $buffer[3] != "na") {
             $dev = new SensorDevice();
             $dev->setName($buffer[0]);
             $dev->setValue($buffer[1]);
             if ($buffer[5] != "na") {
                 $dev->setMin($buffer[5]);
             } elseif ($buffer[8] != "na" && $buffer[8] < $buffer[1]) {
                 //max instead min issue
                 $dev->setMin($buffer[8]);
             }
             /* incorrect events recognition
                switch ($buffer[3]) {
                    case "nr": $dev->setEvent("Non-Recoverable"); break;
                    case "cr": $dev->setEvent("Critical"); break;
                    case "nc": $dev->setEvent("Non-Critical"); break;
                } */
             $this->mbinfo->setMbFan($dev);
         }
     }
 }
Пример #7
0
 /**
  * get current information
  *
  * @return void
  */
 private function _current($hwpath)
 {
     $sensor = glob($hwpath . "curr*_input", GLOB_NOSORT);
     if (($total = count($sensor)) > 0) {
         $buf = "";
         for ($i = 0; $i < $total; $i++) {
             if (CommonFunctions::rfts($sensor[$i], $buf, 1, 4096, false) && trim($buf) != "") {
                 $dev = new SensorDevice();
                 $dev->setValue(trim($buf) / 1000);
                 $label = preg_replace("/_input\$/", "_label", $sensor[$i]);
                 $alarm = preg_replace("/_input\$/", "_alarm", $sensor[$i]);
                 $max = preg_replace("/_input\$/", "_max", $sensor[$i]);
                 $min = preg_replace("/_input\$/", "_min", $sensor[$i]);
                 if (CommonFunctions::fileexists($label) && CommonFunctions::rfts($label, $buf, 1, 4096, false) && trim($buf) != "") {
                     $dev->setName(trim($buf));
                 } else {
                     $labelname = trim(preg_replace("/_input\$/", "", pathinfo($sensor[$i], PATHINFO_BASENAME)));
                     if ($labelname !== "") {
                         $dev->setName($labelname);
                     } else {
                         $dev->setName('unknown');
                     }
                 }
                 if (CommonFunctions::fileexists($max) && CommonFunctions::rfts($max, $buf, 1, 4096, false) && trim($buf) != "") {
                     $dev->setMax(trim($buf) / 1000);
                 }
                 if (CommonFunctions::fileexists($min) && CommonFunctions::rfts($min, $buf, 1, 4096, false) && trim($buf) != "") {
                     $dev->setMin(trim($buf) / 1000);
                 }
                 if (CommonFunctions::fileexists($alarm) && CommonFunctions::rfts($alarm, $buf, 1, 4096, false) && trim($buf) === "1") {
                     $dev->setEvent("Alarm");
                 }
                 $this->mbinfo->setMbCurrent($dev);
             }
         }
     }
 }
 /**
  * get voltage information
  *
  * @return void
  */
 private function _voltage()
 {
     $ar_buf = array();
     foreach ($this->_lines as $line) {
         $data = array();
         if (preg_match("/(.*):(.*)\\((.*)=(.*),(.*)=(.*)\\)(.*)/", $line, $data)) {
         } elseif (preg_match("/(.*):(.*)\\(/", $line, $data)) {
         } else {
             preg_match("/(.*):(.*)/", $line, $data);
         }
         if (count($data) > 1) {
             $temp = substr(trim($data[2]), -2);
             switch ($temp) {
                 case " V":
                     array_push($ar_buf, $line);
             }
         }
     }
     foreach ($ar_buf as $line) {
         $data = array();
         if (preg_match("/(.*):(.*) V[ ]*\\((.*)=(.*) V,(.*)=(.*) V\\)(.*)\\)/", $line, $data)) {
         } elseif (preg_match("/(.*):(.*) V[ ]*\\((.*)=(.*) V,(.*)=(.*) V\\)(.*)/", $line, $data)) {
         } elseif (preg_match("/(.*):(.*) V[ \t]+/", $line, $data)) {
         } else {
             preg_match("/(.*):(.*) V\$/", $line, $data);
         }
         foreach ($data as $key => $value) {
             if (preg_match("/^\\+?(-?[0-9\\.]+)\$/", trim($value), $newvalue)) {
                 $data[$key] = 0 + trim($newvalue[1]);
             } else {
                 $data[$key] = trim($value);
             }
         }
         if (isset($data[1])) {
             $dev = new SensorDevice();
             $dev->setName($data[1]);
             $dev->setValue($data[2]);
             if (isset($data[4])) {
                 $dev->setMin($data[4]);
             }
             if (isset($data[6])) {
                 $dev->setMax($data[6]);
             }
             if (preg_match("/\\sALARM(\\s*)\$/", $line)) {
                 $dev->setEvent("Alarm");
             }
             $this->mbinfo->setMbVolt($dev);
         }
     }
 }
Пример #9
0
 /**
  * get fan information
  *
  * @return void
  */
 private function _fans()
 {
     foreach ($this->_lines as $line) {
         $buffer = preg_split("/\\s*\\|\\s*/", $line);
         if ($buffer[2] == "Fan" && $buffer[11] != "N/A" && $buffer[4] == "RPM") {
             $dev = new SensorDevice();
             $dev->setName($buffer[1]);
             $dev->setValue($buffer[3]);
             if ($buffer[6] != "N/A") {
                 $dev->setMin($buffer[6]);
             } elseif ($buffer[9] != "N/A" && $buffer[9] < $buffer[3]) {
                 //max instead min issue
                 $dev->setMin($buffer[9]);
             }
             if ($buffer[11] != "'OK'") {
                 $dev->setEvent(trim($buffer[11], "'"));
             }
             $this->mbinfo->setMbFan($dev);
         }
     }
 }