利用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瀏覽量
35342
發布評論請先 登錄
相關推薦
評論