利用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程序实现。
1、应用程序远程下载
应用程序的下载由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最大重试次数
2、应用程序自动更新
为了避免和正在运行的应用程序冲突,文件均下载到指定的\NandFlash\FTPUpdate下,系统启动时,先检查userinfo.txt中的Update项是否等于“ON” ,如果是,则启动自动更新方案,运行update.exe来完成程序的更新工作。对于update.exe的详细说明,请参考《ARM9工控主板WinCE应用程序的远程FTP自动更新》。
本文介绍的方法既是一个完整的应用程序更新方案,也是一个EM_FTPClient.LIB库应用的例子,感兴趣的客户可向英创索要相关代码。
-
嵌入式主板
+关注
关注
7文章
6085浏览量
35292
发布评论请先 登录
相关推荐
评论