| @@ 273-330 (lines=58) @@ | ||
| 270 | * |
|
| 271 | * @return void |
|
| 272 | */ |
|
| 273 | private function _power() |
|
| 274 | { |
|
| 275 | $ar_buf = array(); |
|
| 276 | foreach ($this->_lines as $line) { |
|
| 277 | $data = array(); |
|
| 278 | if (preg_match("/(.*):(.*)\((.*)=(.*),(.*)=(.*)\)(.*)/", $line, $data)) { |
|
| 279 | ; |
|
| 280 | } elseif (preg_match("/(.*):(.*)\((.*)=(.*)\)(.*)/", $line, $data)) { |
|
| 281 | ; |
|
| 282 | } else { |
|
| 283 | preg_match("/(.*):(.*)/", $line, $data); |
|
| 284 | } |
|
| 285 | if (count($data) > 1) { |
|
| 286 | $temp = substr(trim($data[2]), -2); |
|
| 287 | switch ($temp) { |
|
| 288 | case " W": |
|
| 289 | array_push($ar_buf, $line); |
|
| 290 | } |
|
| 291 | } |
|
| 292 | } |
|
| 293 | foreach ($ar_buf as $line) { |
|
| 294 | $data = array(); |
|
| 295 | /* not tested yet |
|
| 296 | if (preg_match("/(.*):(.*) W[ ]*\((.*)=(.*) W,(.*)=(.*) W\)(.*)\)/", $line, $data)) { |
|
| 297 | ; |
|
| 298 | } elseif (preg_match("/(.*):(.*) W[ ]*\((.*)=(.*) W,(.*)=(.*) W\)(.*)/", $line, $data)) { |
|
| 299 | ; |
|
| 300 | } else |
|
| 301 | */ |
|
| 302 | if (preg_match("/(.*):(.*) W[ ]*\((.*)=(.*) W\)(.*)/", $line, $data)) { |
|
| 303 | ; |
|
| 304 | } elseif (preg_match("/(.*):(.*) W[ \t]+/", $line, $data)) { |
|
| 305 | ; |
|
| 306 | } else { |
|
| 307 | preg_match("/(.*):(.*) W$/", $line, $data); |
|
| 308 | } |
|
| 309 | foreach ($data as $key=>$value) { |
|
| 310 | if (preg_match("/^\+?([0-9\.]+).?$/", trim($value), $newvalue)) { |
|
| 311 | $data[$key] = trim($newvalue[1]); |
|
| 312 | } else { |
|
| 313 | $data[$key] = trim($value); |
|
| 314 | } |
|
| 315 | } |
|
| 316 | $dev = new SensorDevice(); |
|
| 317 | $dev->setName($data[1]); |
|
| 318 | $dev->setValue($data[2]); |
|
| 319 | ||
| 320 | if (isset($data[6]) && $data[2] <= $data[6]) { |
|
| 321 | $dev->setMax(max($data[4], $data[6])); |
|
| 322 | } elseif (isset($data[4]) && $data[2] <= $data[4]) { |
|
| 323 | $dev->setMax($data[4]); |
|
| 324 | } |
|
| 325 | if (preg_match("/\sALARM(\s*)$/", $line)) { |
|
| 326 | $dev->setEvent("Alarm"); |
|
| 327 | } |
|
| 328 | $this->mbinfo->setMbPower($dev); |
|
| 329 | } |
|
| 330 | } |
|
| 331 | ||
| 332 | /** |
|
| 333 | * get current information |
|
| @@ 337-394 (lines=58) @@ | ||
| 334 | * |
|
| 335 | * @return void |
|
| 336 | */ |
|
| 337 | private function _current() |
|
| 338 | { |
|
| 339 | $ar_buf = array(); |
|
| 340 | foreach ($this->_lines as $line) { |
|
| 341 | $data = array(); |
|
| 342 | if (preg_match("/(.*):(.*)\((.*)=(.*),(.*)=(.*)\)(.*)/", $line, $data)) { |
|
| 343 | ; |
|
| 344 | } elseif (preg_match("/(.*):(.*)\((.*)=(.*)\)(.*)/", $line, $data)) { |
|
| 345 | ; |
|
| 346 | } else { |
|
| 347 | preg_match("/(.*):(.*)/", $line, $data); |
|
| 348 | } |
|
| 349 | if (count($data) > 1) { |
|
| 350 | $temp = substr(trim($data[2]), -2); |
|
| 351 | switch ($temp) { |
|
| 352 | case " A": |
|
| 353 | array_push($ar_buf, $line); |
|
| 354 | } |
|
| 355 | } |
|
| 356 | } |
|
| 357 | foreach ($ar_buf as $line) { |
|
| 358 | $data = array(); |
|
| 359 | /* not tested yet |
|
| 360 | if (preg_match("/(.*):(.*) A[ ]*\((.*)=(.*) A,(.*)=(.*) A\)(.*)\)/", $line, $data)) { |
|
| 361 | ; |
|
| 362 | } elseif (preg_match("/(.*):(.*) A[ ]*\((.*)=(.*) A,(.*)=(.*) A\)(.*)/", $line, $data)) { |
|
| 363 | ; |
|
| 364 | } else |
|
| 365 | */ |
|
| 366 | if (preg_match("/(.*):(.*) A[ ]*\((.*)=(.*) A\)(.*)/", $line, $data)) { |
|
| 367 | ; |
|
| 368 | } elseif (preg_match("/(.*):(.*) A[ \t]+/", $line, $data)) { |
|
| 369 | ; |
|
| 370 | } else { |
|
| 371 | preg_match("/(.*):(.*) A$/", $line, $data); |
|
| 372 | } |
|
| 373 | foreach ($data as $key=>$value) { |
|
| 374 | if (preg_match("/^\+?([0-9\.]+).?$/", trim($value), $newvalue)) { |
|
| 375 | $data[$key] = trim($newvalue[1]); |
|
| 376 | } else { |
|
| 377 | $data[$key] = trim($value); |
|
| 378 | } |
|
| 379 | } |
|
| 380 | $dev = new SensorDevice(); |
|
| 381 | $dev->setName($data[1]); |
|
| 382 | $dev->setValue($data[2]); |
|
| 383 | ||
| 384 | if (isset($data[6]) && $data[2] <= $data[6]) { |
|
| 385 | $dev->setMax(max($data[4], $data[6])); |
|
| 386 | } elseif (isset($data[4]) && $data[2] <= $data[4]) { |
|
| 387 | $dev->setMax($data[4]); |
|
| 388 | } |
|
| 389 | if (preg_match("/\sALARM(\s*)$/", $line)) { |
|
| 390 | $dev->setEvent("Alarm"); |
|
| 391 | } |
|
| 392 | $this->mbinfo->setMbCurrent($dev); |
|
| 393 | } |
|
| 394 | } |
|
| 395 | ||
| 396 | /** |
|
| 397 | * get the information |
|