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