朱光藝 姜宏
【摘要】本文將Android平臺與電梯檢測相結合,實現(xiàn)了在電梯檢測現(xiàn)場進行數(shù)據(jù)錄入、編輯及傳輸功能;實現(xiàn)了Android手機對檢測數(shù)據(jù)進行處理,完成數(shù)據(jù)的增刪改查及發(fā)送操作功能;利用手機終端中無線網(wǎng)絡發(fā)送功能,分別開發(fā)并實現(xiàn)通過無線、有線及藍牙等方式將電梯檢測數(shù)據(jù)發(fā)送至服務器端的功能,提高了電梯檢測的效率。
【關鍵詞】數(shù)據(jù)處理;無線網(wǎng)絡;電梯檢測;安卓
0引言
隨著城市發(fā)展,截至2011年底,全國在用電梯總數(shù)達到201萬臺,并以每年20%左右的速度增長,目前我國電梯保有量、年產(chǎn)量、年增長量均列世界第一[1]。與此同時,龐大的電梯數(shù)量必然造成電梯安全檢測工作量的大幅增加。目前,很多電梯安全檢測工作仍在使用手工抄錄的方式完成數(shù)據(jù)錄入和處理,這使得數(shù)據(jù)易丟失,數(shù)據(jù)傳送不及時,造成電梯不能及時維修,對使用者人身安全造成了巨大的威脅。面對電梯檢測領域內(nèi)檢測數(shù)據(jù)量大,數(shù)據(jù)處理效率低這一突出問題,運用移動通訊技術開發(fā)專用的數(shù)據(jù)處理系統(tǒng)十分必要。
1系統(tǒng)構成及運行環(huán)境
根據(jù)國家《電梯監(jiān)督檢驗和定期檢驗規(guī)則》[2]等標準,在對電梯檢測部門需求分析的基礎上,電梯檢測數(shù)據(jù)處理系統(tǒng)以Android為平臺,使用SQLite數(shù)據(jù)庫,分別運用xml和java語言完成系統(tǒng)界面和數(shù)據(jù)處理功能的實現(xiàn)。本系統(tǒng)設計并開發(fā)了數(shù)據(jù)存儲模塊、數(shù)據(jù)編輯模塊和數(shù)據(jù)傳輸模塊。
考慮到電梯檢測現(xiàn)場對數(shù)據(jù)傳輸?shù)囊?,分別開發(fā)了遠程無線網(wǎng)絡傳輸模式、近距離藍牙傳輸模式以及USB傳輸模式。系統(tǒng)結構如圖1所示:
圖1電梯檢測系統(tǒng)架構
2相關開發(fā)技術
2.1Android
Android[3]一詞本義指“機器人”,是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要適用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。
Android的系統(tǒng)架構和其他操作系統(tǒng)一樣,采用了分層的架構,Android分為4層,從高層到低層分別是應用程序?qū)印贸绦蚣軜媽?、系統(tǒng)運行庫層和Linux內(nèi)核層[4]。
2.2SQLite 數(shù)據(jù)庫
SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設計目標是嵌入式的,占用資源非常的低,在嵌入式設備中,可能只需要幾百k的內(nèi)存。該數(shù)據(jù)庫能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),具有ODBC接口,同時能夠跟C#、PHP、Java等很多程序語言相結合,與Mysql、PostgreSQL這兩款開源數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度更快。
3功能模塊設計與實現(xiàn)[5-8]
電梯檢測數(shù)據(jù)處理系統(tǒng),利用Android技術,在MyEclipse軟件平臺上開發(fā),本系統(tǒng)所開發(fā)的主要功能模塊有:用戶注冊模塊、系統(tǒng)查詢模塊、系統(tǒng)檢測數(shù)據(jù)處理模塊和信息發(fā)送模塊。
3.1用戶界面模塊
用戶界面作為系統(tǒng)體現(xiàn)友好的人機交互接口,本系統(tǒng)使用了JSP頁面來實現(xiàn),其用戶界面包括:主界面、功能界面、用戶信息管理界面等。
3.2登錄注冊模塊
用戶登入系統(tǒng)后,首先對用戶是否首次登錄判斷,根據(jù)結果對應完成注冊操作和使用用戶名及密碼登錄操作。本系統(tǒng)可以通過用戶名將密碼查詢出來與輸入的密碼相匹配,密碼區(qū)分大小寫。
3.2.1模塊開發(fā)
考慮到系統(tǒng)的安全性,首先要求輸入密碼兩次,并將兩次輸入的密碼相比較,看是否一致;其次驗證信息,輸入身份證號的后6位,以保證密碼丟失時找回密碼,也提高了密碼的安全性。通過用戶輸入的數(shù)據(jù)將信息插入到SQLite數(shù)據(jù)庫中。如果非首次登錄已注冊過用戶,根據(jù)用戶注冊時設定好的用戶名及密碼進行登錄。
3.2.2模塊應用
系統(tǒng)注冊模塊主要是將初次登入系統(tǒng)的用戶信息保存在數(shù)據(jù)庫中,方便對各用戶的管理。系統(tǒng)登錄模塊是通過調(diào)用用戶注冊過程中保存在數(shù)據(jù)庫中的用戶名和密碼,通過與輸入信息的比對來完成后續(xù)操作,合法用戶會允許登錄,非法用戶將被攔截。
3.3系統(tǒng)查詢模塊
需先選擇需要查詢的檢測日期及設備注冊碼,若有該信息,則會顯示出已保存的表,若沒有,則會提示沒有記錄。
3.3.1模塊開發(fā)
電梯檢測數(shù)據(jù)處理系統(tǒng)查詢模塊的定義和頁面布局方法如下所示:
android:id="@+id/query_datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> android:layout_height="wrap_content" android:layout_width="fill_parent" android:stretchColumns="1" android:layout_marginTop="10sp" > 3.3.2模塊的應用 查詢模塊在系統(tǒng)中主要運用于數(shù)據(jù)庫中信息的搜尋。 3.4系統(tǒng)檢測數(shù)據(jù)處理模塊 系統(tǒng)檢測數(shù)據(jù)處理模塊作為系統(tǒng)性能檢測數(shù)據(jù)的處理核心,在整個設計過程中決定性的作用。 3.4.1模塊開發(fā) 系統(tǒng)檢測數(shù)據(jù)處理模塊主要對測試獲取的數(shù)據(jù)進行處理,然后根據(jù)檢測的要求生成一個完整的電梯檢測報告,報告的內(nèi)容包括制造單位、用戶設備編號等信息。在不同的處理界面可以完成編輯、重置、退出、發(fā)送等操作,如圖2所示。 3.4.2模塊的應用 系統(tǒng)檢測模塊設計過程 3.5信息發(fā)送模塊 信息發(fā)送過程中主要通過三種形式實現(xiàn):①無線發(fā)送;②藍牙發(fā)送;③有線發(fā)送。 3.5.1模塊的開發(fā) (1)無線發(fā)送 先判斷網(wǎng)絡是否連接,若無連接,調(diào)用系統(tǒng)網(wǎng)絡連接界面,連接網(wǎng)絡,網(wǎng)絡連接上后將文件發(fā)送給服務器。 (a)檢測報告(b)檢測詳情 圖2系統(tǒng)檢測頁面 NetworkInfo network=conManager.getActiveNetworkInfo();//判斷是否有網(wǎng)絡資源 bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();//判斷網(wǎng)絡是否已開啟 intent=new Intent(Settings.ACTION_WIRELESS_SETTINGS); //調(diào)用系統(tǒng)開啟網(wǎng)絡界面 Socket socket = new Socket(InetAddress.getByName(url.getHost()), port); //連接服務器端 OutputStream outStream = socket.getOutputStream();//發(fā)送文件 byte[] buffer = new byte[1024]; int len = 0; while ((len = uploadFile.getInStream().read(buffer, 0, 1024)) != -1) {outStream.write(buffer, 0, len); } (2)藍牙發(fā)送 先判斷藍牙是否開啟,開啟藍牙后彈出是否將藍牙可視的窗口,進入文件選擇界面,點擊要發(fā)送的藍牙設備,完成文件發(fā)送。
bluetoothAdapter=BluetoothAdapter.getDefaultAdapter();//判斷是否有藍牙設備
bluetoothAdapter.isEnabled()//判斷藍牙是否開啟
Intent disconverableIntent=New Intent (BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); //開啟藍牙是否可見
startActivity(disconverableIntent);
intent.setAction(Intent.ACTION_SEND); //進入文件發(fā)送界面
intent.setClassName("com.android.bluetooth"
"com.android.bluetooth.opp.BluetoothOppLauncherActivity");
startActivity(intent);
(3)有線發(fā)送
有線發(fā)送即將數(shù)據(jù)保存至sdcard中指定文件中,通過USB方式將數(shù)據(jù)輸入服務器端。
//saveFilePath:保存文件的路徑
File dir_name = new File(saveFilePath);
//判斷路徑是否存在,若不存在,新建文件夾路徑
if(!dir_name.getParentFile().exists())
{dir_name.getParentFile().mkdirs();}
dir_name.createNewFile();//在指定的文件夾中創(chuàng)建文件
fw = new FileWriter(saveFilePath, true); // 創(chuàng)建FileWriter對象,用來寫入字符流
bw = new BufferedWriter(fw); // 緩沖對文件的輸出
//content:存儲文件的數(shù)據(jù);將數(shù)據(jù)寫入到指定的文件中
bw.write(content);
3.5.2模塊的應用
信息發(fā)送模塊的設計如圖3所示:
(a)發(fā)送方式 (b)設備選擇
圖3信息發(fā)送模塊
4結論
隨著社會需求的不斷提高,傳統(tǒng)電梯檢測數(shù)據(jù)處理方式已經(jīng)不適應用戶的要求。將移動通訊技術和智能終端設備應用到電梯檢測數(shù)據(jù)處理工作中,能夠有效地解決電梯數(shù)量爆發(fā)式增長與低效檢測工作之間的矛盾。
因此,基于Android的電梯檢測數(shù)據(jù)處理系統(tǒng)具有非常現(xiàn)實的經(jīng)濟和社會意義,本系統(tǒng)的開發(fā)和應用對于專業(yè)檢測部門開展移動便攜式檢測具有重要的參考價值。
【參考文獻】
[1]http://news.cnwest.com/content/2013-03/06/content_8642156.htm[OL].
[2]中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局. TSGT7001-2009.中國特種設備檢測研究院.北京:中國標準出版社,2009.
[3]王世江(改編),佘志龍(作者),陳昱勛(作者),等. Google Android SDK開發(fā)范例大全.3版[M].北京:人民郵電出版社,2011.
[4]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011-6-22.
[5]周治國.基于Java的E-mail系統(tǒng)客戶端的設計與實現(xiàn)[J].2004(22):169-172. [6]張孝祥.Java郵件開發(fā)詳解[M].北京:電子工業(yè)出版社,2007.
[7]王路群.Java高級程序設計[M].北京:中國水利水電出版社,2006.
[8]Lin Chuang,Tian Yuan,Yao Min.Green network and green evaluation:Mechanism,modeling and evaluation[J]. Chinese Journal of Computers,2011,34(4):596-622.
[責任編輯:曹明明]