<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于Android車載虛擬儀表人機(jī)界面設(shè)計(jì)

          基于Android車載虛擬儀表人機(jī)界面設(shè)計(jì)

          作者: 時間:2013-04-25 來源:網(wǎng)絡(luò) 收藏

          的應(yīng)用程序需要進(jìn)行重新開發(fā),主要是界面模塊、CAN模塊、數(shù)據(jù)訪問模塊和告警模塊。其中CAN模塊設(shè)計(jì)成Service的方式。數(shù)據(jù)訪問模塊設(shè)計(jì)為Content Provider。告警模塊采用的通知方式為Broadcast Receiver和Notifica。系統(tǒng)通電后,在的System Server中首先啟動CAN模塊,然后啟動主界面的程序。

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

          本文引用地址:http://www.ex-cimer.com/article/196156.htm

          c.JPG


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

          4 結(jié)束語
          利用Android作為所開發(fā)的框架通過對各個功能模塊的細(xì)化,可以使系統(tǒng)設(shè)計(jì)更合理,模塊結(jié)構(gòu)更獨(dú)立,容易進(jìn)行軟件維護(hù)和代碼二次開發(fā),基于Android應(yīng)用程序框架設(shè)計(jì)的各個模塊,可以進(jìn)行自由修改和替換,提高了系統(tǒng)的可定制性,雖然Android是手機(jī)軟件開發(fā)平臺,但憑借其優(yōu)秀的系統(tǒng)架構(gòu)設(shè)計(jì)和理念,會有越來越多的采用Android作為開發(fā)平臺。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();