鄭嘉明,蘇凱雄
(福州大學(xué) 物理和信息工程學(xué)院,,福建 福州 350002)
摘要:針對大型工程機(jī)械設(shè)備智能化的趨勢,,緊密結(jié)合現(xiàn)代化大型工程機(jī)械設(shè)備的需求現(xiàn)狀,基于Android系統(tǒng)設(shè)計(jì)了一套工程機(jī)械手持數(shù)據(jù)采集分析軟件,。通過WiFi接收下位機(jī)采集的數(shù)據(jù),,在Android終端以圖形文本等多種形式顯示數(shù)據(jù)并將數(shù)據(jù)保存在本地。該設(shè)計(jì)旨在為手持式,、便攜式的工程數(shù)據(jù)采集終端與數(shù)據(jù)分析軟件的開發(fā)提出一種新的解決方案,。
關(guān)鍵詞:工程機(jī)械;手持式,;Android,;數(shù)據(jù)采集
中圖分類號:TP316文獻(xiàn)標(biāo)識碼:ADOI: 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.
0引言
傳統(tǒng)工程機(jī)械工作狀態(tài)監(jiān)控系統(tǒng),,具有體積龐大,、價(jià)格昂貴、攜帶不易,、操作困難和難以勝任野外惡劣工作場合的特點(diǎn),。因此隨著當(dāng)前科學(xué)技術(shù)的飛速發(fā)展,緊跟當(dāng)前電子技術(shù)發(fā)展的形勢,,開發(fā)低成本,、高性能的手持便攜式工程機(jī)械數(shù)據(jù)采集與分析系統(tǒng)具有重要的意義。本文旨在為手持式,、便攜式的工程數(shù)據(jù)采集與終端顯示分析軟件的設(shè)計(jì)提供一種新的解決方案[1],。
本文緊密結(jié)合現(xiàn)代化的大型工程機(jī)械設(shè)備的需求現(xiàn)狀,以裝載機(jī)為研究對象,,采用模塊化和模型視圖控制器(ModelViewController,,MVC)的設(shè)計(jì)思想[2],設(shè)計(jì)了基于Android平臺的工程機(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ù)的接收,、分析,、處理和存儲,并以多種圖形形式將數(shù)據(jù)呈現(xiàn)給用戶,。并充分將維護(hù)人員的移動終端作為維護(hù)工具,,不僅操作簡單、易于攜帶而且降低了成本,。
1軟件的總體設(shè)計(jì)
本文以裝載機(jī)為研究對象,,設(shè)計(jì)出一套基于Android系統(tǒng)平臺的遠(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ù)存儲,。
本文設(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è)后臺服務(wù)模塊:WiFi網(wǎng)絡(luò)數(shù)據(jù)接收模塊,、數(shù)據(jù)保存與數(shù)據(jù)加載模塊和本地文件操作模塊。
軟件總體架構(gòu)以及各個(gè)子模塊之間的關(guān)聯(lián)如圖1所示,。
2軟件功能子模塊的設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)的界面顯示功能子模塊是基于模型視圖控圖3實(shí)時(shí)數(shù)據(jù)顯示模塊的MVC架構(gòu)制器(ModelViewController,,MVC)的架構(gòu)模式進(jìn)行設(shè)計(jì)。模型層工作在后臺,存儲著該應(yīng)用的基本數(shù)據(jù),;控制層在模型層與視圖層之間運(yùn)轉(zhuǎn),,是視圖與模型對象的聯(lián)系紐帶,管理著模型層與視圖層之間的數(shù)據(jù)傳遞,,同時(shí)還被設(shè)計(jì)為響應(yīng)由視圖層觸發(fā)的各種事件,。視圖層工作在前臺,提供人機(jī)交互,、管理屏幕上顯示視圖的繪制以及響應(yīng)用戶的輸入等[4],。
下面對各個(gè)界面顯示功能子模塊的MVC架構(gòu)和各個(gè)后臺服務(wù)功能子模塊的框架進(jìn)行詳細(xì)說明。
2.1服務(wù)器IP地址設(shè)定模塊
服務(wù)器IP地址設(shè)定模塊的MVC架構(gòu)如圖2所示,。該界面是所有界面中最簡單的一個(gè)界面,,只包含一個(gè)Activity的子類LoginActivity。因?yàn)樵撃K較為簡單,,固不需要模型層,。LoginActivity作為控制層,布局文件中的控件TextView,、EditText和Button作為視圖層,。
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)對Activity的規(guī)則限制,。
2.3系統(tǒng)配置文件修改模塊
系統(tǒng)配置文件修改模塊的MVC架構(gòu)如圖4所示。該模塊主要實(shí)現(xiàn)查看和修改系統(tǒng)配置文件的功能,。系統(tǒng)配置文件主要用于采集終端16個(gè)通道所對應(yīng)的配置信息,。
2.4選擇回放文件模塊
選擇回放文件模塊的MVC架構(gòu)如圖5所示。該模塊主要實(shí)現(xiàn)查看回放文件的目錄和選擇回放文件的功能,。數(shù)據(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是一種輕量級的數(shù)據(jù)交換格式,,不僅易于機(jī)器解析和生成,而且在網(wǎng)絡(luò)中的傳輸速度快,,同時(shí)也易于閱讀和編寫,。JSON格式是如今比較流行的一種數(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.7WiFi網(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的套接字,。
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)境變量的功能,。
3設(shè)計(jì)界面與測試結(jié)果
(1)服務(wù)器IP地址設(shè)定界面
打開軟件,,首先出現(xiàn)的用戶界面是服務(wù)器IP地址設(shè)定界面,輸入正確的服務(wù)器IP地址和相應(yīng)的端口號后,,點(diǎn)擊連接按鈕,,跳轉(zhuǎn)到實(shí)時(shí)數(shù)據(jù)顯示界面,否則點(diǎn)擊退出按鈕,,退出軟件,。
(2)實(shí)時(shí)數(shù)據(jù)顯示界面
實(shí)時(shí)數(shù)據(jù)顯示界面如圖10,需要多個(gè)后臺服務(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)配置文件并對接收的數(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)行手動修改。點(diǎn)擊保存按鈕,,通過數(shù)據(jù)保存與數(shù)據(jù)加載模塊用修改后的系統(tǒng)配置文件覆蓋原本的系統(tǒng)配置文件并保存到本地文件中,。點(diǎn)擊返回按鈕,回到實(shí)時(shí)數(shù)據(jù)顯示界面,。
(4)選擇回放文件界面
選擇回放文件界面如圖12,。本地文件操作模塊將采集數(shù)據(jù)保存的文件目錄讀取出來,并以列表的形式進(jìn)行顯示,,點(diǎn)擊列表項(xiàng)進(jìn)入回放數(shù)據(jù)顯示模塊,,或者點(diǎn)擊返回,回到實(shí)時(shí)數(shù)據(jù)顯示界面,。
(5)回放數(shù)據(jù)顯示界面
回放數(shù)據(jù)顯示界面如圖13,。數(shù)據(jù)保存與數(shù)據(jù)加載模塊將采集數(shù)據(jù)從本地文件加載出來,以圖形的形式進(jìn)行顯示,,并且可以通過觸控方式更詳細(xì)地查看采集的數(shù)據(jù),。點(diǎn)擊返回,回到選擇回放文件界面,。
4結(jié)論
本軟件設(shè)計(jì)基于Android系統(tǒng),,實(shí)現(xiàn)了通過連接遠(yuǎn)程WiFi,接收下位機(jī)采集的工程機(jī)械設(shè)備工作狀態(tài)數(shù)據(jù),,并將數(shù)據(jù)以圖形,、文本等多種形式顯示在用戶界面,用戶可以通過該軟件遠(yuǎn)程控制工程機(jī)械設(shè)備的啟動和停止,,接收的數(shù)據(jù)也可以保存于本地方便以后回放,,還可以保存在SD卡上,方便拷貝到其他終端進(jìn)行查看,。本軟件目前已應(yīng)用于大型工程機(jī)械設(shè)備實(shí)時(shí)監(jiān)控系統(tǒng)中,,運(yùn)行狀態(tài)良好,,未出現(xiàn)明顯漏洞和問題。
參考文獻(xiàn)
?。?] 董拴牢, 劉漢光, 陸永能,,等. 數(shù)據(jù)采集分析系統(tǒng)在裝載機(jī)壓力測試中的應(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.
?。?] 耿東久, 索岳, 陳渝,等. 基于Android手機(jī)的遠(yuǎn)程訪問和控制系統(tǒng)[J]. 計(jì)算機(jī)應(yīng)用, 2011, 31(2):559-561.
?。?] 文松, 王太勇, 張慶華,等. 一種多通道高速數(shù)據(jù)采集與實(shí)時(shí)分析系統(tǒng)的研究[C].全國振動技術(shù)及工程應(yīng)用學(xué)術(shù)會議, 2000:2-3.