123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?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\Models\CacheLogTraitModel;
- /**
- * 配置报文
- * Class LoginServer
- * @package App\Servers
- */
- class UrlConfigTransform extends BaseServer
- {
- use BoxSettingTraitModel, WarningLogTraitModel, CacheLogTraitModel;
- /**
- * 处理设备序列号
- * @param $no
- * @return bool|string
- * User: Mead
- */
- private
- static function box_no($no)
- {
- return substr($no, 0, 9);
- }
- private static function handleConfigs($configs)
- {
- $data = self::handleU2($configs);
- return array_slice($data, 0, 8);
- }
- private static function handleIp($ip)
- {
- $ipArr = str_split($ip, 2);
- $res = '';
- foreach ($ipArr as $v) {
- $res .= base_convert($v, 16, 10) . '.';
- }
- return rtrim($res, '.');
- }
- private static function speedFormat($speed)
- {
- $MAXSPEEDPERCENT = 7;
- switch ($speed) {
- case 70:
- $MAXSPEEDPERCENT = 1;
- break;
- case 75:
- $MAXSPEEDPERCENT = 2;
- break;
- case 80:
- $MAXSPEEDPERCENT = 3;
- break;
- case 85:
- $MAXSPEEDPERCENT = 4;
- break;
- case 90:
- $MAXSPEEDPERCENT = 5;
- break;
- case 95:
- $MAXSPEEDPERCENT = 6;
- break;
- case 100:
- $MAXSPEEDPERCENT = 7;
- break;
- }
- return $MAXSPEEDPERCENT;
- }
- public function main($body)
- {
- $data = $this->decode($body);
- $this->cacheLog($data['box_no'], $this->msg_id, [
- 'SERVER' => $data['server_ip'] . ':' . $data['server_port']
- ]);
- return $this->response();
- }
- /**
- * 解析装载的状态消息
- * @param $body
- * @return array
- * User: Mead
- */
- private function decode($body)
- {
- $top34Data = $this->decodeWeiKeMuTop34($body);
- $i = 34;
- //
- $port = self::stitching($body, $i, 2); // i=34
- $i += 2;
- $url = self::stitching($body, $i); // i=34
- return array_merge($top34Data, [
- 'server_port' => hexdec($port),
- 'server_ip' => hex2bin($url)
- ]);
- }
- /**
- * 状态响应
- * @param $login_type
- * @return array
- * User: Mead
- */
- public function response($login_type = '00')
- {
- $body = [
- '5b',
- '0000'
- ];
- return $body;
- }
- }
|