Subversion Repositories ALCASAR

Rev

Rev 2976 | Rev 3100 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2976 Rev 3037
Line 31... Line 31...
31
        if ((PSI_OS == 'Linux') && !defined('PSI_EMU_HOSTNAME')) switch (defined('PSI_SENSOR_LMSENSORS_ACCESS')?strtolower(PSI_SENSOR_LMSENSORS_ACCESS):'command') {
31
        if ((PSI_OS == 'Linux') && !defined('PSI_EMU_HOSTNAME')) switch (defined('PSI_SENSOR_LMSENSORS_ACCESS')?strtolower(PSI_SENSOR_LMSENSORS_ACCESS):'command') {
32
        case 'command':
32
        case 'command':
33
            CommonFunctions::executeProgram("sensors", "", $lines);
33
            CommonFunctions::executeProgram("sensors", "", $lines);
34
            break;
34
            break;
35
        case 'data':
35
        case 'data':
36
            CommonFunctions::rfts(PSI_APP_ROOT.'/data/lmsensors.txt', $lines);
36
            CommonFunctions::rftsdata('lmsensors.tmp', $lines);
37
            break;
37
            break;
38
        default:
38
        default:
39
            $this->error->addConfigError('__construct()', '[sensor_lmsensors] ACCESS');
39
            $this->error->addConfigError('__construct()', '[sensor_lmsensors] ACCESS');
40
            break;
-
 
41
        }
40
        }
42
 
41
 
43
        if (trim($lines) !== "") {
42
        if (trim($lines) !== "") {
44
            $lines = str_replace(":\n", ":", $lines);
43
            $lines = str_replace(":\n", ":", $lines);
45
            $lines = str_replace("\n\n", "\n", $lines);
44
            $lines = str_replace("\n\n", "\n", $lines);
Line 72... Line 71...
72
                ;
71
                ;
73
            } elseif (preg_match("/^(.+):(.+).C\s*\((.+)=(.+).C,(.+)=(.+).C\)(.*)/", $line, $data)) {
72
            } elseif (preg_match("/^(.+):(.+).C\s*\((.+)=(.+).C,(.+)=(.+).C\)(.*)/", $line, $data)) {
74
                ;
73
                ;
75
            } elseif (preg_match("/^(.+):(.+).C\s*\((.+)=(.+).C\)(.*)/", $line, $data)) {
74
            } elseif (preg_match("/^(.+):(.+).C\s*\((.+)=(.+).C\)(.*)/", $line, $data)) {
76
                ;
75
                ;
-
 
76
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+).C,(.+)=(.+).C\)(.*)\)/", $line, $data)) {
-
 
77
                ;
-
 
78
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+).C,(.+)=(.+).C\)(.*)/", $line, $data)) {
-
 
79
                ;
-
 
80
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+).C\)(.*)/", $line, $data)) {
-
 
81
                ;
77
            } elseif (preg_match("/^(.+):(.+).C\s*\(/", $line, $data)) {
82
            } elseif (preg_match("/^(.+):(.+).C\s*\(/", $line, $data)) {
78
                ;
83
                ;
-
 
84
            } elseif (preg_match("/^(.+):(.+).C\s+\D+/", $line, $data)) {
-
 
85
                ;
79
            } else {
86
            } else {
80
                preg_match("/^(.+):(.+).C$/", $line, $data);
87
                preg_match("/^(.+):(.+).C\r?$/", $line, $data);
81
            }
88
            }
82
            if (count($data)>2) {
89
            if (count($data)>2) {
83
                foreach ($data as $key=>$value) {
90
                foreach ($data as $key=>$value) {
84
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
91
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
85
                        $data[$key] = 0+trim($newvalue[1]);
92
                        $data[$key] = floatval($newvalue[1]);
86
                    } else {
93
                    } else {
87
                        $data[$key] = trim($value);
94
                        $data[$key] = trim($value);
88
                    }
95
                    }
89
                }
96
                }
90
                if ($applesmc && (strlen($data[1]) == 4)) {
97
                if ($applesmc && (strlen($data[1]) == 4)) {
Line 137... Line 144...
137
                if (isset($data[6]) && $data[2] <= $data[6]) {
144
                if (isset($data[6]) && $data[2] <= $data[6]) {
138
                    $dev->setMax(max($data[4], $data[6]));
145
                    $dev->setMax(max($data[4], $data[6]));
139
                } elseif (isset($data[4]) && $data[2] <= $data[4]) {
146
                } elseif (isset($data[4]) && $data[2] <= $data[4]) {
140
                    $dev->setMax($data[4]);
147
                    $dev->setMax($data[4]);
141
                }
148
                }
142
                if (preg_match("/\sALARM\s*$/", $line) || preg_match("/\sALARM\s+sensor\s+=/", $line)) {
149
                if (preg_match("/\s(ALARM)\s*$/", $line, $evbuf) || preg_match("/\s(ALARM)\s+sensor\s+=/", $line, $evbuf) ||  (($evbuf[1] = $dev->getValue()) === 'FAULT')) {
143
                    $dev->setEvent("Alarm");
150
                    $dev->setEvent($evbuf[1]);
144
                }
151
                }
145
                $this->mbinfo->setMbTemp($dev);
152
                $this->mbinfo->setMbTemp($dev);
146
            }
153
            }
147
        }
154
        }
148
    }
155
    }
Line 169... Line 176...
169
                ;
176
                ;
170
            } elseif (preg_match("/^(.+):(.+) RPM\s*\((.+)=(.+) RPM,(.+)=(.+)\)(.*)/", $line, $data)) {
177
            } elseif (preg_match("/^(.+):(.+) RPM\s*\((.+)=(.+) RPM,(.+)=(.+)\)(.*)/", $line, $data)) {
171
                ;
178
                ;
172
            } elseif (preg_match("/^(.+):(.+) RPM\s*\((.+)=(.+) RPM\)(.*)/", $line, $data)) {
179
            } elseif (preg_match("/^(.+):(.+) RPM\s*\((.+)=(.+) RPM\)(.*)/", $line, $data)) {
173
                ;
180
                ;
-
 
181
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) RPM,(.+)=(.+)\)(.*)\)/", $line, $data)) {
-
 
182
                ;
-
 
183
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) RPM,(.+)=(.+)\)(.*)/", $line, $data)) {
-
 
184
                ;
-
 
185
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) RPM\)(.*)/", $line, $data)) {
-
 
186
                ;
174
            } elseif (preg_match("/^(.+):(.+) RPM\s*\(/", $line, $data)) {
187
            } elseif (preg_match("/^(.+):(.+) RPM\s*\(/", $line, $data)) {
175
                ;
188
                ;
-
 
189
            } elseif (preg_match("/^(.+):(.+) RPM\s+\D+/", $line, $data)) {
-
 
190
                ;
176
            } else {
191
            } else {
177
                preg_match("/^(.+):(.+) RPM$/", $line, $data);
192
                preg_match("/^(.+):(.+) RPM\r?$/", $line, $data);
178
            }
193
            }
179
            if (count($data)>2) {
194
            if (count($data)>2) {
180
                 foreach ($data as $key=>$value) {
195
                 foreach ($data as $key=>$value) {
181
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
196
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
182
                        $data[$key] = 0+trim($newvalue[1]);
197
                        $data[$key] = floatval($newvalue[1]);
183
                    } else {
198
                    } else {
184
                        $data[$key] = trim($value);
199
                        $data[$key] = trim($value);
185
                    }
200
                    }
186
                }
201
                }
187
                $dev = new SensorDevice();
202
                $dev = new SensorDevice();
188
                $dev->setName($data[1].$sname);
203
                $dev->setName($data[1].$sname);
189
                $dev->setValue(trim($data[2]));
204
                $dev->setValue(trim($data[2]));
190
                if (isset($data[4])) {
205
                if (isset($data[4])) {
191
                    $dev->setMin(trim($data[4]));
206
                    $dev->setMin(trim($data[4]));
192
                }
207
                }
193
                if (preg_match("/\sALARM\s*$/", $line)) {
208
                if (preg_match("/\s(ALARM)\s*$/", $line, $evbuf) || (($evbuf[1] = $dev->getValue()) === 'FAULT')) {
194
                    $dev->setEvent("Alarm");
209
                    $dev->setEvent($evbuf[1]);
195
                }
210
                }
196
                $this->mbinfo->setMbFan($dev);
211
                $this->mbinfo->setMbFan($dev);
197
            }
212
            }
198
        }
213
        }
199
    }
214
    }
Line 218... Line 233...
218
            $data = array();
233
            $data = array();
219
            if (preg_match("/^(.+):(.+) V\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)\)/", $line, $data)) {
234
            if (preg_match("/^(.+):(.+) V\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)\)/", $line, $data)) {
220
                ;
235
                ;
221
            } elseif (preg_match("/^(.+):(.+) V\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)/", $line, $data)) {
236
            } elseif (preg_match("/^(.+):(.+) V\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)/", $line, $data)) {
222
                ;
237
                ;
-
 
238
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)\)/", $line, $data)) {
-
 
239
                ;
-
 
240
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) V,(.+)=(.+) V\)(.*)/", $line, $data)) {
-
 
241
                ;
223
            } elseif (preg_match("/^(.+):(.+) V\s*\(/", $line, $data)) {
242
            } elseif (preg_match("/^(.+):(.+) V\s*\(/", $line, $data)) {
224
                ;
243
                ;
-
 
244
            } elseif (preg_match("/^(.+):(.+) V\s+\D+/", $line, $data)) {
-
 
245
                ;
225
            } else {
246
            } else {
226
                preg_match("/^(.+):(.+) V$/", $line, $data);
247
                preg_match("/^(.+):(.+) V\r?$/", $line, $data);
227
            }
248
            }
228
 
249
 
229
            if (count($data)>2) {
250
            if (count($data)>2) {
230
                foreach ($data as $key=>$value) {
251
                foreach ($data as $key=>$value) {
231
                    if (preg_match("/^\+?(-?[0-9\.]+)$/", trim($value), $newvalue)) {
252
                    if (preg_match("/^\+?(-?[0-9\.]+)$/", trim($value), $newvalue)) {
232
                        $data[$key] = 0+trim($newvalue[1]);
253
                        $data[$key] = floatval($newvalue[1]);
233
                    } else {
254
                    } else {
234
                        $data[$key] = trim($value);
255
                        $data[$key] = trim($value);
235
                    }
256
                    }
236
                }
257
                }
237
                $dev = new SensorDevice();
258
                $dev = new SensorDevice();
Line 241... Line 262...
241
                    $dev->setMin($data[4]);
262
                    $dev->setMin($data[4]);
242
                }
263
                }
243
                if (isset($data[6])) {
264
                if (isset($data[6])) {
244
                    $dev->setMax($data[6]);
265
                    $dev->setMax($data[6]);
245
                }
266
                }
246
                if (preg_match("/\sALARM\s*$/", $line)) {
267
                if (preg_match("/\s(ALARM)\s*$/", $line, $evbuf) || (($evbuf[1] = $dev->getValue()) === 'FAULT')) {
247
                    $dev->setEvent("Alarm");
268
                    $dev->setEvent($evbuf[1]);
248
                }
269
                }
249
                $this->mbinfo->setMbVolt($dev);
270
                $this->mbinfo->setMbVolt($dev);
250
            }
271
            }
251
        }
272
        }
252
    }
273
    }
Line 272... Line 293...
272
/* not tested yet
293
/* not tested yet
273
            if (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)\)/", $line, $data)) {
294
            if (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)\)/", $line, $data)) {
274
                ;
295
                ;
275
            } elseif (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)/", $line, $data)) {
296
            } elseif (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)/", $line, $data)) {
276
                ;
297
                ;
-
 
298
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)\)/", $line, $data)) {
-
 
299
                ;
-
 
300
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) W,(.+)=(.+) W\)(.*)/", $line, $data)) {
-
 
301
                ;
277
            } else
302
            } else
278
*/
303
*/
279
            if (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W\)(.*)/", $line, $data)) {
304
            if (preg_match("/^(.+):(.+) W\s*\((.+)=(.+) W\)(.*)/", $line, $data)) {
280
                ;
305
                ;
-
 
306
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) W\)(.*)/", $line, $data)) {
-
 
307
                ;
281
            } elseif (preg_match("/^(.+):(.+) W\s*\(/", $line, $data)) {
308
            } elseif (preg_match("/^(.+):(.+) W\s*\(/", $line, $data)) {
282
                ;
309
                ;
-
 
310
            } elseif (preg_match("/^(.+):(.+) W\s+\D+/", $line, $data)) {
-
 
311
                ;
283
            } else {
312
            } else {
284
                preg_match("/^(.+):(.+) W$/", $line, $data);
313
                preg_match("/^(.+):(.+) W\r?$/", $line, $data);
285
            }
314
            }
286
            if (count($data)>2) {
315
            if (count($data)>2) {
287
                foreach ($data as $key=>$value) {
316
                foreach ($data as $key=>$value) {
288
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
317
                    if (preg_match("/^\+?(-?[0-9\.]+).?$/", trim($value), $newvalue)) {
289
                        $data[$key] = 0+trim($newvalue[1]);
318
                        $data[$key] = floatval($newvalue[1]);
290
                    } else {
319
                    } else {
291
                        $data[$key] = trim($value);
320
                        $data[$key] = trim($value);
292
                    }
321
                    }
293
                }
322
                }
294
                $dev = new SensorDevice();
323
                $dev = new SensorDevice();
Line 301... Line 330...
301
                } else
330
                } else
302
*/
331
*/
303
                if (isset($data[4]) && $data[2] <= $data[4]) {
332
                if (isset($data[4]) && $data[2] <= $data[4]) {
304
                    $dev->setMax($data[4]);
333
                    $dev->setMax($data[4]);
305
                }
334
                }
306
                if (preg_match("/\sALARM\s*$/", $line)) {
335
                if (preg_match("/\s(ALARM)\s*$/", $line, $evbuf) || (($evbuf[1] = $dev->getValue()) === 'FAULT')) {
307
                    $dev->setEvent("Alarm");
336
                    $dev->setEvent($evbuf[1]);
308
                }
337
                }
309
                $this->mbinfo->setMbPower($dev);
338
                $this->mbinfo->setMbPower($dev);
310
            }
339
            }
311
        }
340
        }
312
    }
341
    }
Line 331... Line 360...
331
            $data = array();
360
            $data = array();
332
            if (preg_match("/^(.+):(.+) A\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)\)/", $line, $data)) {
361
            if (preg_match("/^(.+):(.+) A\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)\)/", $line, $data)) {
333
                ;
362
                ;
334
            } elseif (preg_match("/^(.+):(.+) A\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)/", $line, $data)) {
363
            } elseif (preg_match("/^(.+):(.+) A\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)/", $line, $data)) {
335
                ;
364
                ;
-
 
365
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)\)/", $line, $data)) {
-
 
366
                ;
-
 
367
            } elseif (preg_match("/^(.+):\s*(FAULT)\s*\((.+)=(.+) A,(.+)=(.+) A\)(.*)/", $line, $data)) {
-
 
368
                ;
336
            } elseif (preg_match("/^(.+):(.+) A\s*\(/", $line, $data)) {
369
            } elseif (preg_match("/^(.+):(.+) A\s*\(/", $line, $data)) {
337
                ;
370
                ;
-
 
371
            } elseif (preg_match("/^(.+):(.+) A\s+\D+/", $line, $data)) {
-
 
372
                ;
338
            } else {
373
            } else {
339
                preg_match("/^(.+):(.+) A$/", $line, $data);
374
                preg_match("/^(.+):(.+) A\r?$/", $line, $data);
340
            }
375
            }
341
            if (count($data)>2) {
376
            if (count($data)>2) {
342
                foreach ($data as $key=>$value) {
377
                foreach ($data as $key=>$value) {
343
                    if (preg_match("/^\+?([0-9\.]+).?$/", trim($value), $newvalue)) {
378
                    if (preg_match("/^\+?([0-9\.]+).?$/", trim($value), $newvalue)) {
344
                        $data[$key] = trim($newvalue[1]);
379
                        $data[$key] = trim($newvalue[1]);
Line 353... Line 388...
353
                    $dev->setMin($data[4]);
388
                    $dev->setMin($data[4]);
354
                }
389
                }
355
                if (isset($data[6])) {
390
                if (isset($data[6])) {
356
                    $dev->setMax($data[6]);
391
                    $dev->setMax($data[6]);
357
                }
392
                }
358
                if (preg_match("/\sALARM\s*$/", $line)) {
393
                if (preg_match("/\s(ALARM)\s*$/", $line, $evbuf) || (($evbuf[1] = $dev->getValue()) === 'FAULT')) {
359
                    $dev->setEvent("Alarm");
394
                    $dev->setEvent($evbuf[1]);
360
                }
395
                }
361
                $this->mbinfo->setMbCurrent($dev);
396
                $this->mbinfo->setMbCurrent($dev);
362
            }
397
            }
363
        }
398
        }
364
    }
399
    }
Line 379... Line 414...
379
                } else {
414
                } else {
380
                    $sname = '';
415
                    $sname = '';
381
                }
416
                }
382
            }
417
            }
383
            $data = array();
418
            $data = array();
384
            preg_match("/^(.+):\s*([^\-\+\d\s].+)$/", $line, $data);
419
            preg_match("/^(.+):\s*([^\-\+\d\s].+)\r?$/", $line, $data);
385
            if ((count($data)>2) && ($data[1]!=="Adapter")) {
420
            if ((count($data)>2) && ($data[1]!=="Adapter") && !preg_match("/^FAULT/", $data[2])) {
386
                $dev = new SensorDevice();
421
                $dev = new SensorDevice();
387
                $dev->setName($data[1].$sname);
422
                $dev->setName($data[1].$sname);
388
                if (preg_match("/(.*\s*)ALARM\s*$/", $data[2], $aldata)) {
423
                if (preg_match("/(.*\s*)ALARM\s*$/", $data[2], $aldata)) {
389
                    $dev->setEvent("Alarm");
424
                    $dev->setEvent("Alarm");
390
                    if ((count($aldata)>1) && trim($aldata[1]!=="")) {
425
                    if ((count($aldata)>1) && trim($aldata[1]!=="")) {
Line 403... Line 438...
403
    /**
438
    /**
404
     * get the information
439
     * get the information
405
     *
440
     *
406
     * @see PSI_Interface_Sensor::build()
441
     * @see PSI_Interface_Sensor::build()
407
     *
442
     *
408
     * @return Void
443
     * @return void
409
     */
444
     */
410
    public function build()
445
    public function build()
411
    {
446
    {
412
        $this->_temperature();
447
        $this->_temperature();
413
        $this->_voltage();
448
        $this->_voltage();