Subversion Repositories ALCASAR

Rev

Rev 2775 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2775 Rev 3037
1
<?php
1
<?php
2
/**
2
/**
3
 * SNMPups class
3
 * SNMPups class
4
 *
4
 *
5
 * PHP version 5
5
 * PHP version 5
6
 *
6
 *
7
 * @category  PHP
7
 * @category  PHP
8
 * @package   PSI_UPS
8
 * @package   PSI_UPS
9
 * @author    Michael Cramer <BigMichi1@users.sourceforge.net>
9
 * @author    Michael Cramer <BigMichi1@users.sourceforge.net>
10
 * @copyright 2009 phpSysInfo
10
 * @copyright 2009 phpSysInfo
11
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
11
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
12
 * @version   SVN: $Id: class.apcupsd.inc.php 661 2012-08-27 11:26:39Z namiltd $
12
 * @version   SVN: $Id: class.apcupsd.inc.php 661 2012-08-27 11:26:39Z namiltd $
13
 * @link      http://phpsysinfo.sourceforge.net
13
 * @link      http://phpsysinfo.sourceforge.net
14
 */
14
 */
15
 /**
15
 /**
16
 * getting ups information from SNMPups program
16
 * getting ups information from SNMPups program
17
 *
17
 *
18
 * @category  PHP
18
 * @category  PHP
19
 * @package   PSI_UPS
19
 * @package   PSI_UPS
20
 * @author    Michael Cramer <BigMichi1@users.sourceforge.net>
20
 * @author    Michael Cramer <BigMichi1@users.sourceforge.net>
21
 * @author    Artem Volk <artvolk@mail.ru>
21
 * @author    Artem Volk <artvolk@mail.ru>
22
 * @copyright 2009 phpSysInfo
22
 * @copyright 2009 phpSysInfo
23
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
23
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
24
 * @version   Release: 3.0
24
 * @version   Release: 3.0
25
 * @link      http://phpsysinfo.sourceforge.net
25
 * @link      http://phpsysinfo.sourceforge.net
26
 */
26
 */
27
class SNMPups extends UPS
27
class SNMPups extends UPS
28
{
28
{
29
    /**
29
    /**
30
     * internal storage for all gathered data
30
     * internal storage for all gathered data
31
     *
31
     *
32
     * @var array
32
     * @var array
33
     */
33
     */
34
    private $_output = array();
34
    private $_output = array();
35
 
35
 
36
    /**
36
    /**
37
     * get all information from all configured ups in phpsysinfo.ini and store output in internal array
37
     * get all information from all configured ups in phpsysinfo.ini and store output in internal array
38
     */
38
     */
39
    public function __construct()
39
    public function __construct()
40
    {
40
    {
41
        parent::__construct();
41
        parent::__construct();
-
 
42
        if (!defined('PSI_UPS_SNMPUPS_ACCESS')) {
-
 
43
             define('PSI_UPS_SNMPUPS_ACCESS', 'php-snmp');
-
 
44
        }
42
        switch (strtolower(PSI_UPS_SNMPUPS_ACCESS)) {
45
        switch (strtolower(PSI_UPS_SNMPUPS_ACCESS)) {
-
 
46
        case 'data':
-
 
47
                if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
-
 
48
                    if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
-
 
49
                        $upss = eval(PSI_UPS_SNMPUPS_LIST);
-
 
50
                    } else {
-
 
51
                        $upss = array(PSI_UPS_SNMPUPS_LIST);
-
 
52
                    }
-
 
53
                } else {
-
 
54
                   $upss = array('UPS');
-
 
55
                }
-
 
56
                $un = 0;
-
 
57
                foreach ($upss as $ups) {
-
 
58
                    $temp = "";
-
 
59
                    CommonFunctions::rftsdata("upssnmpups{$un}.tmp", $temp);
-
 
60
                    if (! empty($temp)) {
-
 
61
                        $this->_output[] = $temp;
-
 
62
                    }
-
 
63
                    $un++;
-
 
64
                }
-
 
65
                break;
43
        case 'command':
66
        case 'command':
44
                if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
67
                if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
45
                    if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
68
                    if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
46
                        $upss = eval(PSI_UPS_SNMPUPS_LIST);
69
                        $upss = eval(PSI_UPS_SNMPUPS_LIST);
47
                    } else {
70
                    } else {
48
                        $upss = array(PSI_UPS_SNMPUPS_LIST);
71
                        $upss = array(PSI_UPS_SNMPUPS_LIST);
49
                    }
72
                    }
50
                    foreach ($upss as $ups) {
73
                    foreach ($upss as $ups) {
-
 
74
                        $buffer = "";
51
                        CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.1", $buffer, PSI_DEBUG);
75
                        CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.1", $buffer, PSI_DEBUG);
52
                        if (strlen($buffer) > 0) {
76
                        if (strlen($buffer) > 0) {
53
                            $this->_output[$ups] = $buffer;
77
                            $this->_output[$ups] = $buffer;
54
                            $buffer = "";
78
                            $buffer = "";
55
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.2", $buffer, PSI_DEBUG);
79
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.2", $buffer, PSI_DEBUG);
56
                            if (strlen($buffer) > 0) {
80
                            if (strlen($buffer) > 0) {
57
                                $this->_output[$ups] .=  "\n".$buffer;
81
                                $this->_output[$ups] .=  "\n".$buffer;
58
                            }
82
                            }
59
                            $buffer = "";
83
                            $buffer = "";
60
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.3", $buffer, PSI_DEBUG);
84
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.3", $buffer, PSI_DEBUG);
61
                            if (strlen($buffer) > 0) {
85
                            if (strlen($buffer) > 0) {
62
                                $this->_output[$ups] .=  "\n".$buffer;
86
                                $this->_output[$ups] .=  "\n".$buffer;
63
                            }
87
                            }
64
                            $buffer = "";
88
                            $buffer = "";
65
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.4", $buffer, PSI_DEBUG);
89
                            CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$ups." .1.3.6.1.4.1.318.1.1.1.4", $buffer, PSI_DEBUG);
66
                            if (strlen($buffer) > 0) {
90
                            if (strlen($buffer) > 0) {
67
                                $this->_output[$ups] .=  "\n".$buffer;
91
                                $this->_output[$ups] .=  "\n".$buffer;
68
                            }
92
                            }
69
                        }
93
                        }
70
                    }
94
                    }
71
                }
95
                }
72
                break;
96
                break;
73
        case 'php-snmp':
97
        case 'php-snmp':
74
                if (!extension_loaded("snmp")) {
98
                if (!extension_loaded("snmp")) {
75
                    $this->error->addError("Requirements error", "SNMPups plugin requires the snmp extension to php in order to work properly");
99
                    $this->error->addError("Requirements error", "SNMPups plugin requires the snmp extension to php in order to work properly");
76
                    break;
100
                    break;
77
                }
101
                }
78
                snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
102
                snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
79
                snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
103
                snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
80
                if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
104
                if (defined('PSI_UPS_SNMPUPS_LIST') && is_string(PSI_UPS_SNMPUPS_LIST)) {
81
                    if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
105
                    if (preg_match(ARRAY_EXP, PSI_UPS_SNMPUPS_LIST)) {
82
                        $upss = eval(PSI_UPS_SNMPUPS_LIST);
106
                        $upss = eval(PSI_UPS_SNMPUPS_LIST);
83
                    } else {
107
                    } else {
84
                        $upss = array(PSI_UPS_SNMPUPS_LIST);
108
                        $upss = array(PSI_UPS_SNMPUPS_LIST);
85
                    }
109
                    }
86
                    foreach ($upss as $ups) {
110
                    foreach ($upss as $ups) {
87
                        if (! PSI_DEBUG) {
111
                        if (! PSI_DEBUG) {
88
                            restore_error_handler(); /* default error handler */
112
                            restore_error_handler(); /* default error handler */
89
                            $old_err_rep = error_reporting();
113
                            $old_err_rep = error_reporting();
90
                            error_reporting(E_ERROR); /* fatal errors only */
114
                            error_reporting(E_ERROR); /* fatal errors only */
91
                        }
115
                        }
92
                        $bufferarr=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.1", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
116
                        $bufferarr=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.1", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
93
                        if (! PSI_DEBUG) {
117
                        if (! PSI_DEBUG) {
94
                            error_reporting($old_err_rep); /* restore error level */
118
                            error_reporting($old_err_rep); /* restore error level */
95
                            set_error_handler('errorHandlerPsi'); /* restore error handler */
119
                            set_error_handler('errorHandlerPsi'); /* restore error handler */
96
                        }
120
                        }
97
                        if (! empty($bufferarr)) {
121
                        if (! empty($bufferarr)) {
98
                            $buffer="";
122
                            $buffer="";
99
                            foreach ($bufferarr as $id=>$string) {
123
                            foreach ($bufferarr as $id=>$string) {
100
                                $buffer .= $id." = ".$string."\n";
124
                                $buffer .= $id." = ".$string."\n";
101
                            }
125
                            }
102
 
126
 
103
                            if (! PSI_DEBUG) {
127
                            if (! PSI_DEBUG) {
104
                                restore_error_handler(); /* default error handler */
128
                                restore_error_handler(); /* default error handler */
105
                                $old_err_rep = error_reporting();
129
                                $old_err_rep = error_reporting();
106
                                error_reporting(E_ERROR); /* fatal errors only */
130
                                error_reporting(E_ERROR); /* fatal errors only */
107
                            }
131
                            }
108
                            $bufferarr2=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.2", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
132
                            $bufferarr2=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.2", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
109
                            $bufferarr3=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.3", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
133
                            $bufferarr3=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.3", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
110
                            $bufferarr4=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.4", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
134
                            $bufferarr4=snmprealwalk($ups, "public", ".1.3.6.1.4.1.318.1.1.1.4", 1000000 * PSI_SNMP_TIMEOUT_INT, PSI_SNMP_RETRY_INT);
111
                            if (! PSI_DEBUG) {
135
                            if (! PSI_DEBUG) {
112
                                error_reporting($old_err_rep); /* restore error level */
136
                                error_reporting($old_err_rep); /* restore error level */
113
                                set_error_handler('errorHandlerPsi'); /* restore error handler */
137
                                set_error_handler('errorHandlerPsi'); /* restore error handler */
114
                            }
138
                            }
115
                            if (! empty($bufferarr2)) {
139
                            if (! empty($bufferarr2)) {
116
                                foreach ($bufferarr2 as $id=>$string) {
140
                                foreach ($bufferarr2 as $id=>$string) {
117
                                    $buffer .= $id." = ".$string."\n";
141
                                    $buffer .= $id." = ".$string."\n";
118
                                }
142
                                }
-
 
143
                            }
119
                            if (! empty($bufferarr3)) {
144
                            if (! empty($bufferarr3)) {
120
                                foreach ($bufferarr3 as $id=>$string) {
145
                                foreach ($bufferarr3 as $id=>$string) {
121
                                    $buffer .= $id." = ".$string."\n";
146
                                    $buffer .= $id." = ".$string."\n";
122
                                }
147
                                }
123
                            }                            }
148
                            }
124
                            if (! empty($bufferarr4)) {
149
                            if (! empty($bufferarr4)) {
125
                                foreach ($bufferarr4 as $id=>$string) {
150
                                foreach ($bufferarr4 as $id=>$string) {
126
                                    $buffer .= $id." = ".$string."\n";
151
                                    $buffer .= $id." = ".$string."\n";
127
                                }
152
                                }
128
                            }
153
                            }
129
                            if (strlen(trim($buffer)) > 0) {
154
                            if (strlen(trim($buffer)) > 0) {
130
                                $this->_output[$ups] = $buffer;
155
                                $this->_output[$ups] = $buffer;
131
                            }
156
                            }
132
                        }
157
                        }
133
                    }
158
                    }
134
                }
159
                }
135
                break;
160
                break;
136
            default:
161
            default:
137
                $this->error->addError("switch(PSI_UPS_SNMPUPS_ACCESS)", "Bad SNMPups configuration in phpsysinfo.ini");
162
                $this->error->addError("switch(PSI_UPS_SNMPUPS_ACCESS)", "Bad SNMPups configuration in phpsysinfo.ini");
138
                break;
-
 
139
        }
163
        }
140
    }
164
    }
141
 
165
 
142
    /**
166
    /**
143
     * parse the input and store data in resultset for xml generation
167
     * parse the input and store data in resultset for xml generation
144
     *
168
     *
145
     * @return Void
169
     * @return void
146
     */
170
     */
147
    private function _info()
171
    private function _info()
148
    {
172
    {
149
        if (empty($this->_output)) {
173
        if (empty($this->_output)) {
150
            return;
174
            return;
151
        }
175
        }
152
        foreach ($this->_output as $result) {
176
        foreach ($this->_output as $result) {
153
            $dev = new UPSDevice();
177
            $dev = new UPSDevice();
154
            $status = "";
178
            $status = "";
155
            $status2 = "";
179
            $status2 = "";
156
            $status3 = "";
180
            $status3 = "";
157
            $dev->setMode("SNMP");
181
            $dev->setMode("SNMP");
158
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.1\.1\.2\.0 = STRING:\s(.*)/m', $result, $data)) {
182
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.1\.1\.2\.0 = STRING:\s(.*)/m', $result, $data)) {
159
                $dev->setName(trim($data[1], "\" \r\t"));
183
                $dev->setName(trim($data[1], "\" \r\t"));
160
            }
184
            }
161
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.1\.1\.1\.0 = STRING:\s(.*)/m', $result, $data)) {
185
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.1\.1\.1\.0 = STRING:\s(.*)/m', $result, $data)) {
162
                $dev->setModel(trim($data[1], "\" \r\t"));
186
                $dev->setModel(trim($data[1], "\" \r\t"));
163
            }
187
            }
164
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.1\.1\.0 = INTEGER:\s(.*)/m', $result, $data)) {
188
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.1\.1\.0 = INTEGER:\s(.*)/m', $result, $data)) {
165
                switch (trim($data[1])) {
189
                switch (trim($data[1])) {
166
                    case 1: $status = "Unknown";
190
                case 1: $status = "Unknown"; break;
167
                            break;
-
 
168
                    case 2: $status = "On Line";
191
                case 2: $status = "On Line"; break;
169
                            break;
-
 
170
                    case 3: $status = "On Battery";
192
                case 3: $status = "On Battery"; break;
171
                            break;
-
 
172
                    case 4: $status = "On Smart Boost";
193
                case 4: $status = "On Smart Boost"; break;
173
                            break;
-
 
174
                    case 5: $status = "Timed Sleeping";
194
                case 5: $status = "Timed Sleeping"; break;
175
                            break;
-
 
176
                    case 6: $status = "Software Bypass";
195
                case 6: $status = "Software Bypass"; break;
177
                            break;
-
 
178
                    case 7: $status = "Off";
196
                case 7: $status = "Off"; break;
179
                            break;
-
 
180
                    case 8: $status = "Rebooting";
197
                case 8: $status = "Rebooting"; break;
181
                            break;
-
 
182
                    case 9: $status = "Switched Bypass";
198
                case 9: $status = "Switched Bypass"; break;
183
                            break;
-
 
184
                    case 10:$status = "Hardware Failure Bypass";
199
                case 10:$status = "Hardware Failure Bypass"; break;
185
                            break;
-
 
186
                    case 11:$status = "Sleeping Until Power Returns";
200
                case 11:$status = "Sleeping Until Power Returns"; break;
187
                            break;
-
 
188
                    case 12:$status = "On Smart Trim";
201
                case 12:$status = "On Smart Trim"; break;
189
                            break;
-
 
190
                   default: $status = "Unknown state (".trim($data[1]).")";
202
                default: $status = "Unknown state (".trim($data[1]).")";
191
                            break;
-
 
192
                }
203
                }
193
            }
204
            }
194
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.1\.1\.0 = INTEGER:\s(.*)/m', $result, $data)) {
205
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.1\.1\.0 = INTEGER:\s(.*)/m', $result, $data)) {
195
                $batstat = "";
206
                $batstat = "";
196
                switch (trim($data[1])) {
207
                switch (trim($data[1])) {
197
                    case 1: $batstat = "Battery Unknown";
208
                case 1: $batstat = "Battery Unknown"; break;
198
                            break;
-
 
199
                    case 2: break;
209
                case 2: break;
200
                    case 3: $batstat = "Battery Low";
210
                case 3: $batstat = "Battery Low"; break;
201
                            break;
-
 
202
                   default: $batstat = "Battery Unknown (".trim($data[1]).")";
211
                default: $batstat = "Battery Unknown (".trim($data[1]).")";
203
                            break;
-
 
204
                }
212
                }
205
                if ($batstat !== "") {
213
                if ($batstat !== "") {
206
                    if ($status !== "") {
214
                    if ($status !== "") {
207
                        $status .= ", ".$batstat;
215
                        $status .= ", ".$batstat;
208
                    } else {
216
                    } else {
209
                        $status = $batstat;
217
                        $status = $batstat;
210
                    }
218
                    }
211
                }
219
                }
212
            }
220
            }
213
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.4\.0 = INTEGER:\s(.*)/m', $result, $data)) {
221
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.4\.0 = INTEGER:\s(.*)/m', $result, $data)) {
214
                $batstat = "";
222
                $batstat = "";
215
                switch (trim($data[1])) {
223
                switch (trim($data[1])) {
216
                    case 1: break;
224
                case 1: break;
217
                    case 2: $batstat = "Replace Battery";
225
                case 2: $batstat = "Replace Battery"; break;
218
                            break;
-
 
219
                   default: $batstat = "Replace Battery (".trim($data[1]).")";
226
                default: $batstat = "Replace Battery (".trim($data[1]).")";
220
                            break;
-
 
221
                }
227
                }
222
                if ($batstat !== "") {
228
                if ($batstat !== "") {
223
                    if ($status !== "") {
229
                    if ($status !== "") {
224
                        $status .= ", ".$batstat;
230
                        $status .= ", ".$batstat;
225
                    } else {
231
                    } else {
226
                        $status = $batstat;
232
                        $status = $batstat;
227
                    }
233
                    }
228
                }
234
                }
229
            }
235
            }
230
            if ($status !== "") {
236
            if ($status !== "") {
231
               $dev->setStatus(trim($status));
237
               $dev->setStatus(trim($status));
232
            }
238
            }
233
 
239
 
234
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.3\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
240
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.3\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
235
                $dev->setLineVoltage(trim($data[1])/10);
241
                $dev->setLineVoltage(trim($data[1])/10);
236
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.2\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
242
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.2\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
237
                $dev->setLineVoltage(trim($data[1]));
243
                $dev->setLineVoltage(trim($data[1]));
238
            }
244
            }
239
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.3\.3\.0 = Gauge32:\s(.*)/m', $result, $data)) {
245
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.3\.3\.0 = Gauge32:\s(.*)/m', $result, $data)) {
240
                $dev->setLoad(trim($data[1])/10);
246
                $dev->setLoad(trim($data[1])/10);
241
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.2\.3\.0 = Gauge32:\s(.*)/m', $result, $data)) {
247
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.4\.2\.3\.0 = Gauge32:\s(.*)/m', $result, $data)) {
242
                $dev->setLoad(trim($data[1]));
248
                $dev->setLoad(trim($data[1]));
243
            }
249
            }
244
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.4\.0 = INTEGER:\s(.*)/m', $result, $data)) {
250
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.4\.0 = INTEGER:\s(.*)/m', $result, $data)) {
245
                $dev->setBatteryVoltage(trim($data[1])/10);
251
                $dev->setBatteryVoltage(trim($data[1])/10);
246
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.8\.0 = INTEGER:\s(.*)/m', $result, $data)) {
252
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.8\.0 = INTEGER:\s(.*)/m', $result, $data)) {
247
                $dev->setBatteryVoltage(trim($data[1]));
253
                $dev->setBatteryVoltage(trim($data[1]));
248
            }
254
            }
249
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
255
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
250
                $dev->setBatterCharge(trim($data[1])/10);
256
                $dev->setBatterCharge(trim($data[1])/10);
251
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
257
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.1\.0 = Gauge32:\s(.*)/m', $result, $data)) {
252
                $dev->setBatterCharge(trim($data[1]));
258
                $dev->setBatterCharge(trim($data[1]));
253
            }
259
            }
254
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.3\.0 = Timeticks:\s\((\d*)\)/m', $result, $data)) {
260
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.3\.0 = Timeticks:\s\((\d*)\)/m', $result, $data)) {
255
                $dev->setTimeLeft(trim($data[1])/6000);
261
                $dev->setTimeLeft(trim($data[1])/6000);
256
            }
262
            }
257
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.2\.0 = Gauge32:\s(.*)/m', $result, $data)) {
263
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.3\.2\.0 = Gauge32:\s(.*)/m', $result, $data)) {
258
                $dev->setTemperatur(trim($data[1])/10);
264
                $dev->setTemperatur(trim($data[1])/10);
259
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.2\.0 = Gauge32:\s(.*)/m', $result, $data)) {
265
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.2\.2\.0 = Gauge32:\s(.*)/m', $result, $data)) {
260
                $dev->setTemperatur(trim($data[1]));
266
                $dev->setTemperatur(trim($data[1]));
261
            }
267
            }
262
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.1\.3\.0 = STRING:\s(.*)/m', $result, $data)) {
268
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.2\.1\.3\.0 = STRING:\s(.*)/m', $result, $data)) {
263
                $dev->setBatteryDate(trim($data[1], "\" \r\t"));
269
                $dev->setBatteryDate(trim($data[1], "\" \r\t"));
264
            }
270
            }
265
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.3\.4\.0 = Gauge32:\s(.*)/m', $result, $data)) {
271
            if (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.3\.4\.0 = Gauge32:\s(.*)/m', $result, $data)) {
266
                $dev->setLineFrequency(trim($data[1])/10);
272
                $dev->setLineFrequency(trim($data[1])/10);
267
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.2\.4\.0 = Gauge32:\s(.*)/m', $result, $data)) {
273
            } elseif (preg_match('/^\.1\.3\.6\.1\.4\.1\.318\.1\.1\.1\.3\.2\.4\.0 = Gauge32:\s(.*)/m', $result, $data)) {
268
                $dev->setLineFrequency(trim($data[1]));
274
                $dev->setLineFrequency(trim($data[1]));
269
            }
275
            }
270
 
276
 
271
            $this->upsinfo->setUpsDevices($dev);
277
            $this->upsinfo->setUpsDevices($dev);
272
        }
278
        }
273
    }
279
    }
274
 
280
 
275
    /**
281
    /**
276
     * get the information
282
     * get the information
277
     *
283
     *
278
     * @see PSI_Interface_UPS::build()
284
     * @see PSI_Interface_UPS::build()
279
     *
285
     *
280
     * @return Void
286
     * @return void
281
     */
287
     */
282
    public function build()
288
    public function build()
283
    {
289
    {
284
        $this->_info();
290
        $this->_info();
285
    }
291
    }
286
}
292
}
287
 
293