鄭嘉明,蘇凱雄
(福州大學 物理和信息工程學院,福建 福州 350002)
摘要:針對大型工程機械設備智能化的趨勢,緊密結合現代化大型工程機械設備的需求現狀,基于Android系統設計了一套工程機械手持數據采集分析軟件。通過WiFi接收下位機采集的數據,在Android終端以圖形文本等多種形式顯示數據并將數據保存在本地。該設計旨在為手持式、便攜式的工程數據采集終端與數據分析軟件的開發提出一種新的解決方案。
關鍵詞:工程機械;手持式;Android;數據采集
中圖分類號:TP316文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.03.029
引用格式:鄭嘉明,蘇凱雄.基于Android手持數據采集分析軟件的設計[J].微型機與應用,2017,36(3):99-102.
0引言
傳統工程機械工作狀態監控系統,具有體積龐大、價格昂貴、攜帶不易、操作困難和難以勝任野外惡劣工作場合的特點。因此隨著當前科學技術的飛速發展,緊跟當前電子技術發展的形勢,開發低成本、高性能的手持便攜式工程機械數據采集與分析系統具有重要的意義。本文旨在為手持式、便攜式的工程數據采集與終端顯示分析軟件的設計提供一種新的解決方案[1]。
本文緊密結合現代化的大型工程機械設備的需求現狀,以裝載機為研究對象,采用模塊化和模型視圖控制器(ModelViewController,MVC)的設計思想[2],設計了基于Android平臺的工程機械手持數據采集分析軟件,采用WiFi技術將工程機械的運行狀態參數發送到Android手機或者Android平板電腦上,在Android系統上開發一套應用程序將這些信息以文本或者圖形的方式呈現給工程機械設備的維護人員。相比于傳統的手段,以往的數據采集終端因受系統軟件的條件限制,無法實現強大的數據分析處理功能和強大的圖形處理功能,本文基于Android系統提供的強大的數據處理能力和圖形顯示能力[3],實現遠程數據的接收、分析、處理和存儲,并以多種圖形形式將數據呈現給用戶。并充分將維護人員的移動終端作為維護工具,不僅操作簡單、易于攜帶而且降低了成本。
1軟件的總體設計
本文以裝載機為研究對象,設計出一套基于Android系統平臺的遠程數據采集與終端數據分析軟件,提高裝載機試驗數據采集的精準性和靈活性,方便試驗人員的操作以及不同試驗項目的資源優化配置。并以此為契機,將其應用于工程機械領域其他工程機械設備。所設計的數據采集與診斷分析軟件具有如下特點:
(1)通過WiFi接收下位機上傳的數據,最大支持16通道數據采集,可實現壓力、溫度、流量等多種類型數據的采集與分析,各通道的工作參數可獨立配置;
(2)能以波形及文本的方式實現采集結果的基本數據分析;
(3)采用文本文件格式實現采集結果的數據存儲。
本文設計的Android應用程序主要實現兩個功能:實時數據顯示和回放數據顯示,具體由8個功能子模塊來實現。其中有5個界面顯示模塊:服務器IP地址設定模塊、實時數據顯示模塊、系統配置文件修改模塊、選擇回放文件模塊和回放數據顯示模塊。3個后臺服務模塊:WiFi網絡數據接收模塊、數據保存與數據加載模塊和本地文件操作模塊。
軟件總體架構以及各個子模塊之間的關聯如圖1所示。
2軟件功能子模塊的設計與實現
本設計的界面顯示功能子模塊是基于模型視圖控圖3實時數據顯示模塊的MVC架構制器(ModelViewController,MVC)的架構模式進行設計。模型層工作在后臺,存儲著該應用的基本數據;控制層在模型層與視圖層之間運轉,是視圖與模型對象的聯系紐帶,管理著模型層與視圖層之間的數據傳遞,同時還被設計為響應由視圖層觸發的各種事件。視圖層工作在前臺,提供人機交互、管理屏幕上顯示視圖的繪制以及響應用戶的輸入等[4]。
下面對各個界面顯示功能子模塊的MVC架構和各個后臺服務功能子模塊的框架進行詳細說明。
2.1服務器IP地址設定模塊
服務器IP地址設定模塊的MVC架構如圖2所示。該界面是所有界面中最簡單的一個界面,只包含一個Activity的子類LoginActivity。因為該模塊較為簡單,固不需要模型層。LoginActivity作為控制層,布局文件中的控件TextView、EditText和Button作為視圖層。
2.2實時數據顯示模塊
實時數據顯示模塊的MVC架構如圖3所示。該模塊是所有功能子模塊中最為復雜的一個。
模型層包含兩個自定義類,一個是DateCh類, 其為接收數據的模型類;另一個是SysCh類,其為系統配置文件的模型類。
控制層包含兩個類,一個是Activity的子類MainActivity,另一個是Fragment的子類MainFragment。這時的控制層引入Fragment進行應用的UI管理,是為了繞開Android系統對Activity的規則限制。
2.3系統配置文件修改模塊
系統配置文件修改模塊的MVC架構如圖4所示。該模塊主要實現查看和修改系統配置文件的功能。系統配置文件主要用于采集終端16個通道所對應的配置信息。
2.4選擇回放文件模塊
選擇回放文件模塊的MVC架構如圖5所示。該模塊主要實現查看回放文件的目錄和選擇回放文件的功能。數據文件保存在分級式目錄,不同時間段接收的數據分別存在不同的文件夾中,文件夾名稱為最后一個數據接收的時間。每個文件夾中16個通道采集的數據也分成各自的文本保存。
選擇回放文件模塊包含兩個Activity的子類SelectFloderActivity類和SelectFileActivity類。兩個類各自負責一個用戶界面。
2.5回放數據顯示模塊
回放數據顯示模塊的MVC架構如圖6所示。該模塊主要實現回放接收數據,以波形的方式顯示出來,并能通過觸控的方式縮放平移圖形。
2.6數據保存和數據加載模塊
數據保存與數據加載模塊的框架如圖7所示。本模塊服務于接收數據的保存和系統配置文件信息的保存加載。數據保存的格式是JSON(JavaScript Object Notation)格式,JSON是一種輕量級的數據交換格式,不僅易于機器解析和生成,而且在網絡中的傳輸速度快,同時也易于閱讀和編寫。JSON格式是如今比較流行的一種數據交換格式。
數據保存與數據加載模塊的底層庫使用Android SDK內置的標準org.json類包、java.io類包和android.text.format.Time類。java.io類包可以用來通過數據流、序列化和文件系統提供系統輸入和輸出。org.json類包可以用來創建和解析JSON文件。android.text.format.Time類可以提供以秒為精確度的時間。
2.7WiFi網絡數據接收模塊
WiFi網絡數據接收模塊的框架如圖8所示。本模塊用于連接遠程WiFi從下位機接收采集數據,并校驗數據。
WiFi網絡數據接收模塊的底層庫使用Android SDK內置的標準java.io類包和java.net.Socket類包。java.io類包可以用來通過數據流、序列化和文件系統提供系統輸入和輸出。java.net.Socket類包提供了客戶端TCP的套接字。
2.8本地文件操作模塊
本地文件操作模塊的框架如圖9所示。本模塊主要實現讀取文件目錄的功能。
本地文件操作模塊的底層庫使用Android SDK內置的標準java.io.File類包和android.os.Environment類包。java.io.File類包提供了文件讀寫的功能,android.os.Environment類包提供了訪問外部環境變量的功能。
3設計界面與測試結果
(1)服務器IP地址設定界面
打開軟件,首先出現的用戶界面是服務器IP地址設定界面,輸入正確的服務器IP地址和相應的端口號后,點擊連接按鈕,跳轉到實時數據顯示界面,否則點擊退出按鈕,退出軟件。
(2)實時數據顯示界面
實時數據顯示界面如圖10,需要多個后臺服務模塊支持。其中包括需要WiFi網絡數據接收模塊通過WiFi網絡連接上采集終端服務器,接收該終端采集的數據;需要通信協議服務模塊通過雙方約定的通信協議校驗接收數據的正確性;需要數據保存與數據加載模塊從本地加載系統配置文件并對接收的數據進行配置;需要數據保存與數據加載模塊將數據保存在本地的外部SD卡文件中;最后需要本模塊中的圖形顯示功能將數據以多種形式顯示出來。在實時數據顯示界面中,也可以選擇進入系統配置文件修改界面和選擇回放文件界面,或者退出軟件。
(3)系統配置文件修改界面
系統配置文件修改界面如圖11。數據保存與數據加載模塊將系統配置文件加載出來,然后即可進行手動修改。點擊保存按鈕,通過數據保存與數據加載模塊用修改后的系統配置文件覆蓋原本的系統配置文件并保存到本地文件中。點擊返回按鈕,回到實時數據顯示界面。
(4)選擇回放文件界面
選擇回放文件界面如圖12。本地文件操作模塊將采集數據保存的文件目錄讀取出來,并以列表的形式進行顯示,點擊列表項進入回放數據顯示模塊,或者點擊返回,回到實時數據顯示界面。
(5)回放數據顯示界面
回放數據顯示界面如圖13。數據保存與數據加載模塊將采集數據從本地文件加載出來,以圖形的形式進行顯示,并且可以通過觸控方式更詳細地查看采集的數據。點擊返回,回到選擇回放文件界面。
4結論
本軟件設計基于Android系統,實現了通過連接遠程WiFi,接收下位機采集的工程機械設備工作狀態數據,并將數據以圖形、文本等多種形式顯示在用戶界面,用戶可以通過該軟件遠程控制工程機械設備的啟動和停止,接收的數據也可以保存于本地方便以后回放,還可以保存在SD卡上,方便拷貝到其他終端進行查看。本軟件目前已應用于大型工程機械設備實時監控系統中,運行狀態良好,未出現明顯漏洞和問題。
參考文獻
[1] 董拴牢, 劉漢光, 陸永能,等. 數據采集分析系統在裝載機壓力測試中的應用[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]. 計算機應用, 2011, 31(2):559-561.
[4] 文松, 王太勇, 張慶華,等. 一種多通道高速數據采集與實時分析系統的研究[C].全國振動技術及工程應用學術會議, 2000:2-3.