基于A(yíng)RM與WinCE的演示系統軟件設計
引 言
本文引用地址:http://dyxdggzs.com/article/149668.htm演示系統從最初的純光學(xué)幻燈機開(kāi)始,已經(jīng)有了數十年的歷史。發(fā)展至今,憑借與PC的整合優(yōu)勢,數字投影技術(shù)已經(jīng)成為主流。傳統意義上的數字演示系統由PC和投影設備組成,實(shí)現控制器、信號源和光學(xué)投影3部分功能。在演示過(guò)程中,由演示者直接操作PC,并由PC將待顯示信號輸出到投影設備。PC作為控制器和信號源,處于核心地位。在這一結構中,以PC作為信號源有利于發(fā)揮其較強的處理能力,能夠帶來(lái)比較好的演示效果;同時(shí),作為控制器,PC可以利用其豐富的人機交互能力提供便捷的操作。但另一方面,以PC為核心的演示系統也存在以下局限性:
①對PC的依賴(lài)性。演示系統必須配備1臺PC,作為操作和提供演示信號之用,為演示帶來(lái)不便。
②演示者的使用環(huán)境不能無(wú)縫遷移。在一些專(zhuān)業(yè)性較強的領(lǐng)域,演示者往往需要可以運行專(zhuān)業(yè)軟件的環(huán)境,而專(zhuān)用于演示的PC往往不具備這種條件,演示效果自然受到很大影響。
1 總體設計思路和流程
1.1 實(shí)現目標
針對傳統演示系統存在的上述不足,以提高演示系統便攜性、易用性為目標,嵌入式演示系統希望通過(guò)其他手段取代PC在演示系統的核心地位,從而使演示人員借助盡量少的設備,甚至不需要額外設備就能完成演示,并具有良好的環(huán)境適應能力,使演示者獲得更好的使用體驗。
1.2 實(shí)現途徑和方法
現階段,設備廠(chǎng)商主要通過(guò)配備USB、1394、讀卡器等接口的方式來(lái)提高系統的便攜性和易用性。這些接口通過(guò)投影機內部的嵌入式處理器,讀取優(yōu)盤(pán)、SD卡、移動(dòng)硬盤(pán)等外置存儲器內的文件,將文件信息轉換為視頻信號,輸出到投影設備上,從而實(shí)現無(wú)PC演示,如EPSONEMP-1815。
從結構上看,這種方法就是將嵌入式系統作為演示系統的控制器,優(yōu)盤(pán)、閃存卡等移動(dòng)存儲設備作為演示信息源,從而將PC取代。雖然這樣能夠實(shí)現脫離PC的演示,但整個(gè)系統還存在以下局限:
①硬件層的性能尚不足以實(shí)現對復雜文檔和數據的處理。雖然目前嵌入式系統相當于1個(gè)精簡(jiǎn)的PC系統,經(jīng)過(guò)近幾年的發(fā)展,其硬件性能已經(jīng)取得了很大進(jìn)步,但是相對于PC的處理能力來(lái)說(shuō)還是有較大差距,以現階段嵌入式系統的處理能力,還無(wú)法完美地執行大多數PC上的文檔數據處理和應用。
②軟件層方面,嵌入式系統應用軟件存在局限性。雖然嵌入式系統的軟硬件條件已經(jīng)與PC很接近,但無(wú)論是嵌入式的Windows系統還是Linux系統,都是其PC版本的精簡(jiǎn),大部分PC上的專(zhuān)業(yè)軟件都還沒(méi)有對應于嵌入式系統的版本,無(wú)法滿(mǎn)足專(zhuān)業(yè)演示的多樣化需求。
1.3 設計方案
為滿(mǎn)足要求,嵌入式演示系統在設計上主要有以下兩方面的考慮:
(1)基于嵌入式系統自身處理能力的本地文件演示
現有的嵌入式演示系統,都是通過(guò)USB接口、讀卡器等讀取優(yōu)盤(pán)、閃存卡等存儲介質(zhì),來(lái)實(shí)現對本地文件的支持。雖然這種依賴(lài)嵌入式系統自身處理能力的方式具有之前分析的軟硬件方面的不足,但已完全能勝任一些對運算要求不高的演示任務(wù)。
(2)基于網(wǎng)絡(luò )的瘦客戶(hù)端方案
瘦客戶(hù)端(thin client)指的是在客戶(hù)端一服務(wù)器網(wǎng)絡(luò )體系中基本無(wú)需應用程序的計算機終端。它通過(guò)接入局域網(wǎng),經(jīng)由特定協(xié)議與服務(wù)器通信。瘦客戶(hù)端將其鼠標、鍵盤(pán)等輸入傳送到服務(wù)器處理,服務(wù)器再把處理結果回傳至客戶(hù)端顯示。
瘦客戶(hù)端方案充分地利用了嵌入式系統的網(wǎng)絡(luò )連接能力,可以很好地克服嵌入式系統自身的局限和不足。主要體現在如下兩方面。
?、龠\算量小,適合嵌入式系統。嵌入式系統作為瘦客戶(hù)端,在整個(gè)系統的實(shí)現過(guò)程中僅僅需要負責接收與顯示服務(wù)器端回傳的遠程操作畫(huà)面,較低的硬件要求就可以實(shí)現媲美PC的顯示效果。
?、谥苯永肞C端成熟的軟件體系,具有良好的軟件兼容性。由于嵌入式系統作為瘦客戶(hù)端,直接將遠程服務(wù)器作為遠程桌面,達到間接操作遠程服務(wù)器的目的,所以用戶(hù)在客戶(hù)端操作的軟件環(huán)境和文檔數據都與服務(wù)器端完全一致,從而能夠提供使用環(huán)境和習慣從遠程服務(wù)器端到客戶(hù)端無(wú)縫“遷移”的良好用戶(hù)體驗。
但基于瘦客戶(hù)端的應用也有其不足之處,比如對遠程服務(wù)器和網(wǎng)絡(luò )的依賴(lài)性,一旦脫離網(wǎng)絡(luò )環(huán)境就無(wú)法工作等。
綜上所述,結合目前的軟硬件環(huán)境,采取兼顧上述2種途徑的方案是最為可行的。
1.4 硬件平臺簡(jiǎn)介
本嵌入式演示系統基于以三星S3C2440為核心的ARM9嵌入式系統,通過(guò)輔助輸出電路將開(kāi)發(fā)板輸出的數字顯示信號轉換為模擬VGA信號,最終輸出到投影儀。開(kāi)發(fā)板硬件自帶USB接口、讀卡器、網(wǎng)卡接口,用以與外界作數據交換。
1.5 軟件需求分析
本設計的軟件部分需要實(shí)現的功能主要有:
?、賹?shí)現本地文件資源的管理,通過(guò)開(kāi)發(fā)板自帶的USB、讀卡器等接口,與外置存儲設備交換數據。
?、谠谇度胧较到y上實(shí)現本地文檔、視頻、圖片等文件的打開(kāi)和播放,滿(mǎn)足基本演示要求。
?、圩鳛槭菘蛻?hù)端實(shí)現遠程連接功能,能對遠程服務(wù)器端進(jìn)行控制和回顯。
1.6 系統結構
系統結構如圖1所示,嵌入式系統硬件位于系統的最底層,第2層的嵌入式操作系統向下驅動(dòng)底層硬件,向上對應用程序提供接口,調度管理嵌入式系統的軟硬件資源。整個(gè)嵌入式系統包含1套完整的軟硬件架構,并具有一定的運算能力,可以運行簡(jiǎn)單的程序,實(shí)現管理本地資源的功能。
通過(guò)系統自帶的RJ-45以太網(wǎng)接口接入,嵌入式系統在局域網(wǎng)中可作為1個(gè)能夠獲得獨立IP地址的網(wǎng)絡(luò )瘦客戶(hù)端,通過(guò)遠程連接程序與遠程服務(wù)器端相聯(lián),發(fā)送鼠標鍵盤(pán)等簡(jiǎn)單輸入信息。服務(wù)器端經(jīng)運算后,回顯處理結果,達到在瘦客戶(hù)端間接實(shí)現復雜應用和處理的效果。
2主要技術(shù)和實(shí)現
在軟件方面,主要涉及系統層和應用程序層。
2.1 系統層
本設計的嵌入式系統采用微軟公司的嵌入式操作系統Windows CE 5.0。Windows CE在秉承Windows桌面操作系統高效易用特點(diǎn)的基礎上,兼容常見(jiàn)的嵌入式硬件,封裝了底層硬件接口,便于開(kāi)發(fā)者開(kāi)發(fā)基于嵌入式的應用程序。在Windows CE 5.0上,微軟提供了兼容.netframework的開(kāi)發(fā)平臺.net compact framework,使開(kāi)發(fā)人員能夠在盡可能接近桌面應用程序的環(huán)境下開(kāi)發(fā)嵌入式應用程序,提高了程序的開(kāi)發(fā)效率和不同平臺下的可移植性。
本設計的重點(diǎn)就是在Windows CE上進(jìn)行遠程控制和本地資源管理模塊的應用程序開(kāi)發(fā)。
2.2 遠程控制模塊
遠程控制是在網(wǎng)絡(luò )上由1臺電腦(主控端Remote/客戶(hù)端)遠距離控制另一臺電腦(被控端HoST/服務(wù)器端)的技術(shù),控制程序一般分2部分(客戶(hù)端程序Client和服務(wù)器端程序Server),開(kāi)始控制的時(shí)候,由Client端向Server端發(fā)出請求,Server端接受請求后與Client端建立連接。
2.2.1 UltraVNC
使用UltraVNC作為遠程控制程序,與其他遠程控制程序類(lèi)似,采用客戶(hù)端/服務(wù)器架構,允許經(jīng)由TCP/IP網(wǎng)絡(luò )連接,監視和控制遠程PC。UltraVNC作為以RealVNC為基礎開(kāi)發(fā)的遠程控制程序,具有以下特點(diǎn):
◆遵循業(yè)界廣泛應用的RFB協(xié)議;
◆經(jīng)過(guò)優(yōu)化,有效降低了網(wǎng)路連接時(shí)的系統資源占用,適合在嵌入式等性能有限的設備上使用;
◆免費程序,并在GPL協(xié)議下開(kāi)放源代碼,便于進(jìn)行二次開(kāi)發(fā)。
要實(shí)現遠程控制,需要在遠程PC上安裝服務(wù)器端程序,在嵌入式系統上安裝客戶(hù)端程序。對于WinCE平臺,UltraVNC并沒(méi)有官方發(fā)布的兼容客戶(hù)端,所以需要將UltraVNC官方客戶(hù)端程序移植到WinCE平臺的嵌入式設備上。
2.2.2 RFB協(xié)議
RFB(Remote FrameBuffer)是遠程圖形用戶(hù)的簡(jiǎn)單協(xié)議,工作在幀緩存級別上,所以它可以兼容于目前的主流操作系統,包括Windows、Linux和Mac OS。
RFB是真正意義上的“瘦客機”協(xié)議。RFB協(xié)議設計的重點(diǎn)在于減少對客戶(hù)端的硬件需求。這樣客戶(hù)端就可以運行在不同的硬件上,客戶(hù)機的任務(wù)實(shí)現上就會(huì )盡量簡(jiǎn)單。
RFB協(xié)議對于客戶(hù)端是無(wú)狀態(tài)的。也就是說(shuō),如果客戶(hù)端從服務(wù)器端斷開(kāi),那么當它重新連接相同的服務(wù)器,客戶(hù)端的狀態(tài)會(huì )被保存。甚至,1個(gè)不同的客戶(hù)端可以用來(lái)連接相同的RFB服務(wù)器,而在新的客戶(hù)端已經(jīng)能夠獲得與前一個(gè)客戶(hù)端相同的用戶(hù)狀態(tài)。因此,用戶(hù)的應用接口變得非常便捷。只要合適的網(wǎng)絡(luò )連接存在,那么用戶(hù)就可以使用自己的應用程序,并且這些應用會(huì )一直保存,即使在不同的接入點(diǎn)也不會(huì )變化。這樣無(wú)論在哪,系統都會(huì )給用戶(hù)提供一個(gè)熟悉、獨特的計算環(huán)境。
2.2.3 程序結構與實(shí)現流程
程序定義的常用數據結構:
①“class Conn”。連接實(shí)現的核心類(lèi),主要負責與UltraVNC Server端的連接,內容的顯示,以及Server端回傳信息的處理。
②“class ConnOpts”。ConnOps類(lèi)中定義了連接UltraVNC Server端所需要的連接參數,如連接模式、IP地址、端口、連接密碼等。
③“class NetworkConn”。NetworkConn封裝了WinCE中網(wǎng)絡(luò )連接相關(guān)的函數,便于程序調用
④“namespace Vnc.RfbProto”。Vnc.RfbProto命名空間封裝了RFB協(xié)議的基本數據結構和函數,作為遠程控制模塊的底層軟件調用。
⑤“class VncAuth”。系統安全組件,用于加密傳輸用戶(hù)連接密碼。
程序功能實(shí)現基本流程:
①通過(guò)獲取到的輸入連接參數,建立與遠程Server端的網(wǎng)絡(luò )連接。
②確認遠程連接協(xié)議版本,驗證用戶(hù)身份,初始化本地、遠程端。
③開(kāi)始連接,顯示遠程畫(huà)面。
④持續傳輸操作指令,返回更新的結果畫(huà)面。
2.3 本地資源管理模塊
為了便于管理嵌入式系統的本地資源,需要為應用程序添加本地資源管理功能。程序能夠在本地通過(guò)USB接口、讀卡器等外部接口訪(fǎng)問(wèn)所連接的資源,從而實(shí)現本地文檔、圖片等資源的簡(jiǎn)單演示功能。
本地資源管理功能主要通過(guò).net compact framework實(shí)現。net compact framework類(lèi)庫包含了訪(fǎng)問(wèn)和管理本地文件的System.IO.File類(lèi),調用相關(guān)方法可以實(shí)現文件的打開(kāi)、剪切、復制、粘貼等功能。系統目前可以直接打開(kāi)的文件有Word文檔(*.doc)、圖片文件(*.jpg,*.gif)。
部分功能代碼:
2.4 功能整合
要應用到實(shí)際產(chǎn)品中,還需要將上述2部分程序整合到統一的界面中。同時(shí),為了提供友好的用戶(hù)界面,原有WinCE系統的菜單、任務(wù)欄等界面元素需要在程序中隱藏,應用程序提供一個(gè)全屏的顯示界面。
隱藏任務(wù)欄和全屏顯示代碼:
3 性能和效果測試
①程序執行后通過(guò)2個(gè)按鈕實(shí)現遠程控制和本地管理功能的切換。
②點(diǎn)擊左邊窗口的文件結構樹(shù)就可以瀏覽本地文件,并預覽Word文檔和圖片。
③遠程控制成功連接后,用戶(hù)就可以完全按PC上的使用習慣,打開(kāi)和編輯復雜的文件,繼續使用Server端的軟件運行環(huán)境,無(wú)需學(xué)習和適應新的操作方法。
系統測試效果如圖2~圖4所示。
結 語(yǔ)
本設計將現有的嵌入式演示系統向網(wǎng)絡(luò )瘦客戶(hù)端概念拓展,提出了一個(gè)更為完善的嵌入式演示系統的設計并具體實(shí)現。通過(guò)本地資源管理模塊,可以實(shí)現本地文件管理和顯示;通過(guò)遠程控制模塊,實(shí)現了從現有PC環(huán)境向嵌入式系統的無(wú)縫遷移,用戶(hù)的所有文檔數據和應用程序都可以在嵌入式系統所控制的投影儀上顯示和控制,從而解決了現有嵌入式演示系統存在的軟硬件方面的局限。
目前,該系統仍處于初期階段,尚存在一些問(wèn)題,主要體現在:
①遠程控制模塊的運行效果仍然不夠理想,在遠程控制過(guò)程中畫(huà)面回顯仍有延時(shí)。這需要在以后的開(kāi)發(fā)過(guò)程中進(jìn)一步優(yōu)化遠程控制軟件的運行效率,同時(shí)改進(jìn)硬件,選用運算能力更強的嵌入式處理器。
②現階段僅支持有線(xiàn)網(wǎng)絡(luò )下遠程控制,隨著(zhù)Wi-Fi等無(wú)線(xiàn)網(wǎng)絡(luò )技術(shù)的越來(lái)越普及,下一步考慮在系統中加入無(wú)線(xiàn)網(wǎng)絡(luò )的支持,提高演示過(guò)程的便捷性。
③本地文件管理方面,現階段能支持的文件格式偏少,尚不能滿(mǎn)足演示需求,計劃在性能允許的情況下增加對更多文檔、視頻、圖片格式的支持,加強演示設備的通用性。
評論