鄭嘉明,蘇凱雄
(福州大學(xué) 物理和信息工程學(xué)院,福建 福州 350002)
基于Android手持?jǐn)?shù)據(jù)采集分析軟件的設(shè)計(jì)
鄭嘉明,蘇凱雄
(福州大學(xué) 物理和信息工程學(xué)院,福建 福州 350002)
針對(duì)大型工程機(jī)械設(shè)備智能化的趨勢(shì),緊密結(jié)合現(xiàn)代化大型工程機(jī)械設(shè)備的需求現(xiàn)狀,基于Android系統(tǒng)設(shè)計(jì)了一套工程機(jī)械手持?jǐn)?shù)據(jù)采集分析軟件。通過WiFi接收下位機(jī)采集的數(shù)據(jù),在Android終端以圖形文本等多種形式顯示數(shù)據(jù)并將數(shù)據(jù)保存在本地。該設(shè)計(jì)旨在為手持式、便攜式的工程數(shù)據(jù)采集終端與數(shù)據(jù)分析軟件的開發(fā)提出一種新的解決方案。
工程機(jī)械;手持式;Android;數(shù)據(jù)采集
傳統(tǒng)工程機(jī)械工作狀態(tài)監(jiān)控系統(tǒng),具有體積龐大、價(jià)格昂貴、攜帶不易、操作困難和難以勝任野外惡劣工作場(chǎng)合的特點(diǎn)。因此隨著當(dāng)前科學(xué)技術(shù)的飛速發(fā)展,緊跟當(dāng)前電子技術(shù)發(fā)展的形勢(shì),開發(fā)低成本、高性能的手持便攜式工程機(jī)械數(shù)據(jù)采集與分析系統(tǒng)具有重要的意義。本文旨在為手持式、便攜式的工程數(shù)據(jù)采集與終端顯示分析軟件的設(shè)計(jì)提供一種新的解決方案[1]。
本文緊密結(jié)合現(xiàn)代化的大型工程機(jī)械設(shè)備的需求現(xiàn)狀,以裝載機(jī)為研究對(duì)象,采用模塊化和模型-視圖-控制器(Model-View-Controller,MVC)的設(shè)計(jì)思想[2],設(shè)計(jì)了基于Android平臺(tái)的工程機(jī)械手持?jǐn)?shù)據(jù)采集分析軟件,采用WiFi技術(shù)將工程機(jī)械的運(yùn)行狀態(tài)參數(shù)發(fā)送到Android手機(jī)或者Android平板電腦上,在Android系統(tǒng)上開發(fā)一套應(yīng)用程序?qū)⑦@些信息以文本或者圖形的方式呈現(xiàn)給工程機(jī)械設(shè)備的維護(hù)人員。相比于傳統(tǒng)的手段,以往的數(shù)據(jù)采集終端因受系統(tǒng)軟件的條件限制,無法實(shí)現(xiàn)強(qiáng)大的數(shù)據(jù)分析處理功能和強(qiáng)大的圖形處理功能,本文基于Android系統(tǒng)提供的強(qiáng)大的數(shù)據(jù)處理能力和圖形顯示能力[3],實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)的接收、分析、處理和存儲(chǔ),并以多種圖形形式將數(shù)據(jù)呈現(xiàn)給用戶。并充分將維護(hù)人員的移動(dòng)終端作為維護(hù)工具,不僅操作簡(jiǎn)單、易于攜帶而且降低了成本。
本文以裝載機(jī)為研究對(duì)象,設(shè)計(jì)出一套基于Android系統(tǒng)平臺(tái)的遠(yuǎn)程數(shù)據(jù)采集與終端數(shù)據(jù)分析軟件,提高裝載機(jī)試驗(yàn)數(shù)據(jù)采集的精準(zhǔn)性和靈活性,方便試驗(yàn)人員的操作以及不同試驗(yàn)項(xiàng)目的資源優(yōu)化配置。并以此為契機(jī),將其應(yīng)用于工程機(jī)械領(lǐng)域其他工程機(jī)械設(shè)備。所設(shè)計(jì)的數(shù)據(jù)采集與診斷分析軟件具有如下特點(diǎn):
(1)通過WiFi接收下位機(jī)上傳的數(shù)據(jù),最大支持16通道數(shù)據(jù)采集,可實(shí)現(xiàn)壓力、溫度、流量等多種類型數(shù)據(jù)的采集與分析,各通道的工作參數(shù)可獨(dú)立配置;
(2)能以波形及文本的方式實(shí)現(xiàn)采集結(jié)果的基本數(shù)據(jù)分析;
(3)采用文本文件格式實(shí)現(xiàn)采集結(jié)果的數(shù)據(jù)存儲(chǔ)。
本文設(shè)計(jì)的Android應(yīng)用程序主要實(shí)現(xiàn)兩個(gè)功能:實(shí)時(shí)數(shù)據(jù)顯示和回放數(shù)據(jù)顯示,具體由8個(gè)功能子模塊來實(shí)現(xiàn)。其中有5個(gè)界面顯示模塊:服務(wù)器IP地址設(shè)定模塊、實(shí)時(shí)數(shù)據(jù)顯示模塊、系統(tǒng)配置文件修改模塊、選擇回放文件模塊和回放數(shù)據(jù)顯示模塊。3個(gè)后臺(tái)服務(wù)模塊:WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊、數(shù)據(jù)保存與數(shù)據(jù)加載模塊和本地文件操作模塊。
軟件總體架構(gòu)以及各個(gè)子模塊之間的關(guān)聯(lián)如圖1所示。
本設(shè)計(jì)的界面顯示功能子模塊是基于模型-視圖-控
制器(Model-View-Controller,MVC)的架構(gòu)模式進(jìn)行設(shè)計(jì)。模型層工作在后臺(tái),存儲(chǔ)著該應(yīng)用的基本數(shù)據(jù);控制層在模型層與視圖層之間運(yùn)轉(zhuǎn),是視圖與模型對(duì)象的聯(lián)系紐帶,管理著模型層與視圖層之間的數(shù)據(jù)傳遞,同時(shí)還被設(shè)計(jì)為響應(yīng)由視圖層觸發(fā)的各種事件。視圖層工作在前臺(tái),提供人機(jī)交互、管理屏幕上顯示視圖的繪制以及響應(yīng)用戶的輸入等[4]。
下面對(duì)各個(gè)界面顯示功能子模塊的MVC架構(gòu)和各個(gè)后臺(tái)服務(wù)功能子模塊的框架進(jìn)行詳細(xì)說明。
2.1 服務(wù)器IP地址設(shè)定模塊
服務(wù)器IP地址設(shè)定模塊的MVC架構(gòu)如圖2所示。該界面是所有界面中最簡(jiǎn)單的一個(gè)界面,只包含一個(gè)Activity的子類LoginActivity。因?yàn)樵撃K較為簡(jiǎn)單,固不需要模型層。LoginActivity作為控制層,布局文件中的控件TextView、EditText和Button作為視圖層。
圖2 服務(wù)器IP地址設(shè)定模塊的MVC架構(gòu)
2.2 實(shí)時(shí)數(shù)據(jù)顯示模塊
實(shí)時(shí)數(shù)據(jù)顯示模塊的MVC架構(gòu)如圖3所示。該模塊是所有功能子模塊中最為復(fù)雜的一個(gè)。
模型層包含兩個(gè)自定義類,一個(gè)是DateCh類, 其為接收數(shù)據(jù)的模型類;另一個(gè)是SysCh類,其為系統(tǒng)配置文件的模型類。
控制層包含兩個(gè)類,一個(gè)是Activity的子類MainActivity,另一個(gè)是Fragment的子類MainFragment。這時(shí)的控制層引入Fragment進(jìn)行應(yīng)用的UI管理,是為了繞開Android系統(tǒng)對(duì)Activity的規(guī)則限制。
2.3 系統(tǒng)配置文件修改模塊
系統(tǒng)配置文件修改模塊的MVC架構(gòu)如圖4所示。該模塊主要實(shí)現(xiàn)查看和修改系統(tǒng)配置文件的功能。系統(tǒng)配置文件主要用于采集終端16個(gè)通道所對(duì)應(yīng)的配置信息。
2.4 選擇回放文件模塊
圖4 系統(tǒng)配置文件修改模塊的MVC架構(gòu)
圖5 選擇回放文件模塊的MVC架構(gòu)
圖6 回放數(shù)據(jù)顯示模塊的MVC架構(gòu)圖
選擇回放文件模塊的MVC架構(gòu)如圖5所示。該模塊主要實(shí)現(xiàn)查看回放文件的目錄和選擇回放文件的功能。數(shù)據(jù)文件保存在分級(jí)式目錄,不同時(shí)間段接收的數(shù)據(jù)分別存在不同的文件夾中,文件夾名稱為最后一個(gè)數(shù)據(jù)接收的時(shí)間。每個(gè)文件夾中16個(gè)通道采集的數(shù)據(jù)也分成各自的文本保存。
選擇回放文件模塊包含兩個(gè)Activity的子類SelectFloderActivity類和SelectFileActivity類。兩個(gè)類各自負(fù)責(zé)一個(gè)用戶界面。
2.5 回放數(shù)據(jù)顯示模塊
回放數(shù)據(jù)顯示模塊的MVC架構(gòu)如圖6所示。該模塊主要實(shí)現(xiàn)回放接收數(shù)據(jù),以波形的方式顯示出來,并能通過觸控的方式縮放平移圖形。
2.6 數(shù)據(jù)保存和數(shù)據(jù)加載模塊
數(shù)據(jù)保存與數(shù)據(jù)加載模塊的框架如圖7所示。本模塊服務(wù)于接收數(shù)據(jù)的保存和系統(tǒng)配置文件信息的保存加載。數(shù)據(jù)保存的格式是JSON(JavaScript Object Notation)格式,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,不僅易于機(jī)器解析和生成,而且在網(wǎng)絡(luò)中的傳輸速度快,同時(shí)也易于閱讀和編寫。JSON格式是如今比較流行的一種數(shù)據(jù)交換格式。
圖7 數(shù)據(jù)保存與數(shù)據(jù)加載模塊的框架圖
數(shù)據(jù)保存與數(shù)據(jù)加載模塊的底層庫使用Android SDK內(nèi)置的標(biāo)準(zhǔn)org.json類包、java.io類包和android.text.format.Time類。java.io類包可以用來通過數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。org.json類包可以用來創(chuàng)建和解析JSON文件。android.text.format.Time類可以提供以秒為精確度的時(shí)間。
2.7 WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊
WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊的框架如圖8所示。本模塊用于連接遠(yuǎn)程WiFi從下位機(jī)接收采集數(shù)據(jù),并校驗(yàn)數(shù)據(jù)。
WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊的底層庫使用Android SDK內(nèi)置的標(biāo)準(zhǔn)java.io類包和java.net.Socket類包。java.io類包可以用來通過數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。java.net.Socket類包提供了客戶端TCP的套接字。
圖8 WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊的框架圖
2.8 本地文件操作模塊
本地文件操作模塊的框架如圖9所示。本模塊主要實(shí)現(xiàn)讀取文件目錄的功能。
本地文件操作模塊的底層庫使用Android SDK內(nèi)置的標(biāo)準(zhǔn)java.io.File類包和android.os.Environment類包。java.io.File類包提供了文件讀寫的功能,android.os.Environment類包提供了訪問外部環(huán)境變量的功能。
圖9 本地文件操作模塊的框架圖
(1)服務(wù)器IP地址設(shè)定界面
打開軟件,首先出現(xiàn)的用戶界面是服務(wù)器IP地址設(shè)定界面,輸入正確的服務(wù)器IP地址和相應(yīng)的端口號(hào)后,點(diǎn)擊連接按鈕,跳轉(zhuǎn)到實(shí)時(shí)數(shù)據(jù)顯示界面,否則點(diǎn)擊退出按鈕,退出軟件。
圖10 實(shí)時(shí)數(shù)據(jù)顯示界面
(2)實(shí)時(shí)數(shù)據(jù)顯示界面
實(shí)時(shí)數(shù)據(jù)顯示界面如圖10,需要多個(gè)后臺(tái)服務(wù)模塊支持。其中包括需要WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊通過WiFi網(wǎng)絡(luò)連接上采集終端服務(wù)器,接收該終端采集的數(shù)據(jù);需要通信協(xié)議服務(wù)模塊通過雙方約定的通信協(xié)議校驗(yàn)接收數(shù)據(jù)的正確性;需要數(shù)據(jù)保存與數(shù)據(jù)加載模塊從本地加載系統(tǒng)配置文件并對(duì)接收的數(shù)據(jù)進(jìn)行配置;需要數(shù)據(jù)保存與數(shù)據(jù)加載模塊將數(shù)據(jù)保存在本地的外部SD卡文件中;最后需要本模塊中的圖形顯示功能將數(shù)據(jù)以多種形式顯示出來。在實(shí)時(shí)數(shù)據(jù)顯示界面中,也可以選擇進(jìn)入系統(tǒng)配置文件修改界面和選擇回放文件界面,或者退出軟件。
(3)系統(tǒng)配置文件修改界面
系統(tǒng)配置文件修改界面如圖11。數(shù)據(jù)保存與數(shù)據(jù)加載模塊將系統(tǒng)配置文件加載出來,然后即可進(jìn)行手動(dòng)修改。點(diǎn)擊保存按鈕,通過數(shù)據(jù)保存與數(shù)據(jù)加載模塊用修改后的系統(tǒng)配置文件覆蓋原本的系統(tǒng)配置文件并保存到本地文件中。點(diǎn)擊返回按鈕,回到實(shí)時(shí)數(shù)據(jù)顯示界面。
圖11 系統(tǒng)配置文件修改界面
(4)選擇回放文件界面
選擇回放文件界面如圖12。本地文件操作模塊將采集數(shù)據(jù)保存的文件目錄讀取出來,并以列表的形式進(jìn)行顯示,點(diǎn)擊列表項(xiàng)進(jìn)入回放數(shù)據(jù)顯示模塊,或者點(diǎn)擊返回,回到實(shí)時(shí)數(shù)據(jù)顯示界面。
圖12 選擇回放文件界面
(5)回放數(shù)據(jù)顯示界面
回放數(shù)據(jù)顯示界面如圖13。數(shù)據(jù)保存與數(shù)據(jù)加載模塊將采集數(shù)據(jù)從本地文件加載出來,以圖形的形式進(jìn)行顯
圖13 回放數(shù)據(jù)顯示界面
示,并且可以通過觸控方式更詳細(xì)地查看采集的數(shù)據(jù)。點(diǎn)擊返回,回到選擇回放文件界面。
本軟件設(shè)計(jì)基于Android系統(tǒng),實(shí)現(xiàn)了通過連接遠(yuǎn)程WiFi,接收下位機(jī)采集的工程機(jī)械設(shè)備工作狀態(tài)數(shù)據(jù),并將數(shù)據(jù)以圖形、文本等多種形式顯示在用戶界面,用戶可以通過該軟件遠(yuǎn)程控制工程機(jī)械設(shè)備的啟動(dòng)和停止,接收的數(shù)據(jù)也可以保存于本地方便以后回放,還可以保存在SD卡上,方便拷貝到其他終端進(jìn)行查看。本軟件目前已應(yīng)用于大型工程機(jī)械設(shè)備實(shí)時(shí)監(jiān)控系統(tǒng)中,運(yùn)行狀態(tài)良好,未出現(xiàn)明顯漏洞和問題。
[1] 董拴牢, 劉漢光, 陸永能,等. 數(shù)據(jù)采集分析系統(tǒng)在裝載機(jī)壓力測(cè)試中的應(yīng)用[J]. 工程機(jī)械,2006,37(10):60-62.
[2] ZHOU Q, SUN J. Study on an intelligent monitoring application system of construction machinery[C]. Second International Symposium on Knowledge Acquisition & Modeling, 2009:249-252.
[3] 耿東久, 索岳, 陳渝,等. 基于Android手機(jī)的遠(yuǎn)程訪問和控制系統(tǒng)[J]. 計(jì)算機(jī)應(yīng)用, 2011, 31(2):559-561.
[4] 文松, 王太勇, 張慶華,等. 一種多通道高速數(shù)據(jù)采集與實(shí)時(shí)分析系統(tǒng)的研究[C].全國(guó)振動(dòng)技術(shù)及工程應(yīng)用學(xué)術(shù)會(huì)議, 2000:2-3.
Design of portable data acquisition and analysis software based on Android
Zheng Jiaming, Su Kaixiong
(College of Physics and Information Engineering,Fuzhou University,Fuzhou 350002,China)
In view of the trend of large-scale intelligent construction machinery equipment, combining with the demand situation of modern large-scale construction machinery equipment, the portable data acquisition and analysis terminal for engineering machinery based on the Android system was designed. It could receive inferior machine data via WiFi.The graphical and text results could be displayed in the terminal. In addition, the results could be saved in local SD card. The design aimed to present a novel solution for portable data acquisition terminal and data analysis software in the field of construction machinery.
engineering machinery; portable; Android; data analysis acquisition
TP316
A
10.19358/j.issn.1674- 7720.2017.03.029
鄭嘉明,蘇凱雄.基于Android手持?jǐn)?shù)據(jù)采集分析軟件的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(3):99-102.
2016-10-13)
鄭嘉明(1993-),男,碩士研究生,主要研究方向:安卓嵌入式系統(tǒng)。
蘇凱雄(1959-),男,教授,主要研究方向:通信與信息系統(tǒng)。