当前位置: 首页 > news >正文

礼品网站实例wordpress英文主题适合小白用吗

礼品网站实例,wordpress英文主题适合小白用吗,全屏网站模板制作教程,中国航空集团有限公司文章目录 一、消息头 数据1、消息头拼接2、消息 ID 字段3、消息体属性 字段4、终端手机号 字段5、终端流水号 字段 二、消息体 数据三、校验码计算四、最终计算结果五、终端注册应答1、分解终端应答数据2、终端应答 消息体 数据 六、字符编码转换网站 一、消息头 数据 1、消息头… 文章目录 一、消息头 数据1、消息头拼接2、消息 ID 字段3、消息体属性 字段4、终端手机号 字段5、终端流水号 字段 二、消息体 数据三、校验码计算四、最终计算结果五、终端注册应答1、分解终端应答数据2、终端应答 消息体 数据 六、字符编码转换网站 一、消息头 数据 1、消息头拼接 808 协议的消息头结构如下 : --------------------------------------------------------------------------- | 消息ID | 消息体属性 | 终端手机号 | 流水号 | 总包数 | 包序号 | | 2字节 | 2字节 | 6字节(BCD) | 2字节 | 2字节(可选)| 2字节(可选) | ---------------------------------------------------------------------------这是生成的 终端注册 消息头数据 : 消息头数据 : 01 00 00 36 01 85 11 88 88 88 00 01参考 下图进行解析 : 2、消息 ID 字段 0 ~ 1 字节 是消息 ID , 01 00 00 36 01 85 11 88 88 88 00 01 0x0100 是 终端注册的 消息 ID ; 3、消息体属性 字段 2 ~ 3 字节 是消息体属性 , 01 00 00 36 01 85 11 88 88 88 00 01 , 也就是 00 36 , 将其拆解成二进制形式 为 0000 0000 0011 0110参考下面的 位数 进行对应 , 保留位 是 00 , 分包位 是 0 , 数据加密方式是 000 , 消息体长度是 00 0011 0110 , 对应的十六进制为 0x36 , 十进制为 54 , 消息体长度 54 字节 ; 4、终端手机号 字段 4 ~ 9 字节 是 终端手机号 , 01 00 00 36 01 85 11 88 88 88 00 01 , 也就是 18511888888 十一位手机号 , 前面加上一个 0 ; 这是 BCD 编码 , 每个字节 高四位 表示一个数字 , 第四位表示一个数字 ; 使用 如下代码 , 可以实现 BCD 编码 到 数字字符串 之间的转换 ; /*** 读入数据时通过按位与操作将bcd编码转换成设备编号devId** param bcd* return*/public static String bcdToString(byte[] bcd) {// 存储转码后的字符串StringBuilder sb new StringBuilder();// 循环数组解码 先将每个位上的for (int i 0; i bcd.length; i) {// 转换低字节 十六进制的 0x0f 等于十进制的 15二进制表示为00001111直接取到低4位int low (bcd[i] 0x0f);// 转换高字节 十六进制的 0xf0 等于十进制的 240二进制表示为11110000右移4位的意思是取高4位int high ((bcd[i] 0xf0) 4);// 如果高字节等于0xf二进制1111说明是补的字节直接抛掉if (high ! 0xf) {sb.append(high);}sb.append(low);}// 返回解码字符串return sb.toString();}/*** 写出数据时将我们业务中的devId转换成bcd编码** param bcd* return*/public static byte[] strToBcd(String bcd) {// 获取字节数组长度int size bcd.length() / 2;int remainder bcd.length() % 2;// 存储BCD码字节byte[] bcdByte new byte[size remainder];// 转BCD码for (int i 0; i size; i) {int high Integer.parseInt(bcd.substring(2 * i, 2 * i 1));int low Integer.parseInt(bcd.substring(2 * i 1, 2 * i 2));bcdByte[i] (byte) ((high 4) | low);}// 如果存在余数需要填Fif (remainder 0) {int low Integer.parseInt(bcd.substring(bcd.length() - 1));bcdByte[bcdByte.length - 1] (byte) ((0xf 4) | low);}// 返回BCD码字节数组return bcdByte;}5、终端流水号 字段 10 ~ 11 字节 是 终端流水号 , 00 00 00 36 01 85 11 88 88 88 00 01 , 终端流水号 , 每次发送数据后 , 自增 1 ; 二、消息体 数据 终端注册 消息体 数据如下 : 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 ....BYD..2...... 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0048 - 0063: 00 00 00 00 00 00 ......参考下图进行解析 : 0 ~ 1 字节 : 是 省域 ID , short 双字节整型 , 下面 蓝色部分是 省域 ID 数据 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 … 2 ~ 3 字节 : 市县域 ID , short 整型 , 下面蓝色部分对应数据 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 4 ~ 8 字节 : 5 字节数据 , 制造商编码 , 下面蓝色部分是 BYD 字符串对应的 ASCII 码 , 后面是 两个 0 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 9 ~ 28 字节 : 20 字节的数据 , 终端型号 , 字符 2 对应的 ASCII 码 ; 下面蓝色字体部分 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 29 ~ 35 字节 : 7 字节的 二进制数据 , 这里设置的是 0 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 36 ~ 36 字节 : 1 字节的 二进制数据 , 颜色代码 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 37 ~ 53 字节 : 17 字节的 二进制数据 , VIN 码 , 车架号 , 这里设置默认 0 ; 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 …BYD…2… 0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … 0048 - 0063: 00 00 00 00 00 00 三、校验码计算 终端注册 消息头 : 0000 - 0015: 01 00 00 36 01 85 11 88 88 88 00 01消息体 : 0000 - 0015: 00 00 00 00 42 59 44 00 00 32 00 00 00 00 00 00 ....BYD..2......0016 - 0031: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................0048 - 0063: 00 00 00 00 00 00 ...... ....~校验位 : 0000 - 0015: E4将 消息头 消息体 两个字节数组 合并后 进行校验 , 使用如下函数 从第一字节开始 进行校验 直到最后一位 , /*** 校验位 校验码指从消息头开始同后一字节异或直到校验码前一个字节占用一个字节。** return*/public static byte crc(ByteBuf byteBuf) {ByteBuf buf byteBuf.copy();byte checksum 0;while (buf.readableBytes() 0) {checksum ^ buf.readUnsignedByte();}return checksum;}四、最终计算结果 将上述 消息头 消息体 校验位 拼装起来 , 查看 数据中是否有 0x7e 和 0x7d , 进行转义替换 ; 出现 0x7e 的转义处理 : 0x7e ———— 0x7d 后紧跟一个 0x02 出现 0x7d 的转义处理 : 0x7d ———— 0x7d 后紧跟一个 0x01。 最终的 终端注册数据包为 : 0000 - 0015: 7E 01 00 00 36 01 85 11 88 88 88 00 01 00 00 00 ~...6.6.........0016 - 0031: 00 42 59 44 00 00 32 00 00 00 00 00 00 00 00 00 .BYD..2.........0032 - 0047: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................0048 - 0063: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................0064 - 0079: 00 00 00 E4 7E ....~五、终端注册应答 返回 终端注册应答 数据 : 0000 - 0015: 7E 81 00 00 10 01 36 00 10 10 89 00 02 00 01 00 ~.....6.........0016 - 0031: BB CE CE D6 88 E2 47 AC BB 21 30 CE 39 48 7E ..........089H~1、分解终端应答数据 前后的 0x7E 是 标识位 ; 倒数第二位 0x48 是 校验位 ; 消息头的结构 : --------------------------------------------------------------------------- | 消息ID | 消息体属性 | 终端手机号 | 流水号 | 总包数 | 包序号 | | 2字节 | 2字节 | 6字节(BCD) | 2字节 | 2字节(可选)| 2字节(可选) | ---------------------------------------------------------------------------消息头提取出来 : 81 00 00 10 01 36 00 10 10 89 00 02消息体数据提取出来 : 00 01 00 BB CE CE D6 88 E2 47 AC BB 21 30 CE 39 48 7E参考下图进行解析 ; 2、终端应答 消息体 数据 消息体数据 : 00 01 00 BB CE CE D6 88 E2 47 AC BB 21 30 CE 39 48 7E00 01 是 应答 流水号 ;00 表示 终端注册 成功 ;BB CE CE D6 88 E2 47 AC BB 21 30 CE 39 是 鉴权码 字符串对应的 二进制数据 ; 六、字符编码转换网站 字符编码转换网站 : GBK 编码转换UTF-8 编码转换URL 编码转换
http://www.tj-hxxt.cn/news/216294.html

相关文章:

  • 网站建设规划与管理 试卷太原市建设北路小学网站
  • 乐清网站制作公司招聘校园推广方案经典范文
  • 网站内容建设需要注意哪些问题网站开发图片加载过慢如何优化
  • 培训网站建设多少钱上首页的seo关键词优化
  • 做网站需要的图片大小wordpress下载地址插件
  • 百度推广要不要建网站php网站开发实战视频教程
  • 北京赛车网站开发多少钱小程序登录不上
  • 酒店网站开发需求文档做好的网站怎么注销
  • 网站运营需要 做哪些工作中国电信企业邮箱登录入口
  • 移动端网站建设的意义网站建设价值
  • 做轻时尚的网站做短租类型的网站
  • 阿里云网站建设方案书一定要嘛网站建设读书笔记
  • 建怎么网站比较赚钱wordpress 评论美化
  • 网站建设能解决哪些问题网站使用帮助
  • 手机怎么创建自己的网站平台具有品牌的网站建设
  • 学校网站建设企业centos7安装wordpress
  • 给我一个用c 做的网站网站建设和维护释义
  • 美工素材网站有哪些无锡住房和城乡建设部网站
  • 外贸网站产品关键词做网站还是做app好
  • 男士手表网站电子商务网站建设与管理的理解
  • 中国建设银行网上银行网站长春网站建设q479185700惠
  • 地图设计网站wordpress装饰
  • 购物建设网站费用网站建设柒金手指花总14
  • 怎样查网站谁做的免费商城网站模板
  • 软件下载网站哪个比较好wordpress 执行效率
  • 网站备案 做网站时就需要吗专用车网站建设价格
  • 苏州市相城区住房和城乡建设局网站关于建设网站的图片素材
  • 电影网站膜拜网站建设推广哪家专业
  • 设计师个人网站建设中国字体设计
  • 网站关键字分析四站合一网站建设价格