123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Mead
- * Date: 2019/9/3
- * Time: 8:05 PM
- */
- namespace App\Servers\Weikemu\Transforms;
- use App\Models\BoxSettingTraitModel;
- use App\Models\WarningLogTraitModel;
- use App\Servers\BaseServer;
- use App\Servers\Weikemu\BikeControl;
- use App\Servers\Weikemu\Models\CacheLogTraitModel;
- /**
- * 响应报文
- * Class LoginServer
- * @package App\Servers
- */
- class ResponseTransform extends BaseServer
- {
- use BoxSettingTraitModel, WarningLogTraitModel, CacheLogTraitModel;
- public function main($body)
- {
- list($box_no, $msg_id, $error) = $this->decode($body);
- switch ($error) {
- case 0:
- //操作成功
- self::log('操作成功', 'WARNING');
- $this->cacheLog($box_no, $msg_id, true);
- break;
- case 101:
- self::log('设防过程中ACC线检测失败', 'WARNING');
- //设防过程中ACC线检测失败
- break;
- case 102:
- //设防过程命令超时
- self::log('设防过程命令超时', 'WARNING');
- break;
- case 103:
- //开锁过程ACC线检测失败
- self::log('开锁过程ACC线检测失败', 'WARNING');
- $this->cacheLog($box_no, $msg_id, false);
- break;
- case 104:
- //开锁过程命令超时
- self::log('开锁过程命令超时', 'WARNING');
- break;
- case 105:
- //关锁过程ACC线检测失败
- self::log('关锁过程ACC线检测失败', 'WARNING');
- break;
- case 106:
- //大灯开关超时
- self::log('大灯开关超时', 'WARNING');
- break;
- case 107:
- //参数存储失败
- self::log('参数存储失败', 'WARNING');
- break;
- case 108:
- //电池仓开启超时
- self::log('电池仓开启超时', 'WARNING');
- break;
- case 109:
- //操作不允许
- self::log('操作不允许', 'WARNING');
- break;
- case 110:
- //车辆移动
- self::log('车辆移动', 'WARNING');
- BikeControl::outAreaLoseElectric($box_no);
- break;
- case 111:
- //服务器域名和端口设置失效
- self::log('服务器域名和端口设置失效', 'WARNING');
- break;
- }
- return $this->response();
- }
- /**
- * 解析装载的状态消息
- * @param $body
- * @return array
- * User: Mead
- */
- private function decode($body)
- {
- $i = 0;
- // $box_time = self::stitching($body, $i, 4);
- $i += 4;
- $i += 1;
- $i += 1;
- //车辆状态
- $i += 4;
- $i += 2;
- $i += 1;
- $i += 1;
- $i += 1;
- $i += 2;
- $msg_id = self::stitching($body, $i, 2);
- $i += 2;
- // box_no
- $box_no = substr(self::stitching($body, $i, 8), 0, -1);
- $i += 8;
- $error = hexdec(self::stitching($body, $i, 1));
- return [
- $box_no,
- $msg_id,
- $error
- ];
- }
- /**
- * 状态响应
- * @param $login_type
- * @return boolean
- * User: Mead
- */
- public function response()
- {
- return false;
- }
- }
|