我的工程實踐的題目是基于OpenGL ES 2.0的車載虛擬表盤軟體的開發,是一個純開發的專案,這個軟體主要是面向房車的用戶,因為這款軟體的功能包括控制車載系統的燈光,有睡眠,夜晚,日常等模式,還有顯示電壓和水壓,包括車內外溫度等資訊最后在界面上面顯示出來,對于此次工程實踐我選擇用例建模:
用例建模的定義:用例方法完全是站在用戶的角度上(從系統的外部)來描述系統的功能的,在用例方法中,我們把被定義系統看作是一個黑箱,我們并不關心系統內部是如何完成它所提供的功能的,用例方法首先描述了被定義系統有哪些外部使用者(抽象成為Actor),這些使用者與被定義系統發生互動;針對每一參與者,用例方法又描述了系統為這些參與者提供了什么樣的服務(抽象成為Use Case),或者說系統是如何被這些參與者使用的,所以從用例圖中,我們可以得到對于被定義系統的一個總體印象,
用例建模的主要步驟:
- 確定業務參與者——可以是與系統有互動的外部硬體、軟體、組織、人等,
- 確定業務需求用例——參與者需要系統提供的完整功能,
- 創建用例圖——標識參與者與用例之間、用例與用例之間的關系
1.抽取Abstract use case
此次工程實踐的專案通過用例建模得到的Abstract use case為 主題選擇、語音控制、燈光控制、車內資訊管理、例外報警,
2.用例圖

3.High level use case
主要為界面主題的切換和選擇,主要用到了多執行緒的技術,在預設的每一個demo模型中添加到執行緒中去,這樣可以根據不同的房車的廠商進行有選擇的更換;
OpenGL ES 2.0的API的呼叫,對于基本界面的按鈕的方法的定義和電池,水位等圖示的變換,用到了OpenGL中的著色器和圖形變換的原理
語音識別功能,主要做到了將輸入的語音資訊轉換成而二進制的編碼,再通過函式的呼叫將結果輸出在顯示屏上
4.電壓,水位、溫度等資訊資訊的獲取
主要是通過將硬體的傳感器得到的電信號傳遞到開發板中,開發板使用了單片機和一個封裝過的linux作業系統,可以通過與pc之間的串口通信來實作對系統中檔案的管理,每次通過使用SecureCRT將在電腦中編譯出來的可執行檔案上傳到機子中,機子的界面就會展示出效果
這次的工程實踐主要在于對于各種風格的界面的 使用OpenGL ES 2.0的API的呼叫,來對這個界面進行自己的設計,使用c語言撰寫多個customer的形式來切換用戶的使用模式,基于OPENGL的成套GUI庫 代碼清晰易懂使用超級方便 支持控制元件序列化和反序列化 支持整體和單個控制元件換膚,使用OpenGL繪制用戶界面時,基本繪圖程序分為:清楚緩沖區,設定當前顏色、繪制幾何單元(繪制模型)、輸出圖形,OpenGL的變換實際上是通過矩陣乘法來實作,無論是移動、旋轉還是縮放大小,都是通過在當前矩陣的基礎上乘以一個新的矩陣來達到目的,繪制模型時,需要首先確定繪畫元素相對于坐標原點的坐標,再通過矩陣變換計算出每個繪畫元素相對于坐標原點的位移、旋轉角度、裁剪、視窗變換等位置資訊,而上述位置資訊需要通過矩陣運算的方式進行確定,變換矩陣型別多樣,上述的界面還在處于發展的階段,還有待改進,比如人臉識別,微信二維碼等還未啟用,之后還需要加入進去,使界面更加豐富,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2093.html
標籤:其他
