掌桥专利:专业的专利平台
掌桥专利
首页

一种适应无系统工作环境下的7z格式压缩包解压方法

文献发布时间:2024-04-18 19:58:53


一种适应无系统工作环境下的7z格式压缩包解压方法

技术领域

本发明涉及铁路行业的LKJ2000型列车运行监控记录设备技术领域,尤其是涉及适应无系统工作环境下的7z格式压缩包解压方法。

背景技术

中老铁路使用的LKJ2000设备与既有不同,显示器型号为RYX-II型,无操作系统支持,在执行无线换装功能时,如果接收到的无线换装压缩包为7z格式,软件无法识别并完成解压,目前列控设备市场并未有关于解压7z格式压缩包的技术。

因此,迫切需要设计一款适应无系统工作环境下的7z格式压缩包解压方法。

发明内容

本发明主要是针对现有技术存在的上述问题,提供一种适应无系统工作环境下的7z格式压缩包解压方法。

本发明的目的主要是通过下述方案得以实现的:

一种适应无系统工作环境下的7z格式压缩包解压方法,包括用于列车运行监控记录的LKJ2000设备,该LKJ2000设备采用LKJ2000型屏幕显示器,其特征在于,所述LKJ2000型屏幕显示器在对接收到的压缩包文件进行解压时,包括以下步骤:

步骤S1,判断文件类型,通过读取接收文件的文件头信息为“0x37、0x7A、0xBC、0xAF、0x27、0x1C”,判断此文件为7z格式压缩包;

步骤S2,确认文件存储位置,接收文件名称为XSQ.BIN,存储在NOR FLASH0x02800000开始位置,总计最多0x00500000字节的大小,解压后文件命名为temp,存储在NOR FLASH 0x04000000开始位置,总计最多 0x01000000字节的大小;

步骤S3,读头文件头信息,获取到尾文件头的位置、尾文件头大小和尾文件头CRC;

步骤S4,读尾文件头信息,并将尾文件头的信息存储在200字节大小的数组中;

步骤S5,解析尾文件头信息,尾文件头的开头为0x01、0x04类型,当文件的尾文件头开头不是上述类型时,判断为非LKJ2000设备可用,不进行解压,后续根据尾文件头格式,对尾文件头各类信息进行处理、解析;

步骤S6,初始化解压算法,分配使用的空间,对解压支持的内容在内存中临时存放位置进行分配,从内存0x29300000位置开始,共计大小0x800000字节;

步骤S7,执行算法解压并写flash,设定文件0x20字节处开始读取,设置每次读取内容为0x1000字节,且设置解压文件单次输出最多支持大小为0x1000字节,文件读取结束后将最后一次解析出的文件内容写入flash;

步骤S8,完成文件信息补充,解压完成并将文件完成flash写入后,填写文件信息用于后续使用。

作为优选,所述步骤S3中,当尾文件头大于200字节时,认为文件非法,不进行解压缩处理。

作为优选,所述步骤S7中文件读取过程包括:

1)首先读入0x1000字节内容;

2)使用算法解压输出内容达到0x1000字节时,将内容写入nor flash对应位置进行存储,继续解析读入字节内容;

3)继续解压重复步骤2),直到读入的0x1000字节信息处理完毕后,保留现在输出的内容,重新读入0x1000字节的信息进行解压输出,填充输出内容到0x1000字节后写入flash,然后继续重复步骤2),直到文件读取结束。

因此,与现有技术相比,本发明具备下述优点:

(1)本发明有效并快捷执行对7z格式压缩文件的解压,满足无线换装的需求,提高无线换装的效率;

(2)本发明针对性强,对格式要求以及大小要求有明确指向,对于不是LKJ换装文件的信息具备过滤性,不会解压不符合标准和要求的文件。

附图说明

图1是本发明的流程图。

具体实施方式

下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体说明。应当理解,本发明的实施并不局限于下面的实施例,对本发明所做的任何形式上的变通和/或改变都将落入本发明保护范围。

在本发明中,若非特指,所有的份、百分比均为重量单位,所采用的设备和原料等均可从市场购得或是本领域常用的。下述实施例中的方法,如无特别说明,均为本领域的常规方法。下述实施例中的部件或设备如无特别说明,均为通用标准件或本领域技术人员知晓的部件,其结构和原理都为本技术人员均可通过技术手册得知或通过常规实验方法获知。

实施例:

如图1所示的一种适应无系统工作环境下的7z格式压缩包解压方法,包括用于列车运行监控记录的LKJ2000设备,该LKJ2000设备采用LKJ2000型屏幕显示器,其特征在于,所述LKJ2000型屏幕显示器在对接收到的压缩包文件进行解压时,包括以下步骤:

步骤S1,判断文件类型,通过读取接收文件的文件头信息为“0x37、0x7A、0xBC、0xAF、0x27、0x1C”,判断此文件为7z格式压缩包;

步骤S2,确认文件存储位置,接收文件名称为XSQ.BIN,存储在NOR FLASH0x02800000开始位置,总计最多0x00500000字节的大小,解压后文件命名为temp,存储在NOR FLASH 0x04000000开始位置,总计最多 0x01000000字节的大小;

步骤S3,读头文件头信息,获取到尾文件头的位置、尾文件头大小和尾文件头CRC;

步骤S4,读尾文件头信息,并将尾文件头的信息存储在200字节大小的数组中;

步骤S5,解析尾文件头信息,尾文件头的开头为0x01、0x04类型,当文件的尾文件头开头不是上述类型时,判断为非LKJ2000设备可用,不进行解压,后续根据尾文件头格式,对尾文件头各类信息进行处理、解析;

步骤S6,初始化解压算法,分配使用的空间,对解压支持的内容在内存中临时存放位置进行分配,从内存0x29300000位置开始,共计大小0x800000字节;

步骤S7,执行算法解压并写flash,设定文件0x20字节处开始读取,设置每次读取内容为0x1000字节,且设置解压文件单次输出最多支持大小为0x1000字节,文件读取结束后将最后一次解析出的文件内容写入flash;

步骤S8,完成文件信息补充,解压完成并将文件完成flash写入后,填写文件信息用于后续使用。

优选的,上述步骤S3中,当尾文件头大于200字节时,认为文件非法,不进行解压缩处理。

优选的,上述步骤S7中文件读取过程包括:

1)首先读入0x1000字节内容;

2)使用算法解压输出内容达到0x1000字节时,将内容写入nor flash对应位置进行存储,继续解析读入字节内容;

3)继续解压重复步骤2),直到读入的0x1000字节信息处理完毕后,保留现在输出的内容,重新读入0x1000字节的信息进行解压输出,填充输出内容到0x1000字节后写入flash,然后继续重复步骤2),直到文件读取结束。

本发明提供的一种适应无系统工作环境下的7z格式压缩包解压方法,通过在无系统裸跑程序环境中,数据满足特定打包格式要求的情况下,实现7z格式解压算法,实现LKJ2000对于中老铁路无线换装的要求;有效并快捷执行对7z格式压缩文件的解压,满足无线换装的需求,提高无线换装的效率;针对性强,对格式要求以及大小要求有明确指向,对于不是LKJ换装文件的信息具备过滤性,不会解压不符合标准和要求的文件。

应理解,该实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

技术分类

06120116506872