decode($body); $this->cacheLog($data['box_no'], $this->msg_id, [ 'SERVER' => $data['server_ip'] . ':' . $data['server_port'] ]); return $this->response(); } /** * 状态响应 * @param $login_type * @return array * User: Mead */ public function response($login_type = '00') { $body = [ '5b', '0000' ]; return $body; } /** * 解析装载的状态消息 * @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 $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; } }