BoxStatusServer.php 1012 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Servers;
  3. class BoxStatusServer extends BaseServer
  4. {
  5. public function main($body)
  6. {
  7. $body = $this->decodeBody($body);
  8. self::log($body, '状态');
  9. self::setCache($body['imei'] . ':' . ClientServer::STATUS_CMD, $body);
  10. return false;
  11. }
  12. private function decodeBody($body)
  13. {
  14. $i = 0;
  15. $imei = self::decodeBoxNo(self::stitching($body, $i, 15, false));
  16. $i += 15;
  17. $temperature = self::stitching($body, $i, 1);
  18. $i += 1;
  19. $water_level_warning = (int)self::stitching($body, $i, 1);
  20. $i += 1;
  21. $water_quality = self::stitching($body, $i, 1);
  22. $i += 1;
  23. $box_status = (int)self::stitching($body, $i, 1);
  24. $i += 1;
  25. return [
  26. 'imei' => $imei,
  27. 'temperature' => $temperature,
  28. 'water_level_warning' => $water_level_warning,
  29. 'water_quality' => $water_quality,
  30. 'box_status' => $box_status,
  31. ];
  32. }
  33. }