/** * 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); } } }
/** * 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); } } }
/** * 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); }
/** * 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); } }
/** * 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); } } }
/** * 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); } } }
/** * 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); } } }
/** * 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); } } }