Subversion Repositories ALCASAR

Rev

Rev 3037 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 3037 Rev 3287
Line 61... Line 61...
61
        }
61
        }
62
        $model = array();
62
        $model = array();
63
        $percCharge = array();
63
        $percCharge = array();
64
        $lines = explode(PHP_EOL, implode($this->_output));
64
        $lines = explode(PHP_EOL, implode($this->_output));
65
        if (count($lines)>1) {
65
        if (count($lines)>1) {
66
            $model = explode('FW:', $lines[1]);
-
 
67
            if (strpos($model[0], 'InternalBattery') === false) {
66
            if (strpos($lines[1], 'InternalBattery') === false) {
68
                $dev = new UPSDevice();
67
                $dev = new UPSDevice();
69
                $percCharge = explode(';', $lines[1]);
-
 
70
                $dev->setName('UPS');
68
                $dev->setName('UPS');
-
 
69
                $percCharge = explode(';', $lines[1]);
-
 
70
                $model = explode('FW:', $lines[1]);
71
                if ($model !== false) {
71
                if ($model !== false) {
72
                    $dev->setModel(substr(trim($model[0]), 1));
72
                    $dev->setModel(substr(trim($model[0]), 1));
73
                }
73
                }
74
                if ($percCharge !== false) {
74
                if ($percCharge !== false) {
75
                    $dev->setBatterCharge(trim(substr($percCharge[0], -4, 3)));
75
                    if (preg_match("/\s(\d+)\%$/", trim($percCharge[0]), $tmpbuf)) {
-
 
76
                        if ($tmpbuf[1]>100) {
76
                    $dev->setStatus(trim($percCharge[1]));
77
                            $dev->setBatterCharge(100);
-
 
78
                        } else {
-
 
79
                            $dev->setBatterCharge($tmpbuf[1]);
-
 
80
                        }
-
 
81
                    }
77
                    if (isset($percCharge[2])) {
82
                    $percCharge[1]=trim($percCharge[1]);
-
 
83
                    if (preg_match("/^(.+) present:/", $percCharge[1], $tmpbuf)) {
78
                        $time = explode(':', $percCharge[2]);
84
                        $dev->setStatus(trim($tmpbuf[1]));
79
                        $hours = $time[0];
85
                    } else {
80
                        $minutes = $hours*60+substr($time[1], 0, 2);
86
                        $dev->setStatus($percCharge[1]);
-
 
87
                    }
-
 
88
                    if (isset($percCharge[2]) && preg_match("/\s(\d+):(\d+)\s/", $percCharge[2], $tmpbuf)) {
81
                        $dev->setTimeLeft($minutes);
89
                         $dev->setTimeLeft($tmpbuf[1]*60+$tmpbuf[2]);
82
                    }
90
                    }
83
                }
91
                }
84
                $dev->setMode("pmset");
92
                $dev->setMode("pmset");
85
                $this->upsinfo->setUpsDevices($dev);
93
                $this->upsinfo->setUpsDevices($dev);
86
            }
94
            }