新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于Android車載虛擬儀表人機界面設計

        基于Android車載虛擬儀表人機界面設計

        作者: 時間:2013-04-25 來源:網絡 收藏

        的應用程序需要進行重新開發,主要是界面模塊、CAN模塊、數據訪問模塊和告警模塊。其中CAN模塊設計成Service的方式。數據訪問模塊設計為Content Provider。告警模塊采用的通知方式為Broadcast Receiver和Notifica。系統通電后,在的System Server中首先啟動CAN模塊,然后啟動主界面的程序。

        3 應用程序的設計與實現
        應用程序的系統架構。通過PackageManager提供的各個APK的信息以菜單方式對各個功能模塊進行調用。
        3.1 CAN模塊
        CAN模塊用于數據的采集和處理,CAN模塊接到數據后,要對數據進行解析,判斷出接收到的數據類型。最終得到所需要的值。計算方法為根據參數所在數據域的字節位置提取其對應的原始數,再根據該參數對應的分辨率和偏移量得到參數值,其參數值的計算方法為:參數值=參數原始數×分辨率+偏移量。通過編程計算出數據代表的實際發動機狀態值,即可準確地在車輛實時功能模塊中顯示當前的車輛狀態。
        3.2 數據訪問模塊
        程序的數據訪問模塊,采用系統內置的SQLite數據庫,對一些重要車況信息自動記憶存儲,便于分析和維修,起到汽車“黑匣子”的作用。存儲的車況信息可以通過點擊回放按鈕直接在儀表界面上回放,真實再現汽車行進過程中的狀況。
        首先調用.openOrCreateDatabase()創建vehicle_database.db數據庫,然后配置SQLite數據庫屬性通過。創建一個數據表分別定義:行駛日期、出廠信息、車速、轉速信號、啟動、停止時刻、行使里程、報警信息等。將黑匣子接收到的數據對應數據表定義的格式通過.insert()向數據表中插入數據,通過.delete()指定日期來刪除過期的數據。顯示歷史數據需要先通過DatePicker獲取用戶輸入的年、月、日,并將具體日期數值提取出來,將條件放入SQL查詢語句.query()中來查詢,定義一個Cursor返回結果,然后創建一個數據適配器將Cursor的結果直接映射到ListView中的對應的TextView上。
        3.3 功能模塊
        功能模塊用于測控車輛的速度、發動機轉速、水溫和燃油、告警事件的顯示。系統設計的功能模塊界面顯示如圖3所示。

        本文引用地址:http://www.104case.com/article/196156.htm

        c.JPG


        3.4 告警模塊
        告警模塊本身是一個Broadcast Receiver,它負責接收其他模塊的告警事件,超速、油量、水溫、油壓等,并將這些信息寫入數據庫,同時調用告警顯示界面顯示對應的信息或以Notification的方式在狀態欄進行提示。在系統中,所有的應用程序之間都通過Binder進行通信,這種IPC機制是基于Linux底層驅動實現的,與傳統的進程間通信機制相比,它的執行具有更高的效率和更好的擴展性。

        4 結束語
        利用Android作為所開發的框架通過對各個功能模塊的細化,可以使系統設計更合理,模塊結構更獨立,容易進行軟件維護和代碼二次開發,基于Android應用程序框架設計的各個模塊,可以進行自由修改和替換,提高了系統的可定制性,雖然Android是手機軟件開發平臺,但憑借其優秀的系統架構設計和理念,會有越來越多的采用Android作為開發平臺。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海林市| 南江县| 临泽县| 泽库县| 华坪县| 靖江市| 松潘县| 肇东市| 应城市| 梁河县| 黔东| 舒兰市| 建昌县| 安丘市| 津市市| 沂水县| 竹溪县| 沂源县| 杭州市| 左云县| 定日县| 防城港市| 长岛县| 哈尔滨市| 秀山| 定襄县| 象州县| 阳城县| 屯昌县| 兰坪| 泗水县| 平昌县| 馆陶县| 连江县| 湘西| 新乐市| 赤壁市| 柳州市| 温泉县| 鄂温| 定兴县|