一种处理传输数据的方法和装置的制作方法

文档序号:7853112阅读:179来源:国知局
专利名称:一种处理传输数据的方法和装置的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种处理传输数据的方法和装置。
背景技术
在数据传输过程中,由于接收端没有反向的传输通道对接收到的数据进行反馈确认,发送端通常采用循环播放的方法发送数据。发送端发送的数据通常包括数据头、数据长度、数据正文和校验码。接收端通过从数据头开始,进行数据采集。发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷现有的数据传输机制中,当存在接收端介入的时间差时,即,当接收端初始介入接 收的数据不是数据头时,接收端通常会从下一次传输的数据头开始接收数据,导致接收端的接收时间加长。

发明内容
本发明实施例提供了一种处理传输数据的方法和装置,用以解决数据传输过程中由于接收端介入的时间差而导致的接收时间过长的问题。本发明实施例提供了一种处理传输数据的方法,包括以下步骤①、接收第一预设长度的数据,将接收到的数据存储到第一存储区;②、判断所述第一存储区中最后接收到的第一预设长度的数据是否为所述数据头,如果不是所述数据头,则执行步骤③;如果是所述数据头,则执行步骤④;③、继续接收第十一预设长度的数据,将接收到的数据存储到所述第一存储区,并返回步骤②;④、继续接收第二预设长度的数据并存储到第二存储区,根据所述第二存储区中的第三预设长度的数据,获取数据长度;根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度;对所述需要接收的剩余数据长度进行判断,如果所述需要接收的剩余数据长度大于零,则执行步骤⑤;如果所述需要接收的剩余数据长度为零,则执行步骤⑥;如果所述需要接收的剩余数据长度小于零,则执行步骤⑦;⑤、根据所述需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到所述第二存储区,并对所述第一存储区和所述第二存储区中的数据进行拼接;⑥、对所述第一存储区和所述第二存储区中的数据进行拼接;⑦、根据所述校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度;根据所述丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,并对所述第一存储区和所述第二存储区中的数据进行拼接。本发明实施例还提供了一种处理传输数据的方法,包括以下步骤①、接收第五预设长度的数据,将接收到的数据存储到第三存储区;
②、判断所述第三存储区中的数据是否符合预设格式,如果不符合预设格式,则执行步骤③或者④;如果符合预设格式,则结束流程;③、对所述第三存储区中的数据的顺序进行调整,并在调整后的所述第三存储区中的数据符合预设格式时,结束流程;④、将所述第三存储区中的数据存储到第四存储区;⑤、对所述第四存储区中的数据的顺序进行调整,并在调整后的所述第四存储区中的数据符合预设格式时,结束流程。本发明实施例还提供了一种处理传输数据的方法,包括以下步骤A、接收第一预设长度的数据,将接收到的数据存储到第七存储区;
B、判断所述第七存储区中最后接收到的第一预设长度的数据是否为数据头,如果是,则执行步骤D ;否则,执行步骤C ;C、继续接收第二预设长度的数据,将接收到的数据存储到所述第七存储区中,并返回步骤B ;D、确定需要接收的剩余数据长度,根据所述需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区,对所述第七存储区和所述第八存储区中的数据进行拼接,根据数据头的位置,将拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将该数据包存储到第九存储区,判断所述第九存储区中的数据包是否均符合预设格式,如果是,则执行步骤E ;否则,执行步骤F ;E、按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组;F、根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包;G、对重新接收的数据包进行判断,当所述重新接收的数据包均符合预设格式时,根据所述重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组。本发明实施例还提供了一种处理传输数据的装置,包括接收模块、第一判断模块、第二判断模块、第一获取模块、第二获取模块、第三获取模块、丢弃模块和拼接模块,其中,所述接收模块,用于接收第一预设长度的数据,将接收到的数据存储到第一存储区;在所述第一判断模块判断所述第一存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第十一预设长度的数据,将接收到的数据存储到所述第一存储区,并触发所述第一判断模块进行判断;在所述第一判断模块判断所述第一存储区中最后接收到的第一预设长度的数据是数据头时,继续接收第二预设长度的数据并存储到第二存储区;在所述第二判断模块判断需要接收的剩余数据长度大于零时,根据所述需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到所述第二存储区,并触发所述拼接模块进行拼接;所述第一判断模块,用于判断所述第一存储区中最后接收到的第一预设长度的数据是否为所述数据头;所述第一获取模块,用于根据所述第二存储区中的第三预设长度的数据,获取数据长度;所述第二获取模块,用于根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度;所述第二判断模块,用于对所述需要接收的剩余数据长度进行判断,并在所述需要接收的剩余数据长度为零时,触发所述拼接模块进行拼接;所述第三获取模块,用于在所述第二判断模块判断需要接收的剩余数据长度小于零时,根据所述校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度;所述丢弃模块,用于根据所述丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,并触发所述拼接模块进行拼接;所述拼接模块,用于对所述第一存储区和所述第二存储区中的数据进行拼接。本发明实施例还提供了一种处理传输数据的装置,包括·接收模块,用于接收第五预设长度的数据,将接收到的数据存储到第三存储区;第一判断模块,用于判断所述第三存储区中的数据是否符合预设格式;处理模块,用于在所述第一判断模块判断所述第三存储区中的数据不符合预设格式时,对所述第三存储区中的数据的顺序进行调整,并在调整后的所述第三存储区中的数据符合预设格式时,结束流程;或者,在所述第一判断模块判断所述第三存储区中的数据不符合预设格式时,将所述第三存储区中的数据存储到第四存储区,对所述第四存储区中的数据的顺序进行调整,并在调整后的所述第四存储区中的数据符合预设格式时,结束流程。本发明实施例还提供了一种处理传输数据的装置,包括接收模块、第一判断模块、第二判断模块、第三判断模块、确定模块、拼接模块、划分模块、重组模块和替换模块,其中,所述接收模块,用于接收第一预设长度的数据,将接收到的数据存储到第七存储区;在所述第一判断模块判断所述第七存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第二预设长度的数据,将接收到的数据存储到所述第七存储区中,并触发所述第一判断模块进行判断;根据所述确定模块确定出的需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区;在所述第二判断模块的判断结果为否时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包;所述第一判断模块,用于判断所述第七存储区中最后接收到的第一预设长度的数据是否为数据头;所述确定模块,用于在所述第一判断模块判断所述第七存储区中最后接收到的第一预设长度的数据是数据头时,确定所述需要接收的剩余数据长度;所述拼接模块,用于对所述第七存储区和所述第八存储区中的数据进行拼接;所述划分模块,用于根据数据头的位置,将所述拼接模块拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将该数据包存储到第九存储区;所述第二判断模块,用于判断所述第九存储区中的数据包是否均符合预设格式,在判断结果为是时,触发所述重组模块进行重组;所述重组模块,用于按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组;所述第三判断模块,用于对重新接收的数据包进行判断;
所述替换模块,用于在所述第三判断模块判断所述重新接收的数据包均符合预设格式时,根据所述重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并触发所述重组模块进行重组。本发明实施例通过对接收到的数据进行拼接,或者通过对接收到的数据进行移位以实现对该数据的重新组合,能够减少数据接收时间,提高数据接收速度。


图I为本发明实施例一中的一种处理传输数据的方法流程图;图2为本发明实施例二中的一种处理传输数据的方法流程
图3为本发明实施例三中的一种处理传输数据的方法流程图;图4为本发明实施例四中的一种处理传输数据的方法流程图;图5为本发明实施例五中的一种处理传输数据的方法流程图;图6为本发明实施例六中的一种处理传输数据的装置结构图;图7为本发明实施例七中的一种处理传输数据的装置结构图;图8为本发明实施例八中的一种处理传输数据的装置结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例一提出一种处理传输数据的方法,发送端以比特为单位发送数据,传输数据按照从高位到低位的顺序依次包括数据头、数据类别、数据长度、有效数据和校验码,其中,数据头的长度为第一预设数量比特,数据类别和数据长度的长度之和为第二预设数量比特,数据长度的长度为第三预设数量比特。接收端处理传输数据的方法流程,如图I所示,包括以下步骤步骤101,接收第一预设数量比特的数据,将接收到的数据存储到第一存储区。其中,第一预设数量比特可以为数据头的长度,数据头用于指示数据的开始。例如,当数据头的长度为6比特时,可以接收6比特的数据,并将该6比特的数据存储到第一存储区。步骤102,判断第一存储区中最后接收到的第一预设数量比特的数据是否为数据头,如果是,则执行步骤104,否则,执行步骤103。具体地,当数据头的内容为预设内容时,判断第一存储区中最后接收到的第一预设数量比特的数据的内容是否为预设内容。例如,当数据头的长度为6比特,内容为“111110”时,可以判断第一存储区中最后接收到的6比特的数据的内容是否为“111110”。步骤103,继续接收第十一预设数量比特的数据,将接收到的数据存储到第一存储区,并返回步骤102。
其中,第十一预设数量比特可以为I比特,也可以为其他数量的比特。步骤104,继续接收第二预设数量比特的数据,将该数据存储到第二存储区。其中,第二预设数量比特可以为数据类别和数据长度的长度之和。例如,当数据类别的长度为2比特,数据长度的长度为8比特时,可以继续接收10比特的数据,并将该10比特的数据存储到第二存储区。步骤105,根据第二存储区中最后接收到的第三预设数量比特的数据,获取数据长 度。具体地,可以读取第二存储区中最后接收到的第三预设数量比特的数据的内容,将该内容作为数据长度。数据长度通常以BCD码的形式表示。例如,当第三预设数量比特为8比特,第二存储区中最后接收到的第三预设数量比特的数据为“00010100”时,则数据长度为20比特。步骤106,根据校验码的长度、第一存储区中除数据头之外的其他数据的长度和数据长度,获取需要接收的剩余数据长度。具体地,可以将校验码的长度和数据长度之和,减去第一存储区中除数据头之外的其他数据的长度,得到需要接收的剩余数据长度。例如,当数据长度为20比特,校验码的长度为4比特,第一存储区存储有16比特的数据,其中包括长度为6比特的数据头时,则需要接收的剩余数据长度为20+4- (16-6)=14比特。步骤107,判断需要接收的剩余数据长度是否大于零,如果大于零,则执行步骤108 ;否则,执行步骤109。步骤108,根据需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到第二存储区,并对第一存储区和第二存储区中的数据进行拼接。具体地,可以继续接收长度为需要接收的剩余数据长度的数据,并将该数据存储到第二存储区。在对第一存储区和第二存储区中的数据进行拼接时,可以按照第一存储区中的数据头、第二存储区中的数据、第一存储区中除数据头之外的其他数据的顺序,进行拼接。例如,当需要接收的剩余数据长度为14比特时,可以继续接收14比特的数据“01010101010101”,并将该数据“01010101010101”存储到第二存储区中,则第二存储区存储的数据的内容为“010001010001010101010101”。第一存储区存储有16比特数据“0101010101111110”,其中包括长度为6比特的数据头“111110”,则拼接得到的数据为“1111100100010100010101010101010101010101”。步骤109,判断需要接收的剩余数据长度是否为零,如果为零,则执行步骤110 ;否贝U,执行步骤111。步骤110,对第一存储区和第二存储区中的数据进行拼接。具体地,在对第一存储区和第二存储区中的数据进行拼接时,可以按照第一存储区中的数据头、第二存储区中的数据、第一存储区中除数据头之外的其他数据的顺序,进行拼接。例如,当第一存储区存储有30比特“010101010101010101010101111110”,其中包括长度为6比特的数据头“111110”,第二存储区存储的数据的内容为“0100010100”,则拼接得到的数据为 “1111100100010100010101010101010101010101”。步骤111,根据校验码的长度、第一存储区中除数据头之外的其他数据的长度和数据长度,获取丢弃数据长度。具体地,可以将第一存储区中除数据头之外的其他数据的长度,减去校验码的长度和数据长度之和,得到丢弃数据长度。例如,当数据长度为20比特,校验码的长度为4比特,数据头的长度为6比特,第一存储区存储有36比特的数据,则丢弃数据长度为(36-6)- (20+4)=6比特。 步骤112,根据丢弃数据长度,将第一存储区和/或第二存储区中的部分数据丢弃,并对第一存储区和第二存储区中的数据进行拼接。具体地,可以对第一存储区中最先接收的、长度为丢弃数据长度的数据进行丢弃,并按照第一存储区中的数据头、第二存储区中的数据、第一存储区中除数据头之外的其他数据的顺序,对第一存储区和第二存储区中的数据进行拼接。例如,当丢弃数据长度为6比特,第一存储区存储有36比特的数据“010100010101010101010101010101111110”,第二存储区存储有10比特的数据“0100010100”,则将第一存储区中最先接收到的6比特数据“010100”丢弃,拼接得到的数据为“1111100100010100010101010101010101010101”。也可以对第二存储区中最后接收到的、长度为丢弃数据长度的数据进行丢弃,并按照第一存储区中的数据头、第二存储区中的数据、第一存储区中除数据头之外的其他数据的顺序,对第一存储区和第二存储区中的数据进行拼接。例如,当丢弃数据长度为6比特,第一存储区存储有36比特的数据“010100010101010101010101010101111110”,第二存储区存储有10比特的数据“0100010100”,则将第二存储区中最后接收到的6比特数据“010100”丢弃,拼接得到的数据为“1111100100010100010101010101010101010101”。还可以对第一存储区中最先接收的、长度为第四预设数量比特的数据进行丢弃,对第二存储区中最后接收到的、长度为丢弃数据长度与第四预设数量比特之差的数据进行丢弃,并按照第一存储区中的数据头、第二存储区中的数据、第一存储区中除数据头之外的其他数据的顺序,对第一存储区和第二存储区中的数据进行拼接,其中,第四预设数量比特小于丢弃数据长度。例如,当丢弃数据长度为6比特,第四预设数量比特为3比特,第一存储区存储有36比特的数据“010100010101010101010101010101111110”,第二存储区存储有10比特的数据“0100010100”,则将第一存储区中最先接收到的3比特数据“010”丢弃,将第二存储区中最后接收到的3比特数据“100”丢弃,拼接得到的数据为“1111100100010100010101010101010101010101”。本发明实施例在接收到数据头和数据长度之后,根据该数据长度以及在接收到数据头之前接收并存储的数据的长度,确定是否继续接收数据,并对接收到的数据进行拼接,能够减少数据接收时间,提高数据接收速度。需要说明的是,在本发明的其他实施方式中,第一存储区和第二存储区可以为同
一存储区。在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括数据头、数据长度、数据类别、有效数据和校验码,其中,数据类别和数据长度的长度之和为第二预设数量比特,数据长度的长度为第三预设数量比特,相应地,可以根据第二存储区中最先接收到的第三预设数量比特的数据,获取数据长度。在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括数据头、数据长度、有效数据和校验码,相应地,第二预设数量比特与第三预设数量比特相等。实施例二在本发明实施例二中,发送端可以发送预设长度的数据,S卩,发送端与接收端预先约定需要传输的数据的长度,发送端发送的数据中包括数据头、有效数据和校验码,数据总长度为第五预设数量比特,数据头的长度为第六预设数量比特,有效数据的长度为第七预设数量比特。本发明实施例二中的接收端处理传输数据的方法,如图2所示,包括以下步骤 步骤201,接收端接收第五预设数量比特的数据,将接收到的数据存储到第三存储区。其中,第五预设数量比特为发送端发送的数据头、有效数据和校验码的长度之和。当发送端先发送高位数据时,接收端可以将先接收到的数据作为高位数据存储到第三存储区,将后接收到的数据作为低位数据存储到第三存储区;当发送端先发送低位数据时,接收端可以将先接收到的数据作为低位数据存储到第三存储区,将后接收到的数据作为高位数据存储到第三存储区。步骤202,接收端判断第三存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤203。其中,预设格式可以为按照从高位到低位的顺序,第三存储区中的数据依次包括数据头、有效数据和校验码,数据头的长度为第六预设数量比特,有效数据的长度为第七预设数量比特,且数据头的内容为预设内容,根据有效数据计算得到的校验值与校验码的内容相同。接收端可以按照从高到低的顺序从第三存储区读取第六预设数量比特的数据,判断读取到的数据的内容是否为预设内容,如果不是预设内容,则确定存储的数据不符合预设格式;如果是预设内容,则继续从第三存储区读取第七预设数量比特的数据,根据读取到的第七预设数量比特的数据获取校验值,判断该校验值是否与第三存储区中剩余的数据的内容相同,如果相同,则确定第三存储区中的数据符合预设格式;如果不同,则确定第三存储区中的数据不符合预设格式。例如,第五预设数量比特为30个比特,第六预设数量比特为6个比特,第七预设数量比特为20个比特,第三存储区中的数据为“111110010101010101010101010101”,接收端先读取6个比特的数据“111110”,在确定读取的6个比特的数据的内容与预设内容相同后,继续读取20个比特的数据“01010101010101010101”,根据该20个比特的数据计算校验值,如果计算得到的校验值与剩余的数据“0101”相同,则确定第三存储区中的数据符合预设格式;否则,则确定存储的数据不符合预设格式。步骤203,接收端将第三存储区中的数据存储到第四存储区,将第四存储区中的数据左移第八预设数量比特,将被移出第四存储区的数据补到移位后的剩余数据的右端,并将左移次数加I。
具体地,接收端可以按照各个比特数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中的剩余数据的右端。其中,第八预设数量比特可以为I比特,也可以大于I比特,左移次数的初始值可以为O。例如,当第四存储区存储的数据为“010111111001010101010101010101”,第八预设数量比特为4个比特时,接收端可以将“0101”移出第四存储区,并将“0101”存储到移位后的剩余数据“11111001010101010101010101”的右端,得到“111110010101010101010101010101”。步骤204,接收端判断第四存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤205。具体地,接收端判断第四存储区中的数据是否符合预设格式的具体方法,可以与步骤202中接收端判断第三存储区中的数据是否符合预设格式的具体方法相同。
步骤205,接收端判断左移次数是否小于预设次数,如果小于预设次数,则返回步骤203 ;否则,执行步骤206。其中,当第八预设数量比特为I比特时,预设次数的取值可以为第四存储区存储的数据的比特数减I得到的结果。步骤206,接收端将第三存储区中最先接收到的第九预设数量比特的数据丢弃,从发送端接收第九预设数量比特的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并返回步骤202。具体地,接收端可以将接收到的第九预设数量比特的数据存储到第三存储区中的已有数据的右端或左端,接收端将第九预设数量比特的数据存储到第三存储区的方式,可以与接收端将第五预设数量比特的数据存储到第三存储区的方式相同。其中,第九预设数量比特可以为I比特,也可以大于I比特。本发明实施例在接收到的数据不符合预设格式时,通过对接收到的数据进行移位以实现对该数据的重新组合,以使组合后的数据符合预设格式,可以在预定长度数据对应的时间内将数据接收完毕,缩短了数据接收时间,提高了数据接收速度。需要说明的是,在本发明的其他实施方式中,接收端也可以将第四存储区中的数据右移第十预设数量比特,将被移出的数据补到第四存储区中的剩余数据的左端。具体地,接收端可以按照各个比特数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中与已有数据相邻的位置,即,已有数据的左端,并继续判断第四存储区中的数据是否符合预设格式。同样可以实现本发明的发明目的。在本发明的其他实施方式中,可以将第四存储区中的数据定义为一个循环队列,当第四存储区中的数据不符合预设格式时,则将该循环队列的指针向预设方向移位第八预设数量比特,将移位次数加1,并判断移位后的循环队列中的数据是否符合预设格式,如不符合,则继续将该循环队列的指针向预设方向移位第八预设数量比特,直到移位后的循环队列中的数据符合预设格式,或者移位次数大于或等于预设次数,则将第三存储区中最先接收到的第九预设数量比特的数据丢弃,从发送端接收第九预设数量比特的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并继续判断第三存储区中的数据是否符合预设格式。在本发明的其他实施方式中,发送端发送的数据中包括有效数据和校验码,数据总长度为第五预设数量比特,有效数据的长度为第七预设数量比特。相应地,预设格式可以具体为按照从高位到低位的顺序,数据依次包括有效数据和校验码,有效数据的长度为第七预设数量比特,且根据有效数据计算得到的校验值与校验码的内容相同。实施例三本发明实施例一和本发明实施例二中,发送端以比特为单位发送数据;本发明实施例三中,发送端以字节为单位发送数据,传输数据包括数据头、数据长度、有效数据和校验码,其中,数据头的长度为第一预设数量字节,数据长度的长度为第二预设数量字节。接收端处理传输数据的方法流程,如图3所示,包括以下步骤步骤301,接收第一预设数量字节的数据,将接收到的数据存储到第五存储区。其中,第一预设数量字节可以为数据头的长度。例如,当数据头的长度为2字节 时,可以接收2字节的数据,并将该2字节的数据存储到第五存储区。步骤302,判断第五存储区中最后接收到的第一预设数量字节的数据是否为数据头,如果是,则执行步骤304,否则,执行步骤303。具体地,当数据头的内容为预设内容时,判断第五存储区中最后接收到的第一预设数量字节的数据的内容是否为预设内容。例如,当数据头的长度为2字节,预设内容为“AA 44”时,可以判断第五存储区中最后接收到的2字节的数据的内容是否为“AA 44”。步骤303,继续接收第十一预设数量字节的数据,将接收到的数据存储到第五存储区,并返回步骤302。其中,第十一预设数量字节可以为I字节,也可以为其他数量的字节。步骤304,继续接收第二预设数量字节的数据,将该数据存储到第六存储区。其中,第二预设数量字节可以为数据长度的长度。例如,当数据长度的长度为I字节时,可以继续接收I字节的数据,并将该I字节的数据存储到第六存储区。步骤305,根据第六存储区存储的数据,获取数据长度。具体地,可以读取第六存储区存储的数据的内容,将该内容作为数据长度。例如,当第六存储区存储的数据为“05”时,则数据长度为5字节。步骤306,根据校验位的长度、第五存储区中除数据头之外的其他数据的长度和数据长度,获取需要接收的剩余数据长度。具体地,可以将校验位的长度和数据长度之和,减去第五存储区中除数据头之外的其他数据的长度,得到需要接收的剩余数据长度。例如,当数据长度为5字节,校验位的长度为I字节,第五存储区存储有4字节的数据,其中包括长度为2字节的数据头时,则需要接收的剩余数据长度为5+1- (4-2) =4字节。步骤307,判断需要接收的剩余数据长度是否大于零,如果大于零,则执行步骤308 ;否则,执行步骤309。步骤308,根据需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到第六存储区,并对第五存储区和第六存储区中的数据进行拼接。具体地,可以继续接收长度为需要接收的剩余数据长度的数据,并将该数据存储到第六存储区。在对第五存储区和第六存储区中的数据进行拼接时,可以按照第五存储区中的数据头、第六存储区中的数据、第五存储区中除数据头之外的其他数据的顺序,进行拼接。例如,当需要接收的剩余数据长度为4字节时,可以继续接收4字节的数据,并将该数据存储到第六存储区中,则第六存储区存储的数据的内容为“05 01 02 03 04”。第五存储区存储有4字节的数据“05 EA AA 44”,其中包括长度为2字节的数据头“AA 44”,则拼接得到的数据为“AA 44 05 01 02 03 04 05 EA”。步骤309,判断需要接收的剩余数据长度是否为零,如果为零,则执行步骤310;否贝U,执行步骤311。步骤310,对第五存储区和第六存储区中的数据进行拼接。
具体地,在对第五存储区和第六存储区中的数据进行拼接时,可以按照第五存储区中的数据头、第六存储区中的数据、第五存储区中除数据头之外的其他数据的顺序,进行拼接。例如,当第五存储区存储有4字节的数据“05 EA AA 44”,其中包括长度为2字节的数据头“AA 44”,第六存储区存储的数据的内容为“05 01 02 03 04”,则拼接得到的数据为 “AA 44 05 01 02 03 04 05 EA”。步骤311,根据校验码的长度、第五存储区中除数据头之外的其他数据的长度和数据长度,获取丢弃数据长度。具体地,可以将第五存储区中除数据头之外的其他数据的长度,减去校验码的长度和数据长度之和,得到丢弃数据长度。例如,当数据长度为5字节,校验位的长度为I字节,数据头的长度为2字节,第五存储区存储有4字节的数据,第六存储区存储有6字节的数据,则丢弃数据长度为(6+4-2)- (5+1)=2 字节。步骤312,根据丢弃数据长度,将第五存储区和/或第六存储区中的部分数据丢弃,并对第五存储区和第六存储区中的数据进行拼接。具体地,可以对第五存储区中最先接收的、长度为丢弃数据长度的数据进行丢弃,并按照第五存储区中的数据头、第六存储区中的数据、第五存储区中除数据头之外的其他数据的顺序,对第五存储区和第六存储区中的数据进行拼接。例如,当丢弃数据长度为2字节,第五存储区存储有4字节的数据“05 EA AA 44”,第六存储区存储有6字节的数据“05 01 02 03 04 05 EA”,则将第五存储区中最先接收到的2字节的数据“05 EA”丢弃,拼接得到的数据为“AA 44 05 01 02 03 04 05 EA”。也可以对第六存储区中最后接收到的、长度为丢弃数据长度的数据进行丢弃,并按照第五存储区中的数据头、第六存储区中的数据、第五存储区中除数据头之外的其他数据的顺序,对第五存储区和第六存储区中的数据进行拼接。例如,当丢弃数据长度为2字节,第五存储区存储有4字节的数据“05 EA AA 44”,第六存储区存储有6字节的数据“05 01 02 03 04 05 EA”,则将第六存储区中最后接收到的2字节的数据“05 EA”丢弃,拼接得到的数据为“AA 44 05 01 02 03 04 05 EA”。还可以对第五存储区中最先接收的、长度为第四预设数量字节的数据进行丢弃,对第六存储区中最后接收到的、长度为丢弃数据长度与第四预设数量字节之差的数据进行丢弃,并按照第五存储区中的数据头、第六存储区中的数据、第五存储区中除数据头之外的其他数据的顺序,对第五存储区和第六存储区中的数据进行拼接,其中,第四预设数量字节小于丢弃数据长度。例如,当丢弃数据长度为2字节,第四预设数量字节为I字节,第五存储区存储有4字节的数据“05 EA AA 44”,第六存储区存储有6字节的数据“05 01 02 03 04 05 EA”,则将第五存储区中最先接收到的I字节的数据“05”丢弃,将第六存储区中最后接收到的I字节的数据“EA”丢弃,拼接得到的数据为“AA 44 05 01 02 03 04 05 EA”。本发明实施例在接收到数据头和数据长度之后,根据该数据长度以及在接收到数据头之前接收并存储的数据的长度,确定是否继续接收数据,并对接收到的数据进行拼接,能够减少数据接收时间,提高数据接收速度。需要说明的是,在本发明的其他实施方式中,第五存储区和第六存储区可以为同
一存储区。 在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括数据头、数据长度、数据类别、有效数据和校验码,其中,数据类别和数据长度的长度之和为第二预设数量比特,数据长度的长度为第三预设数量比特,相应地,可以根据第二存储区中最先接收到的第三预设数量比特的数据,获取数据长度。在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括数据头、数据类别、数据长度、有效数据和校验码,其中,数据类别和数据长度的长度之和为第二预设数量比特,数据长度的长度为第三预设数量比特,相应地,可以根据第二存储区中最后接收到的第三预设数量比特的数据,获取数据长度。实施例四本发明实施例四提供的技术方案中,发送端可以将传输数据分成多个数据包,并循环发送各个数据包,每个数据包包括数据头、编号、有效数据和校验码,其中,数据头的长度为第一预设长度,数据包的长度为第三预设长度,编号和有效数据的长度之和为第四预设长度,有效数据的长度为第五预设长度,数据头和编号的长度之和为第六预设长度,编号的长度为第七预设长度,有效数据和校验码的长度之和为第八预设长度。接收端处理传输数据的方法流程,如图4所示,包括以下步骤步骤401,接收第一预设长度的数据,将接收到的数据存储到第七存储区。其中,第一预设长度可以为数据头的长度。例如,当数据头的长度为2字节时,可以接收2字节的数据,并将该2字节的数据存储到第七存储区。步骤402,判断第七存储区中最后接收到的第一预设长度的数据是否为数据头,如果是,则执行步骤404,否则,执行步骤403。具体地,当数据头的内容为预设内容时,判断第七存储区中最后接收到的第一预设数量字节的数据的内容是否为预设内容。例如,当数据头的长度为2字节,预设内容为“AA 44”时,可以判断第七存储区中最后接收到的2字节的数据的内容是否为“AA 44”。步骤403,继续接收第二预设长度的数据,将接收到的数据存储到第七存储区中,并返回步骤402。其中,第二预设长度可以为I字节,也可以为I比特,还可以为其他长度。步骤404,根据第七存储区中的数据的长度确定需要接收的剩余数据长度,根据该需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区,并按照第七存储区中的数据头、第八存储区中的数据、第七存储区中除数据头之外的其他数据的顺序,对第七存储区和第八存储区中的数据进行拼接,根据数据头的位置,将拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将该数据包存储到第九存储区。具体地,可以将发送端发送的传输数据的长度减去第七存储区中的数据的长度,得到需要接收的剩余数据长度,并继续接收长度为需要接收的剩余数据长度的数据,将接收到的数据与第七存储区中的数据拼接,并按照数据头的位置,对拼接得到的数据进行划分,划分得到的多个数据包的长度均为第三预设长度,每个数据包均包括一个数据头,且数据头位于数据包中最靠前的位置。其中,第三预设长度为数据包的长度。例如,当发送端发送的数据的总长度为36个字节,第三预设长度为9个字节,数据头的内容为“AA 44”,第七存储区中的数据为6个字节“03 04 05 EA AA 44”时,则需要接收的剩余数据长度为36-6=30个字节,S卩,继续接收30个字节的数据“02 01 02 03 04 05 EA AA 44 03 01 02 03 04 05 EA AA 44 04 01 02 03 04 05 EA AA 44 01 01 02”,将接收到的数据与第七存储区中的数据拼接,拼接得到的数据为“AA 44 02 01 02 03 04 05EA AA 44 03 01 02 03 04 05 EA AA 44 04 01 02 03 04 05 EA AA 44 01 01 02 03 0405 EA”,将拼接得到的数据划分为4个长度均为9个字节的数据包,S卩,“AA 44 02 01 02
0304 05 EA,,、“AA 44 03 01 02 03 04 05 EA,,、“AA 44 04 01 02 03 04 05 EA” 和 “AA44 01 01 02 03 04 05 EA”。步骤405,判断第九存储区中的数据包是否均符合预设格式,如果是,则执行步骤406 ;否则,执行步骤407。其中,预设格式可以为数据包包括数据头、编号、有效数据和校验码,根据有效数据计算得到的校验值与校验码相同,数据头的内容为预设内容,数据头的长度为第一预设长度,编号和有效数据的长度之和为第四预设长度,有效数据的长度为第五预设长度。具体地,可以从数据包中读取位置最靠前的(或最先接收到的)、第一预设长度的数据,判断读取到的数据的内容是否为预设内容,如果不是预设内容,则确定该数据包不符合预设格式;如果是预设内容,则继续从该数据包读取第四预设长度的数据,根据最后读取的第五预设长度的数据获取校验值,判断该校验值是否与该数据包中剩余的数据的内容相同,如果相同,则确定该数据包符合预设格式;如果不同,则确定该数据包不符合预设格式。例如,当数据包的内容为“AA 44 02 01 02 03 04 05 EA”,第一预设长度为2个字节,第四预设长度为6个字节,第五预设长度为5个字节,预设内容为“AA 44”时,则先从数据包中读取位置最靠前的2个字节的数据“AA 44”,在确定读取的数据为预设内容时,继续读取6个字节的数据“02 01 02 03 04 05”,根据最后读取的5个字节的数据“01 02 03
0405”计算校验值,判断计算得到的校验值是否与上述数据包中剩余的数据的内容“EA”相同,如果相同,则确定该数据包符合预设格式;如果不同,则确定该数据包不符合预设格式。步骤406,按照各个数据包所包含的编号,对第九存储区中的数据包进行重组。具体地,可以从各个数据包中读取位置最靠前的(或最先接收到的)、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取该数据包对应的编号,并根据编号的大小,对与该编号对应的数据包所包含的有效数据进行排序。
例如,当数据包的内容为“AA 44 02 01 02 03 04 05 EA”,第六预设长度为3个字节,第七预设长度为I个字节时,则从该数据包读取位置最靠前的3个字节的数据“AA 4402”,根据其中最后读取到的、I个字节的数据“02”,获取该数据包对应的编号为“02”,且该编号对应的数据包所包含的有效数据为“01 02 03 04 05”。当数据包的内容为“AA 44 01
0203 03 06 08 BA”,第六预设长度为3个字节,第七预设长度为I个字节时,则从该数据包读取位置最靠前的3个字节的数据“AA 44 01”,根据其中最后读取到的、I个字节的数据“01”,获取该数据包对应的编号为“01”,且该编号对应的数据包所包含的有效数据为“02
0303 06 08”,根据编号“01”和“02”,可以将相应的有效数据排序为“02 03 03 06 08 0102 03 04 05”。步骤407,将错误次数加I。步骤408,判断错误次数是否大于预设次数,如果大于,则执行步骤409 ;否则,执行步骤410。其中,错误次数的初始值为零。步骤409,返回错误信息。步骤410,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。具体地,可以从不符合预设格式的数据包中读取位置最靠前的(或最先接收到的)、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,并接收第六预设长度的数据,判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和上述编号,如果是,则继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与上述编号对应的数据包;如果不是,则继续接收第九预设长度的数据,并继续判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和上述编号,直到最后接收到的第六预设长度的数据的内容为数据头的内容和上述编号时,继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与上述编号对应的数据包。其中,第九预设长度可以为I字节,也可以为I比特,还可以为其他长度。例如,当不符合预设格式的数据包的内容为“AA 44 02 02 02 03 04 05 EA”,该数据包对应的编号为“02”,第六预设长度为3个字节,第八预设长度为6个字节,第三预设长度为9个字节时,则继续接收3个字节的数据,判断最后接收到的3个字节的数据的内容是否为“AA 44 02”,如果是,则继续接收6个字节的数据,并确定最后接收到的9个字节的数据为与编号“02”对应的数据包;如果不是,则继续接收I个字节的数据,并继续判断最后接收到的3个字节的数据的内容是否为“AA 44 02”,直到最后接收到的3个字节的数据的 内容为“AA 44 02”,继续接收6个字节的数据,并确定最后接收到的9个字节的数据为与编号“02”对应的数据包。步骤411,判断重新接收的数据包是否均符合预设格式,如果是,则执行步骤414;否则,执行步骤412。具体地,本步骤判断数据包是否符合预设格式的具体操作过程可以与步骤405判断数据包是否符合预设格式的具体操作过程相同。步骤412,判断重新接收的数据包中是否存在符合预设格式的数据包,如果存在,则执行步骤413 ;否则,返回步骤407。步骤413,根据符合预设格式的数据包所包含的编号,将第九存储区中对应的数据包替换为符合预设格式的数据包,并返回步骤407。具体地,可以从符合预设格式的数据包中读取位置最靠前的(或最先接收到的)、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从第九存储区中查询数据头和编号分别与上述数据包的数据头和编号相同的数据包,并将查询到的数据包替换为上述符合预设格式的数据包。 例如,当符合预设格式的数据包的内容为“AA 44 02 01 02 03 04 05 EA”,该数据包对应的编号为“02”时,则从第九存储区中查询数据头和编号分别为“AA 44”和“02”的数据包,将查询到的数据包替换为“AA 44 02 01 02 03 04 05 EA”。步骤414,根据重新接收的数据包所包含的编号,将第九存储区中对应的数据包替换为重新接收的数据包,并按照各个数据包所包含的编号,对第九存储区中的数据包进行重组。具体地,可以从重新接收的数据包中读取位置最靠前的(或最先接收到的)、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从第九存储区中查询数据头和编号分别与上述数据包的数据头和编号相同的数据包,将查询到的数据包替换为上述重新接收的数据包,并从第九存储区中的各个数据包中读取位置最靠前的(或最先接收到的)、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,根据编号的大小对第九存储区中的数据包所包含的有效数据进行排序。本发明实施例提供的分组传输方案中,在数据包出错时,根据该数据包所包含的数据头和编号,重新接收对应的数据包,能够减少数据接收时间,提高数据接收速度和数据传输的成功率。需要说明的是,在本发明的其他实施方式中,第七存储区、第八存储区和第九存储区可以为同一存储区。在本发明的其他实施方式中,也可以将传输数据的总长度减去第一预设长度,得到需要接收的剩余数据长度;相应地,可以按照第七存储区中的数据头、第八存储区中的数据的顺序,对第七存储区中的数据头和所述第八存储区中的数据进行拼接。实施例五在本发明实施例五中,发送端可以发送预设长度的数据,S卩,发送端与接收端预先约定需要传输的数据的长度,发送端发送的数据中包括数据头、有效数据和校验码,数据总长度为第五预设数量字节,数据头的长度为第六预设数量字节,有效数据的长度为第七预设数量字节。本发明实施例五中的接收端处理传输数据的方法,如图5所示,包括以下步骤步骤501,接收端接收第五预设数量字节的数据,将接收到的数据存储到第三存储区。其中,第五预设数量字节为发送端发送的数据头、有效数据和校验码的长度之和。当发送端先发送高位数据时,接收端可以将先接收到的数据作为高位数据存储到第三存储区,将后接收到的数据作为低位数据存储到第三存储区;当发送端先发送低位数据时,接收端可以将先接收到的数据作为低位数据存储到第三存储区,将后接收到的数据作为高位数据存储到第三存储区。步骤502,接收端判断第三存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤503。其中,预设格式可以为按照从高位到低位的顺序,第三存储区中的数据依次包括数据头、有效数据和校验码,数据头的长度为第六预设数量字节,有效数据的长度为第七预设数量字节,且数据头的内容为预设内容,根据有效数据计算得到的校验值与校验码的内容相同。接收端可以按照从高到低的顺序从第三存储区读取第六预设数量字节的数据,判断读取到的数据的内容是否为预设内容,如果不是预设内容,则确定存储的数据不符合预设格式;如果是预设内容,则继续从第三存储区读取第七预设数量字节的数据,根据读取到的第七预设数量字节的数据获取校验值,判断该校验值是否与第三存储区中剩余的数据的内容相同,如果相同,则确定第三存储区中的数据符合预设格式;如果不同,则确定第三存储区中的数据不符合预设格式。步骤503,接收端将第三存储区中的数据存储到第四存储区,将第四存储区中的数据左移第八预设数量字节,将被移出第四存储区的数据补到移位后的剩余数据的右端,并 将左移次数加I。具体地,接收端可以按照各个字节数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中的剩余数据的右端。其中,第八预设数量字节可以为I字节,也可以大于I字节,左移次数的初始值可以为O。步骤504,接收端判断第四存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤505。具体地,接收端判断第四存储区中的数据是否符合预设格式的具体方法,可以与步骤502中接收端判断第三存储区中的数据是否符合预设格式的具体方法相同。步骤505,接收端判断左移次数是否小于预设次数,如果小于预设次数,则返回步骤503 ;否则,执行步骤506。其中,当第八预设数量字节为I字节时,预设次数的取值可以为第四存储区存储的数据的字节数减I得到的结果。步骤506,接收端将第三存储区中最先接收到的第九预设数量字节的数据丢弃,从发送端接收第九预设数量字节的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并返回步骤202。具体地,接收端可以将接收到的第九预设数量字节的数据存储到第三存储区中的已有数据的右端或左端,接收端将第九预设数量字节的数据存储到第三存储区的方式,可以与接收端将第五预设数量字节的数据存储到第三存储区的方式相同。其中,第九预设数量字节可以为I字节,也可以大于I字节。本发明实施例在接收到的数据不符合预设格式时,通过对接收到的数据进行移位以实现对该数据的重新组合,以使组合后的数据符合预设格式,可以在预定长度数据对应的时间内将数据接收完毕,缩短了数据接收时间,提高了数据接收速度。需要说明的是,在本发明的其他实施方式中,接收端也可以将第四存储区中的数据右移第十预设数量字节,将被移出的数据补到第四存储区中的剩余数据的左端。具体地,接收端可以按照各个字节数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中与已有数据相邻的位置,即,已有数据的左端,并继续判断第四存储区中的数据是否符合预设格式。同样可以实现本发明的发明目的。在本发明的其他实施方式中,可以将第四存储区中的数据定义为一个循环队列,当第四存储区中的数据不符合预设格式时,则将该循环队列的指针向预设方向移位第八预设数量字节,将移位次数加1,并判断移位后的循环队列中的数据是否符合预设格式,如不符合,则继续将该循环队列的指针向预设方向移位第八预设数量字节,直到移位后的循环队列中的数据符合预设格式,或者移位次数大于或等于预设次数,则将第三存储区中最先接收到的第九预设数量字节的数据丢弃,从发送端接收第九预设数量字节的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并继续判断第三存储区中的数据是否符合预设格式。在本发明的其他实施方式中,发送端发送的数据中包括有效数据和校验码,数据总长度为第五预设数量字节,有效数据的长度为第七预设数量字节。相应地,预设格式可以具体为按照从高位到低位的顺序,数据依次包括有效数据和校验码,有效数据的长度为第七预设数量字节,且根据有效数据计算得到的校验值与校验码的内容相同。 实施例六如图6所示,为本发明实施例六中的一种处理传输数据的装置结构图,包括接收模块610、第一判断模块620、第二判断模块650、第一获取模块630、第二获取模块640、第三获取模块660、丢弃模块670和拼接模块680,其中,接收模块610,用于接收第一预设长度的数据,将接收到的数据存储到第一存储区;在第一判断模块620判断所述第一存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第十一预设长度的数据,将接收到的数据存储到所述第一存储区,并触发第一判断模块620进行判断;在所述第一判断模块620判断所述第一存储区中最后接收到的第一预设长度的数据是数据头时,继续接收第二预设长度的数据并存储到第二存储区;在第二判断模块650判断需要接收的剩余数据长度大于零时,根据所述需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到所述第二存储区,并触发拼接模块680进行拼接。具体地,接收模块610,具体用于继续接收长度为所述需要接收的剩余数据长度的数据。第一判断模块620,用于判断第一存储区中最后接收到的第一预设长度的数据是否为数据头。第一获取模块630,用于根据第二存储区中的第三预设长度的数据,获取数据长度。具体地,第一获取模块630,具体用于读取所述第二存储区中最后接收到的或者最先接收到的第三预设长度的数据的内容,将该内容作为所述数据长度。第二获取模块640,用于根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度。具体地,第二获取模块640,具体用于将所述校验码的长度和所述数据长度之和,减去所述第一存储区中除所述数据头之外的其他数据的长度,得到所述需要接收的剩余数据长度。第二判断模块650,用于对所述需要接收的剩余数据长度进行判断,并在所述需要接收的剩余数据长度为零时,触发所述拼接模块680进行拼接。第三获取模块660,用于在所述第二判断模块650判断需要接收的剩余数据长度小于零时,根据所述校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度。具体地,第三获取模块660,具体用于将所述第一存储区中除所述数据头之外的其他数据的长度,减去所述校验码的长度和所述数据长度之和,得到所述丢弃数据长度。丢弃模块670,用于根据所述丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,并触发拼接模块680进行拼接。具体地,丢弃模块670,具体用于对所述第一存储区中最先接收的、长度为所述丢弃数据长度的数据进行丢弃;
或者,对所述第二存储区中最后接收到的、长度为所述丢弃数据长度的数据进行丢弃;对所述第一存储区中最先接收的、长度为第四预设长度的数据进行丢弃,对所述第二存储区中最后接收到的、长度为所述丢弃数据长度与所述第四预设长度之差的数据进行丢弃,所述第四预设长度小于所述丢弃数据长度。拼接模块680,用于对所述第一存储区和所述第二存储区中的数据进行拼接。具体地,拼接模块680,具体用于按照所述第一存储区中的数据头、所述第二存储区中的数据、所述第一存储区中除所述数据头之外的其他数据的顺序,对所述第一存储区和所述第二存储区中的数据进行拼接。本发明实施例在接收到数据头和数据长度之后,根据该数据长度以及在接收到数据头之前接收并存储的数据的长度,确定是否继续接收数据,并对接收到的数据进行拼接,能够减少数据接收时间,提高数据接收速度。实施例七如图7所示,为本发明实施例七中的一种处理传输数据的装置结构图,包括接收模块710,用于接收第五预设长度的数据,将接收到的数据存储到第三存储区。第一判断模块720,用于判断所述第三存储区中的数据是否符合预设格式。其中,预设格式具体为按照从高位到低位的顺序,所述数据依次包括数据头、有效数据和校验码,所述数据头的长度为第六预设长度,所述有效数据的长度为第七预设长度,且所述数据头的内容为预设内容,根据所述有效数据计算得到的校验值与所述校验码的内容相同;或者,按照从高位到低位的顺序,所述数据依次包括有效数据和校验码,所述有效数据的长度为第七预设长度,且根据所述有效数据计算得到的校验值与所述校验码的内容相同。处理模块730,用于在第一判断模块720判断所述第三存储区中的数据不符合预设格式时,对所述第三存储区中的数据的顺序进行调整,并在调整后的所述第三存储区中的数据符合预设格式时,结束流程;或者,在第一判断模块720判断所述第三存储区中的数据不符合预设格式时,将所述第三存储区中的数据存储到第四存储区,对所述第四存储区中的数据的顺序进行调整,并在调整后的所述第四存储区中的数据符合预设格式时,结束流程。具体地,处理模块730,具体用于将所述第四存储区中的数据向预设方向移位第八预设长度,将被移出所述第四存储区的数据补到移位后的剩余数据的所述预设方向的反方向的一端;或者,将由所述第四存储区中的数据构成的循环队列的指针向预设方向移位第八预设长度。 上述装置,还可以进一步包括计数模块740和第二判断模块750,其中,计数模块740,用于在处理模块730对所述第三存储区中的数据的顺序进行调整之后,将移位次数加1,并触发所述第一判断模块720判断调整后的所述第三存储区中的数据是否符合预设格式;所述移位次数的初始值为O。第二判断模块750,用于在第一判断模块720判断调整后的所述第三存储区中的数据不符合预设格式时,判断所述移位次数是否小于预设次数,并在所述移位次数小于预设次数时,触发处理模块730对所述第三存储区中的数据的顺序进行调整。或者,计数模块740,用于在处理模块730对所述第四存储区中的数据的顺序进行调整之后,将移位次数加1,并触发所述第一判断模块720判断调整后的所述第四存储区中的数据是否符合预设格式;所述移位次数的初始值为O。相应地,第二判断模块750,用于在第一判断模块720判断调整后的所述第四存储区中的数据不符合预设格式时,判断所述移位次数是否小于预设次数,并在所述移位次数小于预设次数时,触发处理模块730对所述第四存储区中的数据的顺序进行调整。上述装置,还可以进一步包括丢弃模块760,用于在所述移位次数不小于所述预设次数时,将所述第三存储区中最先接收到的第九预设长度的数据丢弃;相应地,上述接收模块710,还用于接收第九预设长度的数据,将接收到的数据存储到所述第三存储区中与已有数据相邻的位置,并触发所述第一判断模块720判断所述第三存储区中的数据是否符合预设格式。本发明实施例在接收到的数据不符合预设格式时,通过对接收到的数据的顺序进行调整,从而对接收到的数据进行重新组合,以使组合后的数据符合预设格式,可以在预定长度数据对应的时间内将数据接收完毕,缩短了数据接收时间,提高了数据接收速度。实施例八如图8所示,为本发明实施例八中的一种处理传输数据的装置结构图,包括接收模块810、第一判断模块820、第二判断模块860、第三判断模块880、确定模块830、拼接模块840、划分模块850、重组模块870和替换模块890,其中,接收模块810,用于接收第一预设长度的数据,将接收到的数据存储到第七存储区;在第一判断模块820判断所述第七存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第二预设长度的数据,将接收到的数据存储到所述第七存储区中,并触发第一判断模块820进行判断;根据确定模块830确定出的需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区;在第二判断模块860的判断结果为否时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。具体地,接收模块810,具体用于从所述不符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,并接收第六预设长度的数据,判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和上述获取的编号,如果是,则继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与上述获取的编号对应的数据包;如果不是,则继续接收第九预设长度的数据,并继续判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和上述获取的编号,直到最后接收到的第六预设长度的数据的内容为数据头的内容和上述获取的编号时,继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与上述获取的编号对应的数据包。第一判断模块820,用于判断所述第七存储区中最后接收到的第一预设长度的数据是否为数据头。 确定模块830,用于在第一判断模块820判断所述第七存储区中最后接收到的第一预设长度的数据是数据头时,确定所述需要接收的剩余数据长度。拼接模块840,用于对所述第七存储区和所述第八存储区中的数据进行拼接。具体地,上述确定模块830,具体用于将所述传输数据的总长度减去所述第七存储区中的数据的长度,得到所述需要接收的剩余数据长度;相应地,上述拼接模块840,具体用于按照所述第七存储区中的数据头、所述第八存储区中的数据、所述第七存储区中除所述数据头之外的其他数据的顺序,对所述第七存储区和所述第八存储区中的数据进行拼接。或者,上述确定模块830,具体用于将所述传输数据的总长度减去所述第一预设长度,得到所述需要接收的剩余数据长度;相应地,上述拼接模块840,具体用于按照所述第七存储区中的数据头、所述第八存储区中的数据的顺序,对所述第七存储区中的数据头和所述第八存储区中的数据进行拼接。划分模块850,用于根据数据头的位置,将拼接模块840拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将各个数据包存储到第九存储区。第二判断模块860,用于判断所述第九存储区中的数据包是否均符合预设格式,在判断结果为是时,触发重组模块870进行重组。具体地,第二判断模块860,具体用于从所述数据包中读取位置最靠前或最先接收到的、第一预设长度的数据,判断读取到的数据的内容是否为预设内容;如果不是预设内容,则确定所述数据包不符合预设格式;如果是预设内容,则继续从所述数据包读取第四预设长度的数据,根据最后读取的第五预设长度的数据获取校验值,判断该校验值是否与所述数据包中剩余的数据的内容相同,如果相同,则确定所述数据包符合预设格式;如果不同,则确定该数据包不符合预设格式。
重组模块870,用于按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组。具体地,重组模块870,可以用于从各个数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取该数据包对应的编号,并根据获取的编号的大小,对与该编号对应的数据包所包含的有效数据进行排序。第三判断模块880,用于对重新接收的数据包进行判断。替换模块890,用于在第三判断模块880判断所述重新接收的数据包均符合预设格式时,根据所述重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并触发重组模块870进行重组。具体地,替换模块890,具体用于从所述重新接收的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容, 获取编号,从所述第九存储区中查询数据头和编号分别与所述重新接收的数据包的数据头和上述获取的编号相同的数据包,将查询到的数据包替换为所述重新接收的数据包。上述接收模块810,还用于在第三判断模块880判断所述重新接收的数据包均不符合预设格式时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包;相应地,上述替换模块890,还用于在第三判断模块880判断所述重新接收的数据包中存在部分符合预设格式的数据包时,则根据所述符合预设格式的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述符合预设格式的数据包,并触发接收模块810根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。具体地,替换模块890,具体用于从所述符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从所述第九存储区中查询数据头和编号分别与所述符合预设格式的数据包的数据头和上述获取的编号相同的数据包,并将查询到的数据包替换为所述符合预设格式的数据包。上述装置,还包括计数模块800,用于在第二判断模块860的判断结果为否时,将错误次数加1,所述错误次数的初始值为零;在第三判断模块880判断所述重新接收的数据包均不符合预设格式,将所述错误次数加I ;在第三判断模块880判断所述重新接收的数据包中存在部分符合预设格式的数据包,将所述错误次数加I。相应地,上述接收模块810,具体用于在所述错误次数不大于预设次数时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。本发明实施例提供的分组传输方案中,在数据包出错时,根据该数据包所包含的数据头和编号,重新接收对应的数据包,能够减少数据接收时间,提高数据接收速度和数据传输的成功率。结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种处理传输数据的方法,其特征在于,包括以下步骤 ①、接收第一预设长度的数据,将接收到的数据存储到第一存储区; ②、判断所述第一存储区中最后接收到的第一预设长度的数据是否为数据头,如果不是所述数据头,则执行步骤③;如果是所述数据头,则执行步骤④; ③、继续接收第十一预设长度的数据,将接收到的数据存储到所述第一存储区,并返回步骤②; ④、继续接收第二预设长度的数据并存储到第二存储区,根据所述第二存储区中的第三预设长度的数据,获取数据长度;根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度;对所述需要接收的剩余数据长度进行判断,如果所述需要接收的剩余数据长度大于零,则执行步骤⑤;如果所述需要接收的剩余数据长度为零,则执行步骤⑥;如果所述需要接收的剩余数据长度小于零,则执行步骤⑦; ⑤、根据所述需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到所述第二存储区,并对所述第一存储区和所述第二存储区中的数据进行拼接; ⑥、对所述第一存储区和所述第二存储区中的数据进行拼接; ⑦、根据所述校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度;根据所述丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,并对所述第一存储区和所述第二存储区中的数据进行拼接。
2.如权利要求I所述的方法,其特征在于,所述根据第二存储区中的第三预设长度的数据,获取数据长度,具体为 读取所述第二存储区中最后接收到的或者最先接收到的第三预设长度的数据的内容,将该内容作为所述数据长度。
3.如权利要求I所述的方法,其特征在于,所述根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度,具体为 将所述校验码的长度和所述数据长度之和,减去所述第一存储区中除所述数据头之外的其他数据的长度,得到所述需要接收的剩余数据长度。
4.如权利要求I所述的方法,其特征在于,所述根据需要接收的剩余数据长度,继续接收数据,具体为 继续接收长度为所述需要接收的剩余数据长度的数据。
5.如权利要求I所述的方法,其特征在于,所述根据校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度,具体为 将所述第一存储区中除所述数据头之外的其他数据的长度,减去所述校验码的长度和所述数据长度之和,得到所述丢弃数据长度。
6.如权利要求I所述的方法,其特征在于,所述根据丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,具体为 对所述第一存储区中最先接收的、长度为所述丢弃数据长度的数据进行丢弃; 或者,对所述第二存储区中最后接收到的、长度为所述丢弃数据长度的数据进行丢弃; 对所述第一存储区中最先接收的、长度为第四预设长度的数据进行丢弃,对所述第二存储区中最后接收到的、长度为所述丢弃数据长度与所述第四预设长度之差的数据进行丢弃,所述第四预设长度小于所述丢弃数据长度。
7.如权利要求I所述的方法,其特征在于,所述对第一存储区和所述第二存储区中的数据进行拼接,具体为 按照所述第一存储区中的数据头、所述第二存储区中的数据、所述第一存储区中除所述数据头之外的其他数据的顺序,对所述第一存储区和所述第二存储区中的数据进行拼接。
8.—种处理传输数据的方法,其特征在于,包括以下步骤 ①、接收第五预设长度的数据,将接收到的数据存储到第三存储区; ②、判断所述第三存储区中的数据是否符合预设格式,如果不符合预设格式,则执行步骤③或者④;如果符合预设格式,则结束流程; ③、对所述第三存储区中的数据的顺序进行调整,并在调整后的所述第三存储区中的数据符合预设格式时,结束流程; ④、将所述第三存储区中的数据存储到第四存储区; ⑤、对所述第四存储区中的数据的顺序进行调整,并在调整后的所述第四存储区中的数据符合预设格式时,结束流程。
9.如权利要求8所述的方法,其特征在于,对所述第三存储区中的数据的顺序进行调整之后,还包括 将移位次数加1,判断调整后的所述第三存储区中的数据是否符合预设格式; 如果不符合预设格式,则在所述移位次数小于预设次数时,返回步骤③,所述移位次数的初始值为O ; 如果符合预设格式,则结束流程。
10.如权利要求8所述的方法,其特征在于,对所述第四存储区中的数据的顺序进行调整之后,还包括 将移位次数加1,判断调整后的所述第四存储区中的数据是否符合预设格式; 如果不符合预设格式,则在所述移位次数小于预设次数时,返回步骤⑤,所述移位次数的初始值为0 ; 如果符合预设格式,则结束流程。
11.如权利要求10所述的方法,其特征在于,当判断调整后的所述第四存储区中的数据不符合预设格式之后,还包括 判断所述移位次数是否小于预设次数; 如果所述移位次数小于所述预设次数,则返回步骤⑤; 如果所述移位次数不小于所述预设次数,将所述第三存储区中最先接收到的第九预设长度的数据丢弃,从发送端接收第九预设长度的数据,将接收到的数据存储到所述第三存储区中与已有数据相邻的位置,并返回步骤②。
12.如权利要求8所述的方法,其特征在于,对所述第四存储区中的数据的顺序进行调整,具体为将所述第四存储区中的数据向预设方向移位第八预设长度,将被移出所述第四存储区的数据补到移位后的剩余数据的所述预设方向的反方向的一端; 或者, 将由所述第四存储区中的数据构成的循环队列的指针向预设方向移位第八预设长度。
13.如权利要求8所述的方法,其特征在于,所述预设格式具体为 按照从高位到低位的顺序,所述数据依次包括数据头、有效数据和校验码,所述数据头的长度为第六预设长度,所述有效数据的长度为第七预设长度,且所述数据头的内容为预设内容,根据所述有效数据计算得到的校验值与所述校验码的内容相同; 或者, 按照从高位到低位的顺序,所述数据依次包括有效数据和校验码,所述有效数据的长度为第七预设长度,且根据所述有效数据计算得到的校验值与所述校验码的内容相同。
14.一种处理传输数据的方法,其特征在于,包括以下步骤 A、接收第一预设长度的数据,将接收到的数据存储到第七存储区; B、判断所述第七存储区中最后接收到的第一预设长度的数据是否为数据头,如果是,则执行步骤D ;否则,执行步骤C ; C、继续接收第二预设长度的数据,将接收到的数据存储到所述第七存储区中,并返回步骤B ; D、确定需要接收的剩余数据长度,根据所述需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区,对所述第七存储区和所述第八存储区中的数据进行拼接,根据数据头的位置,将拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将该数据包存储到第九存储区,判断所述第九存储区中的数据包是否均符合预设格式,如果是,则执行步骤E ;否则,执行步骤F ; E、按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组; F、根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包; G、对重新接收的数据包进行判断,当所述重新接收的数据包均符合预设格式时,根据所述重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组。
15.如权利要求14所述的方法,其特征在于,所述对重新接收的数据包进行判断之后,还包括 当所述重新接收的数据包均不符合预设格式,则返回步骤F ; 和/或, 当所述重新接收的数据包中存在部分符合预设格式的数据包,则根据所述符合预设格式的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述符合预设格式的数据包,并返回步骤F。
16.如权利要求15所述的方法,其特征在于,判断所述第九存储区中的数据包是否均符合预设格式之后,还包括 当判断结果为否时,将错误次数加I,所述错误次数的初始值为零; 所述对重新接收的数据包进行判断之后,还包括 当所述重新接收的数据包均不符合预设格式,将所述错误次数加I ;当所述重新接收的数据包中存在部分符合预设格式的数据包,将所述错误次数加I; 所述步骤F,具体为 当所述错误次数不大于预设次数时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。
17.如权利要求14所述的方法,其特征在于,所述确定需要接收的剩余数据长度,具体为 将所述传输数据的总长度减去所述第七存储区中的数据的长度,得到所述需要接收的剩余数据长度; 所述对第七存储区和所述第八存储区中的数据进行拼接,具体为 按照所述第七存储区中的数据头、所述第八存储区中的数据、所述第七存储区中除所述数据头之外的其他数据的顺序,对所述第七存储区和所述第八存储区中的数据进行拼接。
18.如权利要求14所述的方法,其特征在于,所述确定需要接收的剩余数据长度,具体为 将所述传输数据的总长度减去所述第一预设长度,得到所述需要接收的剩余数据长度; 所述对第七存储区和所述第八存储区中的数据进行拼接,具体为 按照所述第七存储区中的数据头、所述第八存储区中的数据的顺序,对所述第七存储区中的数据头和所述第八存储区中的数据进行拼接。
19.如权利要求14所述的方法,其特征在于,判断所述第九存储区中的数据包是否符合预设格式,包括 从所述数据包中读取位置最靠前或最先接收到的、第一预设长度的数据,判断读取到的数据的内容是否为预设内容; 如果不是预设内容,则确定所述数据包不符合预设格式; 如果是预设内容,则继续从所述数据包读取第四预设长度的数据,根据最后读取的第五预设长度的数据获取校验值,判断该校验值是否与所述数据包中剩余的数据的内容相同,如果相同,则确定所述数据包符合预设格式;如果不同,则确定该数据包不符合预设格式。
20.如权利要求14所述的方法,其特征在于,所述按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组,具体为 从各个数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取各个数据包对应的编号,并根据获取的编号的大小,对与该编号对应的数据包所包含的有效数据进行排序。
21.如权利要求14所述的方法,其特征在于,所述根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包,包括 从所述不符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,并接收第六预设长度的数据,判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和所述获取的编号,如果是,则继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与所述获取的编号对应的数据包;如果不是,则继续接收第九预设长度的数据,并继续判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和所述获取的编号,直到最后接收到的第六预设长度的数据的内容为数据头的内容和所述获取的编号时,继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与所述获取的编号对应的数据包。
22.如权利要求15所述的方法,其特征在于,所述根据符合预设格式的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述符合预设格式的数据包,具体为 从所述符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从所述第九存储区中查询数据头和编号分别与所述符合预设格式的数据包的数据头和所述获取的编号相同的数据包,并将查询到的数据包替换为所述符合预设格式的数据包。
23.如权利要求14所述的方法,其特征在于,所述根据重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组,具体为 从所述重新接收的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从所述第九存储区中查询数据头和编号分别与所述重新接收的数据包的数据头和所述获取的编号相同的数据包,将查询到的数据包替换为所述重新接收的数据包; 从所述第九存储区中的各个数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,根据获取的编号的大小,对所述第九存储区中的数据包所包含的有效数据进行排序。
24.一种处理传输数据的装置,其特征在于,包括接收模块、第一判断模块、第二判断模块、第一获取模块、第二获取模块、第三获取模块、丢弃模块和拼接模块,其中, 所述接收模块,用于接收第一预设长度的数据,将接收到的数据存储到第一存储区;在所述第一判断模块判断所述第一存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第十一预设长度的数据,将接收到的数据存储到所述第一存储区,并触发所述第一判断模块进行判断;在所述第一判断模块判断所述第一存储区中最后接收到的第一预设长度的数据是数据头时,继续接收第二预设长度的数据并存储到第二存储区;在所述第二判断模块判断需要接收的剩余数据长度大于零时,根据所述需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到所述第二存储区,并触发所述拼接模块进行拼接; 所述第一判断模块,用于判断所述第一存储区中最后接收到的第一预设长度的数据是否为所述数据头; 所述第一获取模块,用于根据所述第二存储区中的第三预设长度的数据,获取数据长度; 所述第二获取模块,用于根据需要接收的校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取需要接收的剩余数据长度; 所述第二判断模块,用于对所述需要接收的剩余数据长度进行判断,并在所述需要接收的剩余数据长度为零时,触发所述拼接模块进行拼接; 所述第三获取模块,用于在所述第二判断模块判断所述需要接收的剩余数据长度小于零时,根据所述校验码的长度、所述第一存储区中除所述数据头之外的其他数据的长度和所述数据长度,获取丢弃数据长度; 所述丢弃模块,用于根据所述丢弃数据长度,将所述第一存储区和/或所述第二存储区中的部分数据丢弃,并触发所述拼接模块进行拼接; 所述拼接模块,用于对所述第一存储区和所述第二存储区中的数据进行拼接。
25.如权利要求24所述的装置,其特征在于, 所述第一获取模块,具体用于读取所述第二存储区中最后接收到的或者最先接收到的第三预设长度的数据的内容,将该内容作为所述数据长度。
26.如权利要求24所述的装置,其特征在于, 所述第二获取模块,具体用于将所述校验码的长度和所述数据长度之和,减去所述第一存储区中除所述数据头之外的其他数据的长度,得到所述需要接收的剩余数据长度。
27.如权利要求24所述的装置,其特征在于, 所述接收模块,具体用于继续接收长度为所述需要接收的剩余数据长度的数据。
28.如权利要求24所述的装置,其特征在于, 所述第三获取模块,具体用于将所述第一存储区中除所述数据头之外的其他数据的长度,减去所述校验码的长度和所述数据长度之和,得到所述丢弃数据长度。
29.如权利要求24所述的装置,其特征在于, 所述丢弃模块,具体用于 对所述第一存储区中最先接收的、长度为所述丢弃数据长度的数据进行丢弃; 或者, 对所述第二存储区中最后接收到的、长度为所述丢弃数据长度的数据进行丢弃; 对所述第一存储区中最先接收的、长度为第四预设长度的数据进行丢弃,对所述第二存储区中最后接收到的、长度为所述丢弃数据长度与所述第四预设长度之差的数据进行丢弃,所述第四预设长度小于所述丢弃数据长度。
30.如权利要求24所述的装置,其特征在于, 所述拼接模块,具体用于按照所述第一存储区中的数据头、所述第二存储区中的数据、所述第一存储区中除所述数据头之外的其他数据的顺序,对所述第一存储区和所述第二存储区中的数据进行拼接。
31.一种处理传输数据的装置,其特征在于,包括 接收模块,用于接收第五预设长度的数据,将接收到的数据存储到第三存储区; 第一判断模块,用于判断所述第三存储区中的数据是否符合预设格式; 处理模块,用于在所述第一判断模块判断所述第三存储区中的数据不符合预设格式时,对所述第三存储区中的数据的顺序进行调整,并在调整后的所述第三存储区中的数据符合预设格式时,结束流程; 或者,在所述第一判断模块判断所述第三存储区中的数据不符合预设格式时,将所述第三存储区中的数据存储到第四存储区,对所述第四存储区中的数据的顺序进行调整,并在调整后的所述第四存储区中的数据符合预设格式时,结束流程。
32.如权利要求31所述的装置,其特征在于,还包括 计数模块,用于在所述处理模块对所述第三存储区中的数据的顺序进行调整之后,将移位次数加1,并触发所述第一判断模块判断调整后的所述第三存储区中的数据是否符合预设格式;所述移位次数的初始值为O ; 第二判断模块,用于在所述第一判断模块判断调整后的所述第三存储区中的数据不符合预设格式时,判断所述移位次数是否小于预设次数,并在所述移位次数小于预设次数时,触发所述处理模块对所述第三存储区中的数据的顺序进行调整。
33.如权利要求31所述的装置,其特征在于,还包括 计数模块,用于在所述处理模块对所述第四存储区中的数据的顺序进行调整之后,将移位次数加1,并触发所述第一判断模块判断调整后的所述第四存储区中的数据是否符合预设格式;所述移位次数的初始值为O ; 第二判断模块,用于在所述第一判断模块判断调整后的所述第四存储区中的数据不符合预设格式时,判断所述移位次数是否小于预设次数,并在所述移位次数小于预设次数时,触发所述处理模块对所述第四存储区中的数据的顺序进行调整。
34.如权利要求33所述的装置,其特征在于,还包括 丢弃模块,用于在所述移位次数不小于所述预设次数时,将所述第三存储区中最先接收到的第九预设长度的数据丢弃; 所述接收模块,还用于继续接收第九预设长度的数据,将接收到的数据存储到所述第三存储区中与已有数据相邻的位置,并触发所述第一判断模块判断所述第三存储区中的数据是否符合预设格式。
35.如权利要求31所述的装置,其特征在于, 所述处理模块,具体用于将所述第四存储区中的数据向预设方向移位第八预设长度,将被移出所述第四存储区的数据补到移位后的剩余数据的所述预设方向的反方向的一端; 或者, 将由所述第四存储区中的数据构成的循环队列的指针向预设方向移位第八预设长度。
36.如权利要求31所述的装置,其特征在于,所述预设格式具体为 按照从高位到低位的顺序,所述数据依次包括数据头、有效数据和校验码,所述数据头的长度为第六预设长度,所述有效数据的长度为第七预设长度,且所述数据头的内容为预设内容,根据所述有效数据计算得到的校验值与所述校验码的内容相同; 或者, 按照从高位到低位的顺序,所述数据依次包括有效数据和校验码,所述有效数据的长度为第七预设长度,且根据所述有效数据计算得到的校验值与所述校验码的内容相同。
37.一种处理传输数据的装置,其特征在于,包括接收模块、第一判断模块、第二判断模块、第三判断模块、确定模块、拼接模块、划分模块、重组模块和替换模块,其中, 所述接收模块,用于接收第一预设长度的数据,将接收到的数据存储到第七存储区;在所述第一判断模块判断所述第七存储区中最后接收到的第一预设长度的数据不是数据头时,继续接收第二预设长度的数据,将接收到的数据存储到所述第七存储区中,并触发所述第一判断模块进行判断;根据所述确定模块确定出的需要接收的剩余数据长度继续接收数据,将接收的数据存储到第八存储区;在所述第二判断模块的判断结果为否时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包;所述第一判断模块,用于判断所述第七存储区中最后接收到的第一预设长度的数据是否为数据头; 所述确定模块,用于在所述第一判断模块判断所述第七存储区中最后接收到的第一预设长度的数据是数据头时,确定所述需要接收的剩余数据长度; 所述拼接模块,用于对所述第七存储区和所述第八存储区中的数据进行拼接; 所述划分模块,用于根据数据头的位置,将所述拼接模块拼接得到的数据划分为多个长度为第三预设长度的、以数据头为起始位置的数据包,并将该数据包存储到第九存储区; 所述第二判断模块,用于判断所述第九存储区中的数据包是否均符合预设格式,在判断结果为是时,触发所述重组模块进行重组; 所述重组模块,用于按照各个数据包所包含的编号,对所述第九存储区中的数据包进行重组; 所述第三判断模块,用于对重新接收的数据包进行判断; 所述替换模块,用于在所述第三判断模块判断所述重新接收的数据包均符合预设格式时,根据所述重新接收的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述重新接收的数据包,并触发所述重组模块进行重组。
38.如权利要求37所述的装置,其特征在于, 所述接收模块,还用于在所述第三判断模块判断所述重新接收的数据包均不符合预设格式时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包; 所述替换模块,还用于在所述第三判断模块判断所述重新接收的数据包中存在部分符合预设格式的数据包时,则根据所述符合预设格式的数据包所包含的编号,将所述第九存储区中对应的数据包替换为所述符合预设格式的数据包,并触发所述接收模块根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。
39.如权利要求38所述的装置,其特征在于,还包括 计数模块,用于在所述第二判断模块的判断结果为否时,将错误次数加1,所述错误次数的初始值为零;在所述第三判断模块判断所述重新接收的数据包均不符合预设格式时,将所述错误次数加I ;在所述第三判断模块判断所述重新接收的数据包中存在部分符合预设格式的数据包时,将所述错误次数加I ; 所述接收模块,具体用于在所述错误次数不大于预设次数时,根据不符合预设格式的数据包所包含的编号,重新接收对应的数据包。
40.如权利要求37所述的装置,其特征在于, 所述确定模块,具体用于将所述传输数据的总长度减去所述第七存储区中的数据的长度,得到所述需要接收的剩余数据长度; 所述拼接模块,具体用于按照所述第七存储区中的数据头、所述第八存储区中的数据、所述第七存储区中除所述数据头之外的其他数据的顺序,对所述第七存储区和所述第八存储区中的数据进行拼接。
41.如权利要求37所述的装置,其特征在于, 所述确定模块,具体用于将所述传输数据的总长度减去所述第一预设长度,得到所述需要接收的剩余数据长度;所述拼接模块,具体用于按照所述第七存储区中的数据头、所述第八存储区中的数据的顺序,对所述第七存储区中的数据头和所述第八存储区中的数据进行拼接。
42.如权利要求37所述的装置,其特征在于,所述第二判断模块,具体用于 从所述数据包中读取位置最靠前或最先接收到的、第一预设长度的数据,判断读取到的数据的内容是否为预设内容; 如果不是预设内容,则确定所述数据包不符合预设格式; 如果是预设内容,则继续从所述数据包读取第四预设长度的数据,根据最后读取的第五预设长度的数据获取校验值,判断该校验值是否与所述数据包中剩余的数据的内容相同,如果相同,则确定所述数据包符合预设格式;如果不同,则确定该数据包不符合预设格式。
43.如权利要求37所述的装置,其特征在于, 所述重组模块,具体用于从各个数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取各个数据包对应的编号,并根据获取的编号的大小,对与该编号对应的数据包所包含的有效数据进行排序。
44.如权利要求37所述的装置,其特征在于, 所述接收模块,具体用于从所述不符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,并接收第六预设长度的数据,判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和所述获取的编号,如果是,则继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与所述获取的编号对应的数据包;如果不是,则继续接收第九预设长度的数据,并继续判断最后接收到的第六预设长度的数据的内容是否为数据头的内容和所述获取的编号,直到最后接收到的第六预设长度的数据的内容为数据头的内容和所述获取的编号时,继续接收第八预设长度的数据,确定最后接收到的第三预设长度的数据为与所述获取的编号对应的数据包。
45.如权利要求38所述的装置,其特征在于, 所述替换模块,具体用于从所述符合预设格式的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从所述第九存储区中查询数据头和编号分别与所述符合预设格式的数据包的数据头和所述获取的编号相同的数据包,并将查询到的数据包替换为所述符合预设格式的数据包。
46.如权利要求37所述的装置,其特征在于, 所述替换模块,具体用于从所述重新接收的数据包中读取位置最靠前或最先接收到的、第六预设长度的数据,根据其中最后读取到的、第七预设长度的数据的内容,获取编号,从所述第九存储区中查询数据头和编号分别与所述重新接收的数据包的数据头和所述获取的编号相同的数据包,将查询到的数据包替换为所述重新接收的数据包。
全文摘要
本发明公开一种处理传输数据的方法和装置,该方法包括以下步骤①、接收第五预设长度的数据,将接收到的数据存储到第三存储区;②、判断第三存储区中的数据是否符合预设格式,如果不符合预设格式,则执行步骤③或者④;如果符合预设格式,则结束流程;③、对第三存储区中的数据的顺序进行调整,并在调整后的第三存储区中的数据符合预设格式时,结束流程;④、将第三存储区中的数据存储到第四存储区;⑤、对第四存储区中的数据的顺序进行调整,并在调整后的第四存储区中的数据符合预设格式时,结束流程。本发明通过对接收到的数据进行重新组合,以使组合后的数据符合预设格式,缩短了数据接收时间,提高了数据接收速度。
文档编号H04L1/00GK102710381SQ20121018723
公开日2012年10月3日 申请日期2012年6月7日 优先权日2012年6月7日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1