本发明涉及协议编解码领域,解决二进制数据帧协议中帧长度的处理和编码问题。二进制数据帧协议由多个字段按顺序排列组成,每个字段有不同的数据类型、长度、范围以及比例因子等属性,并且特殊场景下该字段还可取消。帧长度字段是二进制数据帧协议的固有属性,一般为固定长度,内容为一帧数据中某段数据的字节长或比特长。
背景技术:
1、由于二进制数据帧协议的灵活性和不确定性,导致帧长度字段的处理过程和编码逻辑较为复杂,且容易出错。常规做法是协议帧确定后,人工计算帧长度,内容填为固定值。当协议发生变动时,需要重新人工计算帧长度,手动修改帧长度固定值。这种方法较机械,易出错,当协议较多时工作量大。本发明采用了一种灵活的帧长度处理流程,自动化的帧长度编码方法。
技术实现思路
1、本发明的目的是:提供一种二进制数据帧协议中帧长度的处理方法,解决二进制数据帧协议中帧长度的处理和编码问题。自动计算和编码帧长度内容,过程清晰,逻辑简单,后期协议和程序修改时,极大减少人力成本和出错概率。
2、本发明采用的技术方案为:
3、一种二进制数据帧协议中帧长度的处理方法,包含如下步骤:
4、步骤1:设置编码帧长度为0,并记录帧长度的编码起始位置a;同时,记录帧长度的相关参数,包括帧长度的大小和帧长度属性,帧长度的大小指的是字节数或比特数,帧长度属性指的是长度为字节数或比特数;
5、步骤2:在编码协议时,编码协议中除长度外的其他字段,并标记帧长度开始位置b和结束位置c;
6、步骤3:记d=c-b,根据帧长度属性将d做转换得到帧长度,并在编码后的二进制数据流位置a处重新编码帧长度,完成帧长度的编码。
7、其中,步骤3中根据帧长度属性将d做转换得到帧长度,具体为:
8、3.1:如果d的单位为字节,长度属性为字节时,帧长度=d;
9、3.2:如果d的单位为比特,长度属性为字节时,帧长度=d/8;
10、3.3:如果d的单位为比特,长度属性为比特时,帧长度=d;
11、3.4:如果d的单位为字节,长度属性为比特时,帧长度=d*8。
12、本发明技术具有如下优点:
13、(i)本发明提出的方法可以自动计算帧长度的值,无需软件编码人员人工计算长度。
14、(ii)本发明提出的方法可以可以减少代码的出错率,提高软件人员的工作效率。
1.一种二进制数据帧协议中帧长度的处理方法,其特征在于,包含如下步骤:
2.根据权利要求1所述的一种二进制数据帧协议中帧长度的处理方法,其特征在于,步骤3中根据帧长度属性将d做转换得到帧长度,具体为: