原创 ARM9工控主板支持断点续传的应用程序FTP远程自动更新方案

2009-9-21 11:34 1108 4 4 分类: MCU/ 嵌入式

文章来源:http://www.emtronix.com/article/article2009314.html


      在英创公司网站文章《ARM9工控主板WinCE应用程序的远程FTP自动更新》一文中,介绍了利用WinCE内核中的FTP Server程序,实现应用程序远程更新的方法,但在很多应用场合,往往是工控主板作为FTP客户端与FTP服务器交换文件,为此我们提供了FTP客户端应用程序库EM_FTPClient.LIB,客户利用这个库可以方便的编写出适合自己应用的FTP客户端应用程序,在《ARM9工控主板支持断点续传的FTP文件传送》一文中对各库函数做了详细介绍。本文介绍的更新方案就是利用EM_FTPClient.LIB,工控主板作为客户端,通过GPRS实现应用程序远程更新。客户可先看《ARM9工控主板WinCE应用程序的远程FTP自动更新》,再看本文,可对应用程序的自动更新有更清楚的了解。

      本方案的最大特点是FTP传送支持断点续传,由于GPRS网络的原因,对基于GPRS的FTP应用,断点续传功能必不可少,本文的断点续传方案大大增加了文件传送成功的机率,节省了传送时间。本方案分为两个大的步骤:一、应用程序远程下载,主要是将FTP服务器上指定目录下的文件下载到本地指定的目录中,同时生成update.flg标志文件;二、应用程序自动更新,通过绑定在内核中的update.exe程序实现。

一、应用程序远程下载

      应用程序的下载由FTPTEST.EXE完成,程序中,先读取配置文件FtpConfig.txt,FtpConfig.txt中包含了目标FTP服务器,登录用户名、密码,远端目录等信息。读取配置文件后,紧接着GPRS拨号,GPRS连接建立成功,就依次调用EM_FTPClient.LIB中的Logon()登录到FTP服务器,ListAll()列取FTP目录下的文件, GetFile()函数进行文件下载,如果在下载过程中出错,则再次调用GetFile()函数,并将参数中的bResume设置为TRUE,进行断点续传。各函数的具体使用请参考
《ARM9工控主板支持断点续传的FTP文件传送》。文件下载成功后,将生成update.flg标志文件。

      FtpConfig.txt 中的各项定义如下:

      [FTP_SERVER]     //目标FTP服务器信息
      IPAddress='125.69.125.193'   //FTP服务器IP
      DomainName=''     //FTP服务器域名
      [LOGON_INFO]     //FTP用户信息
      User='guest'      //登录用户名
      Pass='888'      //用户密码
      RemoteDir='\ttt'     //FTP服务器目录
      FtpType='image'     //传输文件类型 image/ascii
      [LOCAL_INFO]     //用户本地信息
      LocalDir='\NandFlash\FTPUpdate' //下载文件存储的本地目录
      ExistFile='jump'     //要下载的文件已存在于当前目录:跳过或覆盖jump/cover
      MaxResumeCount='10'    //FTP最大重试次数

二、应用程序自动更新

      为了避免和正在运行的应用程序冲突,文件均下载到指定的\NandFlash\FTPUpdate下,系统启动时,先检查userinfo.txt中的Update项是否等于“ON” ,如果是,则启动自动更新方案,运行update.exe来完成程序的更新工作。对于update.exe的详细说明,请参考《ARM9工控主板WinCE应用程序的远程FTP自动更新》

      本文介绍的方法既是一个完整的应用程序更新方案,也是一个EM_FTPClient.LIB库应用的例子,感兴趣的客户可向英创索要相关代码。


 


更多技术文章


 


论坛技术咨询


 


产品预览查看


 


关于成都英创

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /1 下一条