一种串口可靠传输文件的方法技术

技术编号:19126326 阅读:23 留言:0更新日期:2018-10-10 07:45
本发明专利技术公开了一种串口可靠传输文件的方法,先建立待传输文件列表,用来记录待传输文件的名称、CRC32校验码、传输状态;传输文件时,将文件名称和文件正文的CRC32校验码加入待传输文件列表,并标记为待传输;定时遍历待传输文件列表,如有文件为未传输成功或待传输,读取文件,将文件长度、CRC32校验码发送给接收端,发送文件正文内容,如文件状态为传输成功,则从待传输文件列表中删除文件;接收端收到文件长度后按照文件长度转存为文件,计算文件的CRC32校验码并与原始校验码比对,如校验码比对不一致,给发送端回馈文件名和失败消息,如一致则回馈文件名和成功消息;发送端接收到回执消息为失败,标记文件状态。

【技术实现步骤摘要】
一种串口可靠传输文件的方法
本专利技术涉及计算机串口通信领域,尤其涉及一种串口可靠传输文件的方法。
技术介绍
串口传输信息的特点是速率低、误码率高,通常用来传输消息报文,在需要传输文件的情况下会经常导致文件传输失败。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种串口可靠传输文件的方法,能够充分利用网络通信链路,并增加低俗信道扩充网络覆盖范围,实现指挥命令的实时传递。为解决上述技术问题,本专利技术提供一种串口可靠传输文件的方法,包括以下步骤:步骤1,发送端建立用于记录待传输文件信息的待传输文件列表,需要传输文件时,将文件信息加入待传输文件列表,并标记传输状态为待传输;步骤2,发送端定时遍历待传输文件列表,如有文件状态为未传输成功或待传输,读取文件,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码(32位循环冗余校验码,32BitCyclicRedundancyCheck,参见https://baike.baidu.com/item/CRC32/7460858?fr=aladdin)、文件内容和传输结束标志发送给接收端;如有文件状态为传输成功,则将该文件从待传输文件列表中删除;步骤3,接收端收到文件长度和CRC32校验码后按照文件长度转存为文件,计算文件的CRC32校验码并与发送端发过来的原始CRC32校验码比对,如校验码比对不一致,向发送端回馈失败消息,如校验码比对一致则向发送端回馈成功消息;步骤4,发送端接收到消息为失败,将文件标记为未传输成功,等待下一次传输;发送端接收到消息为成功,将文件标记为传输成功。步骤1包括如下步骤:步骤1-1,发送端建立待传输文件列表,列表条目数为M(M为整数,可设为64),列表条目包括文件流水号、含全路径的文件名称、文件的CRC32校验码、文件传输状态和已传输次数,列表内容置空,发送端设置定时间隔N(可设为30秒),每隔时间隔N遍历待传输文件列表;步骤1-2,将待传输文件含全路径的文件名与从待传输文件列表中的文件名进行比对,检查是否有相同文件,如果有,更新文件的标记状态为“待传输”、已传输次数置0,如果没有,从待传输文件列表中挑选一条空记录,将待传输文件的流水号、含全路径的文件名、文件的CRC32校验码添加进去,并标记状态为待传输,已传输次数置0。步骤2包括如下步骤:步骤2-1,定时时控到达,开始检查待传输列表;步骤2-2,如果有文件状态传输状态为未传输成功或待传输,且已传输次数小于指定阈值(阈值根据实际情况调整,可设为10次),执行步骤2-3;如果传输状态为传输成功或已传输次数大于指定阈值(阈值根据实际情况调整,可设为10次),则从待传输文件列表删除该条记录;如果待传输文件列表遍历结束,则结束本次传输;步骤2-3,读取文件,计算CRC32校验码,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码、文件内容、传输结束标志顺序发给接收端,已传输次数加1,传输结束后返回执行步骤2-2,继续遍历文件列表。步骤3包括如下步骤:步骤3-1,接收端收到传输开始标志后,接收并记录流水号、文件名、文件长度、CRC32校验码,根据文件长度将后续文件数据存储为数据文件;步骤3-2,读取已接收到的文件,计算CRC32校验码,并与原始校验码比对,判断文件是否正确;步骤3-3,如果校验码一致,发送包含传输开始标志、流水号、文件名、接收成功标志、传输结束标志的回执消息给发送方;如果校验码不一致,发送包含传输开始标志、流水号、文件名、接收失败标志、传输结束标志的回执消息给发送端。步骤4包括如下步骤:步骤4-1,发送端接收到回执消息后,根据流水号和文件名遍历待传输文件列表,找到该记录;步骤4-2,如果消息内容为接收失败,标记传输状态为未传输成功,如果消息内容为接收成功,标记传输状态为传输成功。本专利技术的有益效果为:本专利技术可以将利用定时重传方式,解决串口传输信道瞬时质量差导致的文件传输失败问题,避免因传输失败导致的文件丢失带来的影响。附图说明下面结合附图和具体实施方式对本专利技术做更进一步的具体说明,本专利技术的上述或其他方面的优点将会变得更加清楚。图1为发送端添加文件到待传输文件列表流程示意图。图2为发送端文件发送处理流程示意图。图3为接收端文件接收处理流程示意图。图4为发送端接收绘制消息处理流程示意图。图5为发送端和接收端发送和接收文件过程示意图。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。本专利技术提供一种串口可靠传输文件的方法,包括以下步骤:步骤1,发送端建立待传输文件列表,用来记录待传输文件信息;需要传输文件时,将文件信息加入待传输文件列表,并标记传输状态为待传输;步骤2,发送端定时遍历待传输文件列表,如有文件状态为未传输成功或待传输,读取文件,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码、文件内容和传输结束标志发送给接收端;如有文件状态为传输成功,则将该文件从待传输文件列表中删除;步骤3,接收端收到文件长度和CRC32校验码后按照文件长度转存为文件,计算文件的CRC32校验码并与原始校验码比对,如校验码比对不一致,向发送端回馈失败消息,如校验码比对一致则向发送端回馈成功消息;步骤4,发送端接收到消息为失败,将文件标记为未传输成功;接收到消息为成功,将文件标记为传输成功。步骤1包括如下步骤:步骤1-1,发送端建立待传输文件列表,列表条目数为M(M为整数,可设为64),列表条目包括文件流水号、含全路径的文件名称、文件的CRC32校验码(循环冗余校验码,CyclicRedundancyCheck)、文件传输状态和已传输次数,列表内容置空;步骤1-2,将待传输文件含全路径的文件名与从待传输文件列表中的文件名进行比对,检查是否有相同文件,如果有,标记状态为“待传输”、已传输次数置0,如果没有,从待传输文件列表中挑选一条空记录,将待传输文件的流水号、含全路径的文件名、文件的CRC32校验码添加进去,并标记状态为待传输,已传输次数置0。步骤2包括如下步骤:步骤2-1,发送端定时遍历待传输文件列表,时间间隔根据文件传输数据量大小设置,默认设置为30秒;步骤2-2,如果有文件状态传输状态为未传输成功或待传输,且已传输次数小于指定阈值(阈值根据实际情况调整,可设为10次),执行步骤2-3;如果传输状态为传输成功或已传输次数大于指定阈值(阈值根据实际情况调整,可设为10次),则从待传输文件列表删除该条记录;如果待传输文件列表遍历结束,则结束本次传输;步骤2-3,读取文件,计算CRC32校验码,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码、文件内容、传输结束标志顺序发给接收端,已传输次数加1,传输结束后继续遍历文件列表,返回执行步骤2-2。步骤3包括如下步骤:步骤3-1,接收端收到传输开始标志后,接收并记录流水号、文件名、文件长度、CRC32校验码,根据文件长度将后续文件数据存储为数据文件;步骤3-2,读取已接收到的文件,计算CRC32校验码,并与原始校验码比对,判断文件是否正确;步骤3-3,如果校验码一致,发送包含传输开始标志、流水号、文件名、接收成功标志、传输结束标志的回执消息给发送方;如果本文档来自技高网...
一种串口可靠传输文件的方法

【技术保护点】
1.一种串口可靠传输文件的方法,其特征在于,包括以下步骤:步骤1,发送端建立用于记录待传输文件信息的待传输文件列表,需要传输文件时,将文件信息加入待传输文件列表,并标记传输状态为待传输;步骤2,发送端定时遍历待传输文件列表,如有文件状态为未传输成功或待传输,读取文件,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码、文件内容和传输结束标志发送给接收端;如有文件状态为传输成功,则将该文件从待传输文件列表中删除;步骤3,接收端收到文件长度和CRC32校验码后按照文件长度转存为文件,计算文件的CRC32校验码并与发送端发过来的原始CRC32校验码比对,如校验码比对不一致,向发送端回馈失败消息,如校验码比对一致则向发送端回馈成功消息;步骤4,发送端接收到消息为失败,将文件标记为未传输成功,等待下一次传输;发送端接收到消息为成功,将文件标记为传输成功。

【技术特征摘要】
1.一种串口可靠传输文件的方法,其特征在于,包括以下步骤:步骤1,发送端建立用于记录待传输文件信息的待传输文件列表,需要传输文件时,将文件信息加入待传输文件列表,并标记传输状态为待传输;步骤2,发送端定时遍历待传输文件列表,如有文件状态为未传输成功或待传输,读取文件,依次将传输开始标志、流水号、不含文件路径的文件名、文件长度、CRC32校验码、文件内容和传输结束标志发送给接收端;如有文件状态为传输成功,则将该文件从待传输文件列表中删除;步骤3,接收端收到文件长度和CRC32校验码后按照文件长度转存为文件,计算文件的CRC32校验码并与发送端发过来的原始CRC32校验码比对,如校验码比对不一致,向发送端回馈失败消息,如校验码比对一致则向发送端回馈成功消息;步骤4,发送端接收到消息为失败,将文件标记为未传输成功,等待下一次传输;发送端接收到消息为成功,将文件标记为传输成功。2.根据权利要求1所述的方法,其特征在于,步骤1包括如下步骤:步骤1-1,发送端建立待传输文件列表,列表条目数为M,列表条目包括文件流水号、含全路径的文件名称、文件的CRC32校验码、文件传输状态和已传输次数,列表内容置空,发送端设置定时间隔N,每隔时间隔N遍历待传输文件列表;;步骤1-2,将待传输文件含全路径的文件名与从待传输文件列表中的文件名进行比对,检查是否有相同文件,如果有,更新文件的CRC32校验码,并标记状态为待传输、已传输次数置0,如果没有,从待传输文件列表中挑选一条空记录,将待传输文件的流水号、含全路径的文件名、文件的CRC32校验码添加进去,并...

【专利技术属性】
技术研发人员:田振兴韩戈白张威牟苏斌吴俊锋史慕志
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:江苏,32

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

1