Пример #1
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return Void
  */
 private function _info()
 {
     $dev = new UPSDevice();
     foreach ($this->_output as $ups) {
         // General info
         if (preg_match('/^UPSNAME\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setName(trim($data[1]));
         }
         if (preg_match('/^MODEL\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setModel(trim($data[1]));
         }
         if (preg_match('/^UPSMODE\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setMode(trim($data[1]));
         }
         if (preg_match('/^STARTTIME\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setStartTime(trim($data[1]));
         }
         if (preg_match('/^STATUS\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setStatus(trim($data[1]));
         }
         if (preg_match('/^ITEMP\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setTemperatur(trim($data[1]));
         }
         // Outages
         if (preg_match('/^NUMXFERS\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setOutages(trim($data[1]));
         }
         if (preg_match('/^LASTXFER\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setLastOutage(trim($data[1]));
         }
         if (preg_match('/^XOFFBATT\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setLastOutageFinish(trim($data[1]));
         }
         // Line
         if (preg_match('/^LINEV\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setLineVoltage(trim($data[1]));
         }
         if (preg_match('/^LOADPCT\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setLoad(trim($data[1]));
         }
         // Battery
         if (preg_match('/^BATTV\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setBatteryVoltage(trim($data[1]));
         }
         if (preg_match('/^BCHARGE\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setBatterCharge(trim($data[1]));
         }
         if (preg_match('/^TIMELEFT\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setTimeLeft(trim($data[1]));
         }
         $this->upsinfo->setUpsDevices($dev);
     }
 }
Пример #2
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return array
  */
 private function _info()
 {
     if (empty($this->_output)) {
         return;
     }
     $model = array();
     $percCharge = array();
     $lines = explode(PHP_EOL, implode($this->_output));
     if (count($lines) > 1) {
         $model = explode('FW:', $lines[1]);
         if (strpos($model[0], 'InternalBattery') === false) {
             $dev = new UPSDevice();
             $percCharge = explode(';', $lines[1]);
             $dev->setName('UPS');
             if ($model !== false) {
                 $dev->setModel(substr(trim($model[0]), 1));
             }
             if ($percCharge !== false) {
                 $dev->setBatterCharge(trim(substr($percCharge[0], -4, 3)));
                 $dev->setStatus(trim($percCharge[1]));
                 if (isset($percCharge[2])) {
                     $time = explode(':', $percCharge[2]);
                     $hours = $time[0];
                     $minutes = $hours * 60 + substr($time[1], 0, 2);
                     $dev->setTimeLeft($minutes);
                 }
             }
             $dev->setMode("pmset");
             $this->upsinfo->setUpsDevices($dev);
         }
     }
 }
Пример #3
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return array
  */
 private function _info()
 {
     if (!empty($this->_output)) {
         foreach ($this->_output as $name => $value) {
             $temp = preg_split("/\n/", $value, -1, PREG_SPLIT_NO_EMPTY);
             $ups_data = array();
             foreach ($temp as $value) {
                 $line = preg_split('/: /', $value, 2);
                 $ups_data[$line[0]] = isset($line[1]) ? trim($line[1]) : '';
             }
             $dev = new UPSDevice();
             //General
             $dev->setName($name);
             $dev->setModel($this->_checkIsSet($ups_data, 'ups.model'));
             $dev->setMode($this->_checkIsSet($ups_data, 'driver.name'));
             $dev->setStatus($this->_checkIsSet($ups_data, 'ups.status'));
             //Line
             $dev->setLineVoltage($this->_checkIsSet($ups_data, 'input.voltage'));
             $dev->setLoad($this->_checkIsSet($ups_data, 'ups.load'));
             //Battery
             $dev->setBatteryVoltage($this->_checkIsSet($ups_data, 'battery.voltage'));
             $dev->setBatterCharge($this->_checkIsSet($ups_data, 'battery.charge'));
             $this->upsinfo->setUpsDevices($dev);
         }
     }
 }
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return Void
  */
 private function _info()
 {
     foreach ($this->_output as $ups) {
         $dev = new UPSDevice();
         // General info
         $dev->setName("EVER");
         $dev->setMode("PowerSoftPlus");
         $maxpwr = 0;
         $load = null;
         if (preg_match('/^Identifier: UPS Model\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setModel(trim($data[1]));
             if (preg_match('/\\s(\\d*)[^\\d]*$/', trim($data[1]), $number)) {
                 $maxpwr = $number[1] * 0.65;
             }
         }
         if (preg_match('/^Current UPS state\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setStatus(trim($data[1]));
         }
         if (preg_match('/^Output load\\s*:\\s*(.*)\\s\\[\\%\\]$/m', $ups, $data)) {
             $load = trim($data[1]);
         }
         //wrong Output load issue
         if ($load == 0 && $maxpwr != 0 && preg_match('/^Effective power\\s*:\\s*(.*)\\s\\[W\\]$/m', $ups, $data)) {
             $load = 100.0 * trim($data[1]) / $maxpwr;
         }
         if ($load != null) {
             $dev->setLoad($load);
         }
         // Battery
         if (preg_match('/^Battery voltage\\s*:\\s*(.*)\\s\\[Volt\\]$/m', $ups, $data)) {
             $dev->setBatteryVoltage(trim($data[1]));
         }
         if (preg_match('/^Battery state\\s*:\\s*(.*)$/m', $ups, $data)) {
             if (preg_match('/^At full capacity$/', trim($data[1]))) {
                 $dev->setBatterCharge(100);
             } elseif (preg_match('/^(Discharged)|(Depleted)$/', trim($data[1]))) {
                 $dev->setBatterCharge(0);
             }
         }
         // Line
         if (preg_match('/^Input voltage\\s*:\\s*(.*)\\s\\[Volt\\]$/m', $ups, $data)) {
             $dev->setLineVoltage(trim($data[1]));
         }
         if (preg_match('/^Input frequency\\s*:\\s*(.*)\\s\\[Hz\\]$/m', $ups, $data)) {
             $dev->setLineFrequency(trim($data[1]));
         }
         $this->upsinfo->setUpsDevices($dev);
     }
 }
Пример #5
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return array
  */
 private function _info()
 {
     if (!empty($this->_output)) {
         foreach ($this->_output as $name => $value) {
             $temp = preg_split("/\n/", $value, -1, PREG_SPLIT_NO_EMPTY);
             $ups_data = array();
             foreach ($temp as $value) {
                 $line = preg_split('/: /', $value, 2);
                 $ups_data[$line[0]] = isset($line[1]) ? trim($line[1]) : '';
             }
             $dev = new UPSDevice();
             //General
             $dev->setName($name);
             if (isset($ups_data['ups.model'])) {
                 $dev->setModel($ups_data['ups.model']);
             }
             if (isset($ups_data['driver.name'])) {
                 $dev->setMode($ups_data['driver.name']);
             }
             if (isset($ups_data['ups.status'])) {
                 $dev->setStatus($ups_data['ups.status']);
             }
             //Line
             if (isset($ups_data['input.voltage'])) {
                 $dev->setLineVoltage($ups_data['input.voltage']);
             }
             if (isset($ups_data['input.frequency'])) {
                 $dev->setLineFrequency($ups_data['input.frequency']);
             }
             if (isset($ups_data['ups.load'])) {
                 $dev->setLoad($ups_data['ups.load']);
             }
             //Battery
             if (isset($ups_data['battery.voltage'])) {
                 $dev->setBatteryVoltage($ups_data['battery.voltage']);
             }
             if (isset($ups_data['battery.charge'])) {
                 $dev->setBatterCharge($ups_data['battery.charge']);
             }
             if (isset($ups_data['battery.runtime'])) {
                 $dev->setTimeLeft(round($ups_data['battery.runtime'] / 60, 2));
             }
             //Temperature
             if (isset($ups_data['ups.temperature'])) {
                 $dev->setTemperatur($ups_data['ups.temperature']);
             }
             $this->upsinfo->setUpsDevices($dev);
         }
     }
 }
Пример #6
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return Void
  */
 private function _info()
 {
     foreach ($this->_output as $ups) {
         $dev = new UPSDevice();
         // General info
         if (preg_match('/^UPSNAME\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setName(trim($data[1]));
         }
         if (preg_match('/^MODEL\\s*:\\s*(.*)$/m', $ups, $data)) {
             $model = trim($data[1]);
             if (preg_match('/^APCMODEL\\s*:\\s*(.*)$/m', $ups, $data)) {
                 $dev->setModel($model . ' (' . trim($data[1]) . ')');
             } else {
                 $dev->setModel($model);
             }
         }
         if (preg_match('/^UPSMODE\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setMode(trim($data[1]));
         }
         if (preg_match('/^STARTTIME\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setStartTime(trim($data[1]));
         }
         if (preg_match('/^STATUS\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setStatus(trim($data[1]));
         }
         if (preg_match('/^ITEMP\\s*:\\s*(.*)$/m', $ups, $data)) {
             $temperatur = trim($data[1]);
             if ($temperatur !== "-273.1 C" && $temperatur !== "-273.1 C Internal") {
                 $dev->setTemperatur($temperatur);
             }
         }
         // Outages
         if (preg_match('/^NUMXFERS\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setOutages(trim($data[1]));
         }
         if (preg_match('/^LASTXFER\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setLastOutage(trim($data[1]));
         }
         if (preg_match('/^XOFFBATT\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setLastOutageFinish(trim($data[1]));
         }
         // Line
         if (preg_match('/^LINEV\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setLineVoltage(trim($data[1]));
         }
         if (preg_match('/^LINEFREQ\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setLineFrequency(trim($data[1]));
         }
         if (preg_match('/^LOADPCT\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setLoad(trim($data[1]));
         }
         // Battery
         if (preg_match('/^BATTDATE\\s*:\\s*(.*)$/m', $ups, $data)) {
             $dev->setBatteryDate(trim($data[1]));
         }
         if (preg_match('/^BATTV\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setBatteryVoltage(trim($data[1]));
         }
         if (preg_match('/^BCHARGE\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setBatterCharge(trim($data[1]));
         }
         if (preg_match('/^TIMELEFT\\s*:\\s*(\\d*\\.\\d*)(.*)$/m', $ups, $data)) {
             $dev->setTimeLeft(trim($data[1]));
         }
         $this->upsinfo->setUpsDevices($dev);
     }
 }
Пример #7
0
 /**
  * parse the input and store data in resultset for xml generation
  *
  * @return Void
  */
 private function _info()
 {
     if (empty($this->_output)) {
         return;
     }
     foreach ($this->_output as $result) {
         $dev = new UPSDevice();
         $status = "";
         $status2 = "";
         $status3 = "";
         $dev->setMode("SNMP");
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.1\\.1\\.2\\.0 = STRING:\\s(.*)/m', $result, $data)) {
             $dev->setName(trim($data[1], "\" \r\t"));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.1\\.1\\.1\\.0 = STRING:\\s(.*)/m', $result, $data)) {
             $dev->setModel(trim($data[1], "\" \r\t"));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.4\\.1\\.1\\.0 = INTEGER:\\s(.*)/m', $result, $data)) {
             switch (trim($data[1])) {
                 case 1:
                     $status = "Unknown";
                     break;
                 case 2:
                     $status = "On Line";
                     break;
                 case 3:
                     $status = "On Battery";
                     break;
                 case 4:
                     $status = "On Smart Boost";
                     break;
                 case 5:
                     $status = "Timed Sleeping";
                     break;
                 case 6:
                     $status = "Software Bypass";
                     break;
                 case 7:
                     $status = "Off";
                     break;
                 case 8:
                     $status = "Rebooting";
                     break;
                 case 9:
                     $status = "Switched Bypass";
                     break;
                 case 10:
                     $status = "Hardware Failure Bypass";
                     break;
                 case 11:
                     $status = "Sleeping Until Power Returns";
                     break;
                 case 12:
                     $status = "On Smart Trim";
                     break;
                 default:
                     $status = "Unknown state (" . trim($data[1]) . ")";
                     break;
             }
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.1\\.1\\.0 = INTEGER:\\s(.*)/m', $result, $data)) {
             $batstat = "";
             switch (trim($data[1])) {
                 case 1:
                     $batstat = "Battery Unknown";
                     break;
                 case 2:
                     break;
                 case 3:
                     $batstat = "Battery Low";
                     break;
                 default:
                     $batstat = "Battery Unknown (" . trim($data[1]) . ")";
                     break;
             }
             if ($batstat !== "") {
                 if ($status !== "") {
                     $status .= ", " . $batstat;
                 } else {
                     $status = $batstat;
                 }
             }
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.2\\.4\\.0 = INTEGER:\\s(.*)/m', $result, $data)) {
             $batstat = "";
             switch (trim($data[1])) {
                 case 1:
                     break;
                 case 2:
                     $batstat = "Replace Battery";
                     break;
                 default:
                     $batstat = "Replace Battery (" . trim($data[1]) . ")";
                     break;
             }
             if ($batstat !== "") {
                 if ($status !== "") {
                     $status .= ", " . $batstat;
                 } else {
                     $status = $batstat;
                 }
             }
         }
         if ($status !== "") {
             $dev->setStatus(trim($status));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.3\\.3\\.1\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLineVoltage(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.3\\.2\\.1\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLineVoltage(trim($data[1]));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.4\\.3\\.3\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLoad(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.4\\.2\\.3\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLoad(trim($data[1]));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.3\\.4\\.0 = INTEGER:\\s(.*)/m', $result, $data)) {
             $dev->setBatteryVoltage(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.2\\.8\\.0 = INTEGER:\\s(.*)/m', $result, $data)) {
             $dev->setBatteryVoltage(trim($data[1]));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.3\\.1\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setBatterCharge(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.2\\.1\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setBatterCharge(trim($data[1]));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.2\\.3\\.0 = Timeticks:\\s\\((\\d*)\\)/m', $result, $data)) {
             $dev->setTimeLeft(trim($data[1]) / 6000);
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.3\\.2\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setTemperatur(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.2\\.2\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setTemperatur(trim($data[1]));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.2\\.1\\.3\\.0 = STRING:\\s(.*)/m', $result, $data)) {
             $dev->setBatteryDate(trim($data[1], "\" \r\t"));
         }
         if (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.3\\.3\\.4\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLineFrequency(trim($data[1]) / 10);
         } elseif (preg_match('/^\\.1\\.3\\.6\\.1\\.4\\.1\\.318\\.1\\.1\\.1\\.3\\.2\\.4\\.0 = Gauge32:\\s(.*)/m', $result, $data)) {
             $dev->setLineFrequency(trim($data[1]));
         }
         $this->upsinfo->setUpsDevices($dev);
     }
 }