車載系統之 Windows CE 應用軟體框架設計

2022-08-30 17:21:16 字數 2375 閱讀 8031

由於 windows ce 系統的標準介面無法滿足車載及其它產品的需求,一般使用 windows ce 的產品都會採用自定義、個性化的 ui。ui 的實現方案也是千差萬別,美觀是最基本的要求。其它如擴充套件性、穩定性等等要求,在設計時也是必須要考慮的。

整個框架暫且不說,先簡單說說 ui 最終的實現方法。使用 gdi 貼圖可能是大家最容易想到,是的,這確實是最通用的。其對系統的要求也比較低,不必考慮硬有件是否支援;其次,為了實現一些特殊的效果,在產品方案支援的情況下使用 overlay 結合貼圖,利用 overlay 的特性完成 ui 之間的快速切換。例如:使用以下 cpu 的方案telechips、sirf prima、imx,mstar785等使用 overlay 是沒有問題的;但 sirf a5、mstar 2521等低端的 cpu 則不支援。這兩種方案,基本上都是使用 windows ce 系統提供的功能。接下來是,使用諸如 open gl es 做出的支援較好的動畫效果的 ui。最後,使用 windows ce 新特性的 silverlight 來實現的 ui 產品,現在也慢慢的出現在車載系統中。但使用 silverlight 對系統的硬體配置要求比較高,現在也只出現在一些高階的產品中。

接下來說說框架,在 windows ce 下程式設計,怎麼也逃脫不了 windows 訊息框架,至於是使用 mfc 還是使用 win32 程式設計,那可以說是仁者見仁智者見智。但無論選用哪一種,它也只是乙個基礎。ui 框架如何設計,功能如何與 ui 完美的結合,以達到修改 ui 時盡可能不去關心功能**?這也是 silverlight 推出時的設計想法:ui 設計和實現,與功能的實現分開。這種分開,個人認為簡單的說就是耦合度降到最低,不可能徹底分開的。ui 與功能之間一般通過訊息、**或定時等機制結合在一起。例如有一種使用定時重新整理的 ui 方案,介面重新整理的工作由乙個獨立的執行緒控制,定時檢查各 ui 控制項是否需要重新整理、及如何重新整理?功能模組在功能實現時,只需要觸發控制項的重新整理標誌即可。

例如如下重新整理執行緒與功能**:

1

//重新整理執行緒**: 重新整理各型別控制項

2while

3

12}

13//

按鍵控制項

14foreach

(各個按鍵控制項)

15

21}

22//

......

//其它型別控制項

23 sleep(50

);

24}

2526

//功能**

27//

功能: 字串顯示控制項功能**

28//

引數說明: csstr 控制項顯示的字串; brefreshflag 重新整理控制項標誌

29void strsettingfunction(cstring &csstr,bool &brefreshflag)

30

42}

43//

功能: 按鍵控制項功能功能**

44//

引數說明: benable 按鍵使能標誌(對應顯示enable/disable); bselect 按鍵按下或選中; brefreshflag 重新整理標誌

45void btnsettingfunction(bool &benable,bool &bselect,bool &brefreshflag,...)

46

62if(bselect !=bnewselect)

63

67 }

以上功能函式只是乙個示例,例如:按鍵控制項可能需要顯示字串,其必然包含乙個與字串顯示類似的函式。各個控制項都會有顯示/隱藏屬性,這個在功能**中也需要體現出現。為了方便控制項布局,一般都會支援子視窗,這是乙個多個功能的集合。

如何使 ui 的設計具有簡單、方便的移植性?這是大家在設計時都會考慮的內容。只所以這樣考慮,是想在功能不變、或簡單變化的情況下,能快速完成修改、且保證產品的穩定性。特別是一些車載方案公司,對於一些要求不高的小客戶在快速確定ui 後幾天就可以完成產品的交付。這種修改,一般包括換圖和位置的調整。如何簡單有限的記錄與的位置等資訊呢?早在幾年前,就有通過簡單的格式化文本來完成的方案。後來標記語言興起,在嵌入式方案中也得到廣泛應用,特別是xml 語言。xml語言的特點這裡就不多說了,有興趣的童鞋在網路上查詢一下,就能得到答案。在這些方案中,都有用到處理的技術,以實現透明、半透明等效果。一般採用bmp 和png 格式,為了方案的保密性等其它一些考慮,一般通過工具打包,甚至於,xml檔案也一起打包。這樣在不了解打包後檔案格式的情況下,客戶就必須依賴於軟體設計者。

以上三部分結合在一起,就構成了車載應用系統中單個應用軟體的框架:控制項/子窗體/完整的介面。再給合乙個對多個應用控制的邏輯,完成應用啟動/關閉(顯示/隱藏)等的控制,以完成乙個完整的系統的設計實現。

車載機器視覺技術在智慧型交通系統中的輔助應用

近幾年來,機器視覺技術在安全領域所能起到的重要作用不斷突顯,使其成為可以替代人眼或是作為人眼輔助的最佳技術手段。智慧型交通系統是機器視覺技術在交通安全領域最為常見 最具代表性的應用,通過建立覆蓋城市主要幹道及路口的數字監控網路,借助於機器視覺系統對交通路口車輛執行狀況進行精準成像,並實時將影象資訊傳...

車載全景可視系統surroundview

全景可視系統,也又稱全景泊車等等,市面已經有產品出現,各家的方案看起來又不一樣。對全景,飛思卡爾freescale 富士通fujitsu擁有比較完整的解決方案,但也有其他公司推出自己的產品,但晶元都基本選用飛思卡爾或富士通的。從使用者角度來說,全景有以下幾個分類 影象是否有拼接?支援哪些視角功能 廣...

車載診斷系統 OBD

obd是英文on board diagnostic的縮寫,中文翻譯為 車載診斷系統 這個系統隨時監控發動機的執行狀況和尾氣後處理系統的工作狀態,一旦發現有可能引起排放超標的情況,會馬上發出警示。當系統出現故障時,故障燈 mil 或檢查發動機 check engine 警告燈亮,同時obd系統會將故障...