• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      船舶尾氣監(jiān)測(cè)系統(tǒng)設(shè)計(jì)

      2018-10-13 07:58:16汪佳瑤安博文
      現(xiàn)代計(jì)算機(jī) 2018年23期
      關(guān)鍵詞:字節(jié)尾氣藍(lán)牙

      汪佳瑤,安博文

      (上海海事大學(xué)信息工程學(xué)院,上海 201306)

      0 引言

      目前,海事部門(mén)對(duì)船舶尾氣的排放監(jiān)管依舊采用人工的方式,比較耗時(shí)且成本較高。隨著電子技術(shù)的發(fā)展,智能移動(dòng)設(shè)備得到迅速普及,如果能利用手中的移動(dòng)設(shè)備來(lái)監(jiān)測(cè)船舶尾氣的排放,會(huì)大大提高海事部門(mén)的監(jiān)管效率[1]。

      本文根據(jù)船舶尾氣監(jiān)測(cè)系統(tǒng)軟件應(yīng)用的實(shí)際需求,利用藍(lán)牙和Android相關(guān)技術(shù),設(shè)計(jì)了無(wú)線連接控制氣體檢測(cè)裝置以及在Android應(yīng)用程序上實(shí)時(shí)顯示監(jiān)測(cè)數(shù)據(jù)的軟件應(yīng)用模塊。相較于傳統(tǒng)方式,該軟件應(yīng)用設(shè)計(jì)具有一定的智能化和便捷性。

      1 相關(guān)技術(shù)

      1.1 Android系統(tǒng)

      Android系統(tǒng)是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)[2]。Android操作系統(tǒng)最早由Andy Rubin開(kāi)發(fā),2005年8月由Google收購(gòu)注資。隨后,Google以Apache免費(fèi)開(kāi)放源代碼許可證的授權(quán)方式,發(fā)布了Android的源代碼,開(kāi)放源代碼加速了Android普及與發(fā)展。

      1.2 藍(lán)牙技術(shù)

      藍(lán)牙是一種短距離的無(wú)線數(shù)據(jù)通信技術(shù),能夠在包括手機(jī)、無(wú)線耳機(jī)、筆記本電腦等眾多設(shè)備間進(jìn)行無(wú)線信息傳輸。藍(lán)牙技術(shù)采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)以及點(diǎn)對(duì)多點(diǎn)通信,工作頻段為2.4GHz,數(shù)據(jù)速率為1Mb/s,并且采用時(shí)分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸[3]。Android 2.0以上版本的SDK包含了對(duì)藍(lán)牙網(wǎng)絡(luò)協(xié)議棧的支持,使得藍(lán)牙設(shè)備能夠無(wú)線連接其他藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)交換[4]。此外,Android應(yīng)用程序框架提供了訪問(wèn)藍(lán)牙功能的API,調(diào)用這些API能夠讓?xiě)?yīng)用程序無(wú)線連接其他藍(lán)牙設(shè)備,實(shí)現(xiàn)交互功能。

      2 船舶尾氣監(jiān)測(cè)系統(tǒng)軟件設(shè)計(jì)

      2.1 服務(wù)端軟件設(shè)計(jì)

      (1)數(shù)據(jù)庫(kù)設(shè)計(jì)

      數(shù)據(jù)庫(kù)是本設(shè)計(jì)不可或缺的一部分,客戶端和數(shù)據(jù)服務(wù)器是基于數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)通信的。本設(shè)計(jì)中采用的數(shù)據(jù)庫(kù)是MySQL,MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。本設(shè)計(jì)的MySQL數(shù)據(jù)庫(kù)的ER圖設(shè)計(jì)如圖1所示,其中實(shí)體部分主要由無(wú)人機(jī)、尾氣設(shè)備、船舶三個(gè)部分組成。無(wú)人機(jī)包括經(jīng)度,緯度和當(dāng)前的時(shí)間信息,尾氣傳感設(shè)備包括SO2和NOx濃度。船舶包括MMSI、COG、SOG等信息。無(wú)人機(jī)通過(guò)搭載尾氣傳感設(shè)備的方式,一對(duì)一聯(lián)系約束。氣體檢測(cè)裝置中的尾氣傳感設(shè)備和船舶通過(guò)尾氣檢測(cè),一對(duì)多聯(lián)系約束。

      圖1 系統(tǒng)數(shù)據(jù)庫(kù)ER圖

      (2)氣體數(shù)據(jù)存儲(chǔ)表

      在服務(wù)端建立數(shù)據(jù)庫(kù)存儲(chǔ)表,存儲(chǔ)船舶氣體檢測(cè)設(shè)備檢測(cè)的氣體數(shù)據(jù),分為歷史數(shù)據(jù)和最新數(shù)據(jù)表,歷史數(shù)據(jù)表包括所有接受的數(shù)據(jù),最新數(shù)據(jù)表只包括兩類(lèi)中最新一條接收的數(shù)據(jù),方便客戶端調(diào)用。

      發(fā)送時(shí)單次發(fā)送的數(shù)據(jù)長(zhǎng)度為18個(gè)字節(jié),從第0字節(jié)到第17字節(jié)。其中,第0字節(jié)為起始位擬定為0xFF,第1-2字節(jié)為設(shè)備號(hào)用于確定數(shù)據(jù)發(fā)送設(shè)備的信息,第2-5字節(jié)位時(shí)間位Small Datetime,為所采集的數(shù)據(jù)的采集時(shí)間,該部分信息前2個(gè)字節(jié)存儲(chǔ)base date(2018年1月1日之后的天數(shù))。后2個(gè)字節(jié)存儲(chǔ)午夜0點(diǎn)后的分鐘數(shù)。第6-9字節(jié)為所采集的氣體的濃度值,單位為ppb。第10-16個(gè)字節(jié)為無(wú)人機(jī)的經(jīng)緯度,獲取當(dāng)前無(wú)人機(jī)的信息。為了防止信息的泄露或者不完整性,第17字節(jié)設(shè)置了校驗(yàn)碼,校驗(yàn)碼的檢測(cè)標(biāo)準(zhǔn)為求和校驗(yàn)(第2字節(jié)至第10字節(jié)的和取反+1)。

      2.2 藍(lán)牙通信模塊設(shè)計(jì)

      (1)功能概要

      Android應(yīng)用程序通過(guò)藍(lán)牙與氣體檢測(cè)裝置配置命令的交互過(guò)程描述為:首先,Android應(yīng)用程序打開(kāi)藍(lán)牙,搜索氣體檢測(cè)裝置的藍(lán)牙與其配對(duì)并建立連接。然后,Android應(yīng)用程序發(fā)送一個(gè)開(kāi)始采集的指令,氣體檢測(cè)設(shè)備收到指令并回復(fù)后,設(shè)備登記完成,氣體檢測(cè)裝置開(kāi)始采集信息。此時(shí)Android應(yīng)用程序訪問(wèn)數(shù)據(jù)服務(wù)器,界面顯示采集到的氣體信息,并且實(shí)時(shí)刷新數(shù)據(jù),直至采集結(jié)束。藍(lán)牙控制模塊流程圖如圖2所示。

      圖2 藍(lán)牙控制模塊流程圖

      (2)藍(lán)牙通信的功能實(shí)現(xiàn)

      本設(shè)計(jì)中主要是手機(jī)終端與氣體檢測(cè)裝置中的藍(lán)牙模塊之間進(jìn)行通信,從而控制氣體檢測(cè)裝置的開(kāi)關(guān)。該過(guò)程可以認(rèn)為是客戶端與服務(wù)器端之間的通信。在Android系統(tǒng)中,支持的藍(lán)牙開(kāi)發(fā)類(lèi)在android.bluetooth包中,藍(lán)牙設(shè)備的管理涉及到的類(lèi)有Blue?toothAdapter與 BluetoothDevice兩個(gè)類(lèi),其中,Blue?toothAdapter代表本地設(shè)備的藍(lán)牙適配器,是所有藍(lán)牙交互的入口點(diǎn)。該BluetoothAdapter可以執(zhí)行基本的藍(lán)牙任務(wù),例如啟動(dòng)設(shè)備發(fā)現(xiàn),查詢配對(duì)的設(shè)備列表,使用已知的MAC地址實(shí)例化一個(gè)BluetoothDevice類(lèi),并創(chuàng)建一個(gè)BluetoothServerSocket監(jiān)聽(tīng)來(lái)自其他設(shè)備的連接請(qǐng)求。BluetoothDevice類(lèi)代表了一個(gè)遠(yuǎn)端藍(lán)牙設(shè)備,使用它請(qǐng)求遠(yuǎn)端藍(lán)牙設(shè)備連接,或者獲取遠(yuǎn)端藍(lán)牙設(shè)備的信息。

      與藍(lán)牙通信相關(guān)的類(lèi)有BluetoothServerSocket和BluetoothSocket類(lèi),BluetoothServerSocket類(lèi)用于監(jiān)聽(tīng)來(lái)自客戶端的連接請(qǐng)求,BluetoothSocket類(lèi)代表了一個(gè)藍(lán)牙套接字接口,能夠獲取輸入、輸出流并與其他藍(lán)牙設(shè)備進(jìn)行通信。

      藍(lán)牙通信的實(shí)現(xiàn)過(guò)程主要分為以下幾個(gè)部分:

      ①聲明權(quán)限。

      為了在應(yīng)用中使用藍(lán)牙功能,需要在AndroidMani?fest.xml中申明以下權(quán)限:

      ②打開(kāi)設(shè)備。

      獲取藍(lán)牙適配器:

      BluetoothAdapter mBluetoothAdapter=bluetoothManager.getAdapter()。

      ③查找附近已配對(duì)或可用設(shè)備。

      mBluetoothAdapter.startDiscovery()。

      ④連接設(shè)備。

      connected(socket,socket.getRemoteDevice())。

      ⑤設(shè)備間數(shù)據(jù)交互。

      InputStream mInStream=socket.getInputStream();

      mInStream.read(buffer);

      OutputStream mOutStream=socket.getOutputStream();

      mOutStream.write(buffer)。

      通過(guò)廣播接收者查看掃描到的藍(lán)牙設(shè)備,該方式是異步傳輸,每掃描到一個(gè)設(shè)備,系統(tǒng)都會(huì)發(fā)送此廣播(BluetoothDevice.ACTION_FOUNDE),通過(guò) intent方式可以獲取藍(lán)牙設(shè)備BluetoothDevice。移動(dòng)終端與尾氣檢測(cè)設(shè)備連接成功后,通過(guò)getInputStream()和getOut?putStream()方法獲取輸入流和輸出流來(lái)處理傳輸,調(diào)用read(byte[])和write(byte[])來(lái)實(shí)現(xiàn)數(shù)據(jù)流的讀和寫(xiě)。

      (3)Android端藍(lán)牙通信界面

      圖3和圖4分別是藍(lán)牙通信模塊的搜索界面和藍(lán)牙通信界面,通過(guò)藍(lán)牙通信模塊實(shí)現(xiàn)與尾氣監(jiān)測(cè)設(shè)備的交互、控制,當(dāng)手機(jī)的藍(lán)牙與設(shè)備的藍(lán)牙模塊建立連接后,發(fā)送一個(gè)指令start,藍(lán)牙模塊回復(fù)一個(gè)指令OK,設(shè)備開(kāi)始采集信息。

      2.3 監(jiān)測(cè)數(shù)據(jù)顯示模塊設(shè)計(jì)

      (1)功能概要

      該模塊主要是在手機(jī)App上顯示監(jiān)測(cè)數(shù)據(jù)信息,包括無(wú)人機(jī)的經(jīng)緯度、編號(hào)信息以及二氧化硫和一氧化碳的濃度信息,讓用戶可以直觀地監(jiān)測(cè)船舶尾氣的排放情況。顯示的監(jiān)測(cè)信息都是當(dāng)前時(shí)刻的最新信息,體現(xiàn)了信息的即時(shí)性。

      (2)監(jiān)測(cè)數(shù)據(jù)顯示

      當(dāng)氣體檢測(cè)設(shè)備開(kāi)始采集信息時(shí),手機(jī)控制端通過(guò) HTTP協(xié)議訪問(wèn)數(shù)據(jù)服務(wù)器[5],使用 Android的HttpURLConnection類(lèi),并采用Get的方式發(fā)送請(qǐng)求。訪問(wèn)成功后,獲取到JSON格式的數(shù)據(jù),即有序的JSO?NArray數(shù)組對(duì)象,因此需要將JSON數(shù)據(jù)進(jìn)行解析。首先,要新建JSONObject對(duì)象,再獲取對(duì)應(yīng)的數(shù)組,最后遍歷數(shù)組中的每個(gè)值獲得監(jiān)測(cè)信息數(shù)據(jù)。

      為了滿足監(jiān)測(cè)系統(tǒng)實(shí)時(shí)性的需求,利用Android中的多線程技術(shù),設(shè)置了一個(gè)定時(shí)器,使得數(shù)據(jù)每隔五秒更新一次,手機(jī)界面能夠顯示當(dāng)前時(shí)刻最新的數(shù)據(jù)。定時(shí)器是耗時(shí)操作,所以在UI主線程的基礎(chǔ)下,另開(kāi)一個(gè)子線程來(lái)實(shí)現(xiàn)定時(shí)器的功能,采用的是Handler+Thread方法。最終,監(jiān)測(cè)數(shù)據(jù)顯示模塊的流程圖如圖5所示。

      圖3 藍(lán)牙通信的搜索界面

      圖4 藍(lán)牙模塊的通信界面

      圖5 監(jiān)測(cè)數(shù)據(jù)顯示模塊流程圖

      圖6 監(jiān)測(cè)數(shù)據(jù)顯示界面

      3 實(shí)驗(yàn)測(cè)試

      系統(tǒng)軟件應(yīng)用設(shè)計(jì)完成后,結(jié)合氣體檢測(cè)裝置,在港區(qū)進(jìn)行測(cè)試。首先在服務(wù)端部署好相應(yīng)的軟件模塊,然后打開(kāi)手機(jī)Android應(yīng)用程序的藍(lán)牙通信界面和氣體檢測(cè)裝置中藍(lán)牙模塊進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)兩者的控制、交互。最后點(diǎn)擊訪問(wèn)服務(wù)器的按鈕,訪問(wèn)服務(wù)器,獲取監(jiān)測(cè)數(shù)據(jù),最終檢測(cè)信息顯示界面如圖6所示。界面結(jié)果表明,本文的設(shè)計(jì)能夠?qū)崟r(shí)準(zhǔn)確地獲取當(dāng)前時(shí)刻的監(jiān)測(cè)數(shù)據(jù),包括無(wú)人機(jī)的經(jīng)緯度、編號(hào)和氣體濃度信息,無(wú)人機(jī)信息能夠?yàn)楹罄m(xù)的系統(tǒng)開(kāi)發(fā)做鋪墊,氣體濃度信息可以使用戶直觀便捷地了解船舶尾氣的排放情況。

      4 結(jié)語(yǔ)

      本文介紹了一種船舶尾氣實(shí)時(shí)監(jiān)測(cè)系統(tǒng)軟件應(yīng)用設(shè)計(jì),利用藍(lán)牙無(wú)線通信的特點(diǎn)和Android平臺(tái)下數(shù)據(jù)顯示的直觀性、實(shí)時(shí)性,從服務(wù)端軟件設(shè)計(jì)為入口點(diǎn),設(shè)計(jì)了氣體檢測(cè)裝置和移動(dòng)智能終端的通信模塊,最終在Android應(yīng)用程序界面上呈現(xiàn)監(jiān)測(cè)數(shù)據(jù)信息。結(jié)果顯示,軟件模塊運(yùn)行穩(wěn)定,界面數(shù)據(jù)顯示準(zhǔn)確,實(shí)時(shí)性好,滿足監(jiān)管需求,具有良好的應(yīng)用前景。

      猜你喜歡
      字節(jié)尾氣藍(lán)牙
      藍(lán)牙音箱的直線之美
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      簡(jiǎn)單、易用,可玩性強(qiáng)Q AcousticsBT3藍(lán)牙音箱
      機(jī)動(dòng)車(chē)尾氣污染物排放和控制探究
      適合自己的才是最好的 德生(TECSUN) BT-50藍(lán)牙耳機(jī)放大器
      簡(jiǎn)談MC7字節(jié)碼
      緊急:藍(lán)牙指尖陀螺自燃!安全隱患頻出
      玩具世界(2017年8期)2017-02-06 03:01:38
      多層介質(zhì)阻擋放電處理柴油機(jī)尾氣顆粒物
      變頻技術(shù)在尾氣壓縮機(jī)上的應(yīng)用
      合川市| 汪清县| 武宣县| 镇康县| 安仁县| 九江市| 沽源县| 长春市| 西吉县| 健康| 色达县| 玛纳斯县| 通海县| 南靖县| 威远县| 北宁市| 盐津县| 白山市| 新化县| 马边| 开化县| 宜君县| 同江市| 平顶山市| 甘德县| 安达市| 宝兴县| 家居| 安图县| 察雅县| 区。| 阿尔山市| 永春县| 沈丘县| 广州市| 都匀市| 堆龙德庆县| 山阴县| 保德县| 长春市| 日照市|