/** * parse the input and store data in resultset for xml generation * * @return array */ private function _info() { $model = array(); $percCharge = array(); $lines = explode(PHP_EOL, implode($this->_output)); $dev = new UPSDevice(); $model = explode('FW:', $lines[1]); if (strpos($model[0], 'InternalBattery') === FALSE) { $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); } } $this->upsinfo->setUpsDevices($dev); } }
/** * 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 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)) { $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); } }
/** * 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); } }
/** * 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); } } }
/** * 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); } }