System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种二进制数据协议解析封装方法及系统技术方案_技高网

一种二进制数据协议解析封装方法及系统技术方案

技术编号:40591178 阅读:4 留言:0更新日期:2024-03-12 21:52
本发明专利技术公开了一种二进制数据协议解析封装方法及系统,所述方法包括:将待解析协议转换成二进制,并对其进行解析;若协议解析完成,则等待返回二进制数据;对返回的二进制数据进行封装。本发明专利技术通过对不规则的字节协议拆分分解,逆向组装成不规则的字节,更为简便地进行数据解析以及读取,并可以将数据组装成不同规则的字节协议。

【技术实现步骤摘要】

本专利技术涉及数据封装和解析,特别是一种二进制数据协议解析封装方法及系统


技术介绍

1、制定的协议尽量使用户可以方便直观的解析。但在无线领域,由于数据量要求,仅仅考虑传输数据的利用率,因此会将数据利用到bit级别,然而对于长数据的bit字节解析并没有很好的支持,c#中对数据的解析处理也仅仅到了byte级别,因此想要方便的解析到bit级别则需要进行特别的处理。


技术实现思路

1、鉴于此,本专利技术提供一种二进制数据协议解析封装方法及系统。

2、本专利技术公开了一种二进制数据协议解析封装方法,其包括:

3、步骤1:将待解析协议转换成二进制,并对其进行解析;

4、步骤2:若协议解析完成,则等待返回二进制数据;

5、步骤3:对返回的二进制数据进行封装。

6、进一步地,所述步骤1包括:

7、步骤11:将待解析协议data1转成二进制表示,将每个二进制数据依次存入长度为8n的集合data2中;其中,待解析数据data1的长度为n;

8、步骤12:设置当前读取的索引index,需要读取的数据长度为m个bit,从集合data2中提取从index开始的m个数据组成集合data3;

9、步骤13:遍历集合data3,分别将集合data3中的第j个元素左移j位,并将每次左移之后的元素累加,将累加结果存储在集合data4中;最终返回data4。

10、进一步地,所述步骤3之后,还包括:

>11、通过getencodedata()直接获取已经封装的字节数据。

12、进一步地,所述步骤2包括:

13、步骤21:建立中间数据集合datalist;

14、步骤22:根据协议取出待封装数据data,设定协议占用n个bit;其中,该待封装数据data为返回的二进制数据;

15、步骤23:将data转为长度为n的二进制数据,数据不足部分,用0占位补全;

16、步骤24:将每个bit依次添加到datalist;datalist为建立的中间二进制数据集合;

17、步骤25:判断协议是否封装完成。

18、进一步地,所述步骤25包括:

19、若协议没有封装完成,则重新执行步骤22;

20、若协议封装完成,则设置当前组装的i。

21、进一步地,在所述设置当前组装的i之后,还包括:

22、步骤26:判断8i是否小于datalist的长度,若否,则结束;若是,则取出datalist中的8i到8(i+1)的元素;

23、步骤27:遍历数据8(i+j),将其左移j位并累加得到一个byte数据;

24、步骤28:组装协议数据;

25、步骤29:将i的数值加1;重新执行步骤26,直到8i大于或等于datalist的长度为止。

26、本专利技术还公开了一种实现上述任一项所述的二进制数据协议解析封装方法的系统,所述系统包括:

27、解析模块,用于将待解析协议转换成二进制,并对其进行解析;

28、返回模块,用于若协议解析完成,则等待返回二进制数据;

29、封装模块,用于对返回的二进制数据进行封装。

30、由于采用了上述技术方案,本专利技术具有如下的优点:

31、1.通过封装一个工具类,可以更方便的解析和组装二进制的协议数据,简化二进制协议处理流程,通过此工具类不用关心内部处理逻辑,直接根据协议规定的数据结构读取协议,转化成方便理解的数据,解决了二进制数据不方便读取和组装的问题。

32、2.本方法可以支持所有面向对象的编程语言,不仅仅局限于c#,由于所有操作都是基于基本的计算单元,没有引用其他组件,因此具有良好的可移植性,可拓展性,可维护性。

本文档来自技高网...

【技术保护点】

1.一种二进制数据协议解析封装方法,其特征在于,包括:

2.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步骤1包括:

3.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步骤3之后,还包括:

4.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步骤2包括:

5.根据权利要求4所述的二进制数据协议解析封装方法,其特征在于,所述步骤25包括:

6.根据权利要求5所述的二进制数据协议解析封装方法,其特征在于,在所述设置当前组装的i之后,还包括:

7.一种实现权利要求1至6任一项所述的二进制数据协议解析封装方法的系统,其特征在于,所述系统包括:

【技术特征摘要】

1.一种二进制数据协议解析封装方法,其特征在于,包括:

2.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步骤1包括:

3.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步骤3之后,还包括:

4.根据权利要求1所述的二进制数据协议解析封装方法,其特征在于,所述步...

【专利技术属性】
技术研发人员:路航王红林申江
申请(专利权)人:成都九洲迪飞科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1