示例#1
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)) {
             $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);
     }
 }