“零基礎”學(xué)習WinCE開(kāi)發(fā)
在接觸WinCE時(shí)候的基礎:
本文引用地址:http://dyxdggzs.com/article/201609/303405.htm軟件語(yǔ)言基礎:C/C++/C#。我不是計算機專(zhuān)業(yè)的,所以這些語(yǔ)言基礎也是比較業(yè)余的。經(jīng)驗不豐富,遇到問(wèn)題就是查MSDN或者到網(wǎng)上查找相關(guān)解決方案即可,程序就有這點(diǎn)好處,很多東西都是成熟的技術(shù),到網(wǎng)上甚至連源碼都能找到的。
硬件平臺基礎:用的是廣州致遠的開(kāi)發(fā)板EPCS-6960I-W,這種小型工控板自帶WinCE系統,而且有比較多的硬件接口可以用來(lái)進(jìn)行數據采集和數據通訊。
學(xué)習資源:廣州致遠公司會(huì )提供一張學(xué)習光盤(pán),里面有相應的開(kāi)發(fā)示例和工控板的電路結構及一些硬件驅動(dòng)。在安裝了廠(chǎng)家提供的EPCS-6960I-W工控板對應的SDK開(kāi)發(fā)包后,會(huì )在相應的目錄下找到WinCE的幫助文檔,里面對WinCE系統的相關(guān)API的詳細介紹。還有就是到遇到問(wèn)題可以到網(wǎng)上找解決方法,或者直接打電話(huà)到廠(chǎng)家的技術(shù)部進(jìn)行咨詢(xún)。
1. 認識WinCE
Windows CE 是微軟公司開(kāi)發(fā)的一個(gè)針對小型設備(它是典型的擁有有限內存的無(wú)磁盤(pán)系統)的通用操作系統。主要用于嵌入式系統和移動(dòng)終端設備上,操作界面和PC機上的 WinXp系統比較類(lèi)似,例如也是窗口化的操作界面,也具有磁盤(pán)資源管理器,文件系統和網(wǎng)絡(luò )通訊協(xié)議和WinXp一樣,程序開(kāi)發(fā)也和WinXp環(huán)境下的程序開(kāi)發(fā)。具體關(guān)于WinCE的介紹可以到網(wǎng)上搜索相關(guān)資料。個(gè)人的理解就是,WinCE可以看作一個(gè)精簡(jiǎn)后的WinXp系統,“麻雀雖小,五臟俱全”,在一些小型工控系統中可以發(fā)揮巨大的作用。
2. 開(kāi)發(fā)環(huán)境
2.1 連接設備
先安裝ActiveSync4.2同步軟件。安裝完畢后,你的PC機上的資源管理器中會(huì )多一個(gè)“移動(dòng)設備”的圖標(如下圖),這個(gè)就是和移動(dòng)設備進(jìn)行文件交互的接口。通過(guò)這個(gè)接口,用戶(hù)可以在PC機上對移動(dòng)設備的文件進(jìn)行讀取的相關(guān)簡(jiǎn)單操作。

將工控機主板用USB連接到PC機上,給主板接上電源并啟動(dòng)WinCE系統。然后在PC端Micrsoft ActiveSync同步軟件會(huì )自動(dòng)進(jìn)行檢測,并連接到移動(dòng)設備。連接成功后,會(huì )有如下圖的提示出現。

當PC機和移動(dòng)設備成功建立連接后,用戶(hù)就能以PC機上的資源管理器中的“移動(dòng)設備”作為入口對移動(dòng)設備進(jìn)行文件訪(fǎng)問(wèn)和其它相關(guān)操作了,比如,假如你是利用PC側的WinCE模擬器開(kāi)發(fā)的程序,那么生成的執行文件也在PC上,你可以通過(guò)“移動(dòng)設備”接口,將你的程序文件“下載”到移動(dòng)設備中。

注意:只有連接設備成功了,才能進(jìn)行后面的程序開(kāi)發(fā)和調試。
小建議:最開(kāi)始的時(shí)候,都以為WinCE開(kāi)發(fā)只需要一塊安裝了WinCE系統的工控板即可,不需要LCD,然后就直接黑燈瞎火地弄了一個(gè)月,最后實(shí)在忍受不了,然后花了800RMB買(mǎi)了一塊配套液晶板,才突然感覺(jué)好起來(lái)。開(kāi)發(fā)Windows程序的時(shí)候,液晶板是必需的,否則你在開(kāi)發(fā)的時(shí)候將會(huì )很難受的,就像給了你一臺沒(méi)有顯示器的電腦,雖然你可以通過(guò)鼠標進(jìn)行盲操作,但那種感覺(jué)應該是比較糟糕的吧。
2.2 開(kāi)發(fā)環(huán)境中需要進(jìn)行的設置。
本次開(kāi)發(fā)選用的環(huán)境是VS2005,雖然網(wǎng)上很多例程都是用Microsoft eMbedded C++ 4.0(以下簡(jiǎn)稱(chēng)eVC4.0)進(jìn)行開(kāi)發(fā)的,但是個(gè)人感覺(jué)VS2005的功能更強大一些,體驗也更好一些。eVC4.0和開(kāi)發(fā)界面和VC6.0一樣(如下圖),是一款比較經(jīng)典的開(kāi)發(fā)環(huán)境,喜歡VC6.0風(fēng)格的用戶(hù)可以選用eVC4.0進(jìn)行開(kāi)發(fā)。


2.3 開(kāi)發(fā)語(yǔ)言選擇
WinCE5.0的版本,支持C/C++/C#。因為支持C#,也就是說(shuō)在WinCE5.0集成了.NET框架,但是因為WinCE系統在工控板上的應用,屬于比較底層的應用,會(huì )涉及較多的硬件接口的開(kāi)發(fā),所以一般建議用C++進(jìn)行開(kāi)發(fā),但是因為C#在高層應用上的開(kāi)發(fā)具有難度低、周期短的特點(diǎn),所以可以進(jìn)行兩種語(yǔ)言的混合編程的(在今后的“DLL應用”中將會(huì )講到這種技術(shù)的應用)。
2.4 開(kāi)發(fā)環(huán)境的設置
2.4.1 C#項目的建立和設置
用VS2005建立智能設備Windows CE 5.0的C#項目,開(kāi)發(fā)環(huán)境就會(huì )自動(dòng)建立一個(gè)模板,用戶(hù)可以在此代碼模板中寫(xiě)自己的程序了。

但是此時(shí)如果點(diǎn)擊調試,將彈出一個(gè)移動(dòng)設備模擬器,不能和實(shí)際的工控板硬件進(jìn)行連接調試,所以需要進(jìn)行相關(guān)設置。在解決方案資源管理器中,選中項目,右擊-屬性,然后會(huì )彈出屬性設置頁(yè)面。

在“設備”選項卡中的部署選項的目標設備選擇為“Windows CE 設備”,這個(gè)時(shí)候就可以連接工控機設備了。輸出文件文件夾中
“%CSIDL_PROGRAM_FILES%WinCeCsUseDll”
表示的是在WinCE設備中的根目錄下的Program Files文件夾中的WinCeCsUseDll目錄下生成此項目的相關(guān)文件。點(diǎn)擊右邊的“瀏覽”按鈕可以進(jìn)行相關(guān)的設置。因為工控機上的除了放在 FlashDisk里面的東西在斷電后不會(huì )丟失外,其余的都會(huì )丟失,所以,你可以通過(guò)對此路徑的設置,將你的程序生成的目錄放在FlashDisk中,這樣斷電了也不會(huì )丟失了。
2.4.2 C++項目的建立和設置
選擇項目類(lèi)型:

選擇SDK開(kāi)發(fā)包(工控機廠(chǎng)家會(huì )提供相應的開(kāi)發(fā)軟件包的):

選擇相應的開(kāi)發(fā)環(huán)境:窗口程序,控制臺程序,DLL和表態(tài)庫,等等。例如,選擇建立“控制臺應用程序”并添加MFC支持:

然后點(diǎn)擊完成,VS2005就自動(dòng)為你創(chuàng )建了程序模板了。
在項目屬性中有一些設置需要注意一下。在項目解決方案瀏覽器中,右擊項目并選擇屬性,會(huì )彈出一個(gè)屬性對話(huà)框。“部署”選項卡中的“遠程目錄”是指你的項目在WinCE工控機上生成的對應目錄。“調試”選項卡中的“遠程可執行文件”是指你程序調試要調用的執行文件(注意:如果你建立的是DLL項目,那么,這個(gè)地方要修改一下,修改成調用了此DLL文件的EXE執行程序,只有這樣DLL項目才能夠進(jìn)行調試)。

例如:部署遠程目錄為
%CSIDL_PROGRAM_FILES%WinCeCsUseDll
表示,你在PC機上對項目進(jìn)行部署后,你可以在你的WinCE工控機的根目錄下的Program Files文件夾下的WinCeCsUseDll文件夾下找到此項目的相關(guān)生成文件。

例如:調試選項卡下的遠程可執行文件目錄為:
%CSIDL_PROGRAM_FILES%WinCeCsUseDllWinCeCsUseDll.exe
表示,當你在PC機上調試此項目的時(shí)候,會(huì )調用的EXE文件目錄。在你選擇調試的時(shí)候,VS2005會(huì )先執行“部署”也就是會(huì )在WinCE設備的相應目錄下生成相關(guān)的文件,然后再進(jìn)行調用和調試。如果開(kāi)發(fā)的是DLL程序,那么,就更好理解了,就是直接啟動(dòng)一個(gè)對此DLL進(jìn)行了調用的EXE文件,然后對引DLL的源碼進(jìn)行調試。
小技巧:如果是編寫(xiě)DLL程序,那么就要同時(shí)編寫(xiě)一個(gè)調用此DLL的EXE程序,因為你調試DLL程序或者調用DLL文件的時(shí)候,都需要保證EXE程序和DLL文件在同一目錄下,所以,可以在項目屬性將對兩項目的部署路徑進(jìn)行設置,放在同一目錄下面,并將 DLL的調試所需要調用的程序的路徑設置成你編寫(xiě)的EXE文件路徑。
3. 開(kāi)發(fā)過(guò)程中的學(xué)習資源
如果對上面的基本知識了解了,那么后面的基本就是你的編程水平的體現了。遇到問(wèn)題后的解決方法和你進(jìn)行XP桌面程序開(kāi)發(fā)一樣了,因為WinCE可以理解成一個(gè)小型化的WinXp系統,所以,如果你有Xp系統的開(kāi)發(fā)經(jīng)驗,那么你就能夠比較快速入門(mén)。主要的學(xué)習參考資料如下:
3.1微軟幫助文檔MSDN
一般本地的MSDN是面向XP平臺的桌面應用程序的,但是因為WinCE有很多的類(lèi)似,所以,一些基本的API方法也是可以移植到WinCE上的。不過(guò),建議直接用在線(xiàn)的MSDN,里面有專(zhuān)門(mén)針對WinCE開(kāi)發(fā)的幫助。
http://msdn.microsoft.com/en-US/library/ms899235.aspx

在線(xiàn)幫助文檔的目錄如上所示。注意是一層一層往下展開(kāi)的。
3.2 工控板生產(chǎn)廠(chǎng)家提供的幫助文檔
當你安裝了工控板生產(chǎn)廠(chǎng)家提供的SDK開(kāi)發(fā)包后,就會(huì )在相應的目錄下找到幫助文檔了。例如安裝了EPCS6960的SDK后,會(huì )在目錄
C:Program FilesWindows CE Toolswce500EPCS_6960Help
里面找到相應的本地WinCE開(kāi)發(fā)幫助文檔。

3.2 網(wǎng)絡(luò )論壇
到網(wǎng)上多搜索相關(guān)帖子,即使解決不了你的問(wèn)題,但總會(huì )給你一些啟發(fā)的。即使專(zhuān)門(mén)針對WinCE的帖子不多,但是你可以找WinXp的,一般都是可以移植的(C++的移植性要好一些,但是C#可能移植性差一點(diǎn),因為WinCE下安裝的只是一個(gè)精簡(jiǎn)的.NET框架)
總述:做了上述的準備工作后,后面的就是“體力活”了。任何所謂的腦力勞動(dòng)都是這樣的,當你掌握了基本技能后,腦力活動(dòng)也就變成了體力活動(dòng)了。好,有了這些基本的技能后,就開(kāi)始解決問(wèn)題吧。
注:購買(mǎi)硬件平臺的價(jià)格比較高,比如EPCS6960的工控板一套就要接近兩千,一個(gè)液晶屏又要將近800,所以對于初學(xué)者,可以自己到網(wǎng)上下載WinCE模擬器,軟件仿真WinCE操作系統,熟悉WinCE下的程序設計。用硬件工控板的主要好處就是,有硬件接口及相應的驅動(dòng)程序提供給開(kāi)發(fā)人員,可以進(jìn)行現場(chǎng)數據采集和控制。
評論