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

          新聞中心

          EEPW首頁 > 汽車電子 > 市場(chǎng)分析 > 車聯(lián)網(wǎng)監(jiān)控中心的研究與設(shè)計(jì)

          車聯(lián)網(wǎng)監(jiān)控中心的研究與設(shè)計(jì)

          ——
          作者:吳斌 姜立標(biāo) 姜思羽 時(shí)間:2014-04-24 來源:電子產(chǎn)品世界 收藏

            在數(shù)據(jù)庫的表格中,設(shè)計(jì)的字段主要有車主、車牌號(hào)、車型、經(jīng)度、緯度、速度、前左車門、前右車門、后左車門、后右車門、前端蓋、后端蓋、故障代碼和駕駛員疲勞狀態(tài)等,在收到了GPRS發(fā)送過來的數(shù)據(jù)之后,根據(jù)協(xié)議進(jìn)行解碼,將其中的數(shù)據(jù)分別存入對(duì)應(yīng)的數(shù)據(jù)庫當(dāng)中。向數(shù)據(jù)庫中新增數(shù)據(jù)的代碼如下:

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

            Adodc1.Recordset.AddNew '將數(shù)據(jù)寫入數(shù)據(jù)庫

            Adodc1.Recordset("車主") = chezhu

            Adodc1.Recordset("車牌號(hào)") = chepaihao

            Adodc1.Recordset("車型") = chexing

            . . . . . .

            Adodc1.Recordset.Update

            上面的chezhu、chepaihao、chexing等變量都是獲得了車載終端數(shù)據(jù)的全局變量,利用這種方式可以將數(shù)據(jù)存入到數(shù)據(jù)庫對(duì)應(yīng)的字段當(dāng)中,便于查詢、使用和保存。

            2 Android手機(jī)客戶端設(shè)計(jì)

            2.1 Android中Socket通信設(shè)計(jì)

            Android中提供了一個(gè)Socket的類,存在于“java.net.Socket”包中。首先要設(shè)定連接服務(wù)器的公網(wǎng)IP以及端口號(hào),同時(shí)以輸入流InputStream()的形式來獲取從服務(wù)器傳過來的數(shù)據(jù),然后從輸入流中讀取相應(yīng)的數(shù)據(jù)存入緩沖區(qū),最后讀取緩沖區(qū)即可以得到所需要的數(shù)據(jù)。把接收到的數(shù)據(jù)存在一個(gè)字符串里面,根據(jù)Android手機(jī)客戶端和PC上位機(jī)的協(xié)議進(jìn)行數(shù)據(jù)的解碼,再把解碼后的數(shù)據(jù)存入到相應(yīng)的字段當(dāng)中,比如經(jīng)度、緯度、速度、駕駛員疲勞狀態(tài)等等。

            使用手機(jī)也可以向PC機(jī)發(fā)送數(shù)據(jù)和指令,比如點(diǎn)擊了“車輛監(jiān)控”按鈕時(shí),就需要向PC機(jī)發(fā)送指令,再通過PC機(jī)來控制車輛,從而達(dá)到手機(jī)監(jiān)控車輛的效果。當(dāng)手機(jī)需要向PC機(jī)發(fā)送數(shù)據(jù)時(shí),建立Socket連接之后,是通過輸出流來實(shí)現(xiàn)的,先定義好所要發(fā)送的數(shù)據(jù),再用outputStream.write()語句來將數(shù)據(jù)發(fā)送到Socket服務(wù)器。

            由于Socket在連接通信的時(shí)候有可能會(huì)出現(xiàn)異常,所以系統(tǒng)要求加入用來捕捉和處理異常的try-catch語句。程序運(yùn)行正常時(shí),執(zhí)行try{}里面的代碼;當(dāng)出現(xiàn)異常時(shí),執(zhí)行catch里面的語句捕捉和處理異常。Android中Socket通信的部分代碼如下。

            try{

            Socket Socket = new Socket("125.216.144.177",8091); //實(shí)例化Socket

            InputStream indata = Socket.getInputStream(); //獲得從服務(wù)器傳過來的數(shù)據(jù)

            byte[] buffer = new byte[indata.available()]; //緩沖區(qū)

            indata.read(buffer); //讀取緩沖區(qū)

            String msg = new String(buffer); //轉(zhuǎn)換字符串

            System.out.println(msg); //將得到的數(shù)據(jù)進(jìn)行輸出

            String[] arr= msg.split(","); //以“,”分割收到的數(shù)據(jù),存入arr[]數(shù)組當(dāng)中

            OutputStream outputStream = Socket.getOutputStream(); //獲得輸出流,向服務(wù)器發(fā)送數(shù)據(jù)

            byte[] buffer2 = new byte[1111] ; //定義要發(fā)送的數(shù)據(jù)

            outputStream.write(buffer2, 0, 6); //開始發(fā)送數(shù)據(jù)

            }catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace(); }

            2.2 Android中電子地圖的加載與糾偏

            近幾年隨著Android操作系統(tǒng)的興起,越來越多的地圖供應(yīng)商都提供了Android地圖的SDK(軟件開發(fā)包),在Android中開發(fā)地圖加載的流程如下[5]:

            Android程序在開發(fā)地圖時(shí),需要在“AndroidManifest.xml”列表中添加多個(gè)應(yīng)用權(quán)限,保證電子地圖能夠正確加載。

            然后進(jìn)行初始化設(shè)置,在“SetupMap”函數(shù)中,需要設(shè)置地圖視圖、設(shè)置縮放尺度、將指定坐標(biāo)設(shè)置為地圖中點(diǎn)。

            “MapView”類的“setTraffic”方法可以設(shè)置顯示地圖視圖的模式,地圖視圖的模式有衛(wèi)星圖map.setSatellite(true)、一般地圖map.setTraffic(true)、街道圖map.setStreetView。“MapController”類的“setZoom”方法可以控制地圖的縮放尺度。由全球地圖(1)到街道地圖(21),數(shù)值越大地圖細(xì)節(jié)越詳細(xì)。

            Android通過“Geopoint”類來定義坐標(biāo),“Geopoint”接受的兩個(gè)參數(shù)分別是“緯度”、“經(jīng)度”值,需要以整數(shù)來表示。“Geopoint”接受的緯度和經(jīng)度手機(jī)通過Socket從上位機(jī)獲取,然后通過實(shí)例化GeoPoint ()對(duì)象,在GeoPoint ()輸入緯度和經(jīng)度即可以實(shí)現(xiàn)地圖的加載[6]。

            GeoPoint point = new GeoPoint((int)(weidu),(int)(jingdu));

            無論是Google地圖還是百度地圖,GPS坐標(biāo)直接輸入加載處理的位置是有偏差的,論文使用百度地圖提供的在線API坐標(biāo)轉(zhuǎn)換接口來實(shí)現(xiàn)糾偏,其語句為

            GeoPoint point2 =CoordinateConvert.bundleDecode(CoordinateConvert .

            fromWgs84ToBaidu(point));進(jìn)行轉(zhuǎn)換之后可以很好的解決坐標(biāo)偏移的問題,測(cè)試結(jié)果表明定位誤差在5米以內(nèi)。

            為了在地圖上標(biāo)示車輛所在的位置,需要添加一個(gè)定位圖標(biāo)。在Android電子地圖中屬于覆蓋物,所有的覆蓋物都繼承“Overlay”類,本次設(shè)計(jì)自定義一個(gè)CustomItemizedOverlay子類,繼承ItemizedOverlay類,用來實(shí)現(xiàn)標(biāo)注定位圖標(biāo)和定位文字的功能。

            3 系統(tǒng)的測(cè)試與結(jié)論

            在設(shè)計(jì)好監(jiān)控中心和手機(jī)客戶端之后,配合硬件進(jìn)行測(cè)試,監(jiān)控中心要具備公網(wǎng)IP,圖4和圖5為監(jiān)控中心的部分界面展示,圖6為Android手機(jī)客戶端界面。

            從以上測(cè)試結(jié)果可知,本次系統(tǒng)的設(shè)計(jì)達(dá)到了預(yù)期目標(biāo),系統(tǒng)總體運(yùn)行流暢,上位機(jī)監(jiān)控中心和Android手機(jī)能夠正確顯示車輛的基本信息、精確顯示車輛的位置、對(duì)車輛進(jìn)行監(jiān)控和控制、警示駕駛員是否疲勞等,便于車輛的管理、監(jiān)控、調(diào)度、遠(yuǎn)程診斷等,為我國的智能交通行業(yè)的發(fā)展提供有力的參考。


          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();