樊新,高曙 來源:微型機與應用2012年第20期 隨著電子通信技術的不斷發展,特別是Android開發技術的迅猛發展,使移動終端不再僅僅是通信網絡終端,而是向著多功能、智能化方向發展,越來越多的移動終端具有了智能操作系統,終端和互聯網的無縫連接有著更加廣闊的發展空間。面對礦山安全檢查工作量大、費用高、檢測復雜且耗時長等現狀,本文提出了基于智能移動終端的安全檢查系統,它有效地解決了上述問題,同時提高了礦山安全檢查信息化水平。 目前隨著國家對采礦行業安全生產的重視,采礦行業把加強企業安全生產、安全管理作為其日常管理的重點。安全檢查是礦山安全管理中極其重要的組成部分,常用的方法是利用安全檢查表,發現和查明各種危險和隱患,監督各項安全規章制度的實施,及時發現并制止違章行為。由于這種檢查表可以事先編制并組織實施,自20世紀30年代開始應用以來已發展成為預測和預防事故發生的重要手段。礦業公司根據多年的經驗總結,設計了能全面反映礦山安全狀況的200多張檢查表,并分為以下4大類:H1-工種日常安全檢查表;H2-作業專項安全檢查表;H3-設備設施專項安全檢查表;H4-工藝專項安全檢查表。通過定期利用檢查表進行檢查,并對結果進行分析,能定性地對礦山安全進行綜合評價,確定其安全狀態。 安全檢查表有諸多優點,例如能夠事先編制,可以做到系統化、科學化,不漏掉任何可能導致事故的因素,為事故樹的繪制和分析做好準備;安全檢查表也可以與安全生產責任制相結合,按不同的檢查對象使用不同的安全檢查表,易于分清責任,還可以提出改進措施,并進行檢驗;它建立在原有的安全檢查基礎和安全系統工程之上,簡單易學,容易掌握,符合我國現階段的實際情況,為安全預測和決策提供堅實的基礎。盡管如此,由于安全檢查表數目繁多,為定性分析帶來了很多不便。目前使用安全檢查表的方式是攜帶紙質版檢查表到現場檢查,然后再將結果輸入到計算機中進行統計分析。這樣,一方面會大大增加檢查人員的負擔,使得安全檢查表的電子化管理難以深入,另一方面,對有問題的檢查項目也不能及時報警。 為此,本項目設計了基于智能移動終端的安全檢查系統,它使用手持終端設備,進行現場檢查,并及時將檢查結果上傳服務器數據庫,安全管理人員通過對檢查信息進行分析,能夠很好地對礦山安全進行綜合評估,確定其安全狀況。 1 Android平臺與系統設計思想 1.1 Android平臺架構介紹 Android是Google開發的基于Linux的開源手機開發平臺,它包括操作系統、用戶界面和應用程序,而且不存在任何以往阻礙移動產業創新的專有權障礙。Android平臺自底向上由以下四層組成:Linux內核層、運行時庫和其他庫層、應用框架層、應用程序層[1-2]。圖1所示為Android平臺架構圖。 1.2 系統設計思想 本系統運行在Android智能移動系統之上,采用B/S架構,實現與“安全信息管理與危險預警系統”(該系統是為某礦業公司開發的、集安全管理與預警為一體的信息系統)的無縫對接: (1)數據存儲方面:在移動終端設備上,選用嵌入式數據庫系統SQLite保存一個移動數據副本,以保證系統在移動終端上的常態離線工作,其結構設計與“安全信息管理與危險預警系統”的“安全檢查”模塊中數據庫設計基本相同(在此為區別,稱為服務器數據庫),從而保證了兩者之間數據共享; (2)在數據傳輸方面,采用Http Socket實現本系統與服務器端“安全信息管理與危險預警系統”的中心數據庫交互與同步。同時,由于JSON是一個輕量級的XML數據交換模式,其操作簡單、性能可靠,因此運用JSON技術組織數據,實現與服務器數據庫的傳輸,完成服務器端相關數據的實時更新; (3)在多移動終端同時提交數據時,服務器端采用線程池監聽各數據傳輸端口,只要有移動終端進行數據傳輸,服務器端就能夠從線程池中激活一個閑置線程進行數據接收,從而實現了多智能移動終端并行數據傳輸; (4)在權限管理方面,采用智能感知不同礦區WiFi的方法,以顯示對應礦區安全檢查表,這有效地保證了檢查人員只有到現場才能有權限進行安全檢查,避免了檢查人員直接在辦公室內勾選檢查表內容。 (5)安全檢查人員在進行現場檢查時,如果遇到不合格項,可以對不合格情況進行拍照并上傳到服務器中心數據庫,這樣地面安全管理人員能夠更加準確真實地了解地下礦井情況并及時作出反應。 2 系統總體設計 2.1 系統網絡架構設計 本系統運行于無線網絡基礎之上,其網絡拓撲結構如圖2所示。其中,為了方便,本系統的Web服務器與“安全信息管理與危險預警系統”服務器運行于同一臺機器上。 2.2 系統功能設計 “基于智能移動終端的安全檢查系統”主要用于完成“安全信息管理與危險預警系統”中安全檢查信息的采集,其功能結構圖如圖3所示,主要實現檢查人員登錄、安全檢查表錄入、安全檢查表保存、安全檢查表提交、安全檢查表批量提交、安全檢查表刪除、安全檢查表查詢、異常情況攝像處理、WiFi感知處理等功能。 當用戶進行安全檢查時,運行本系統進入登錄界面,輸入相應的員工編號與密碼。如果登錄,則系統自動感應安全信息檢查人員所在區間WiFi信號,以便顯示對應的安全檢查表,這使得安全檢查人員必須在相應的檢查礦區才能填寫安全檢查表,同時,檢查過程中,如果有異常情況,可以直接攝像,并與檢查信息一起保存并提交中心數據庫。檢查表填寫好后,安全檢查人員根據所在網絡是否正常決定是否提交檢查表。如果網絡不正常,安全信息采集人員可以將檢查表信息保存在移動終端本地,待網絡正常后提交;如果網絡正常,則可以直接提交中心數據庫,并自動保存一個副本在移動終端本地,另外,只有具備一定權限的管理人員才可以刪除檢查表。運行流程如圖4所示。 3 關鍵技術實現 3.1 Socket數據通信的實現 本系統基于Android操作系統開發。系統采用SQLite數據庫保存安全檢查信息,SQLiteDatabase和SQLilteOpenHelper對象封裝了操作SQLite數據的各種方法,系統通過調用其方法來操作數據庫以實現數據的保存、顯示等功能。 當用戶采集完安全檢查信息進行數據提交時,系統創建一個Socket對象來建立與服務器的通信連接,通過Socket對象獲取輸入、輸出流與服務器端進行數據交互。為了很好地組織傳輸數據格式,系統采用JSON技術,JSON是一種輕量級的數據交換格式,按照“名稱/值對”的形式組織數據。系統通過創建一個JSON數組對象來組織要傳輸的數據,最后通過Socket對象將JSON數據傳輸到服務器端。客戶端Socket創建核心代碼如下所示: Socket socket = new Socket(InetAddress,int post); //創建Socket對象 //獲取輸入輸出流對象 DataInputStream in = new DataInputStream (socket.getInputStream()); DataOutputStream out = new DataOutputStream (socket.getOutputStream ()); //創建JSON數組對象來封裝傳輸數據 JSONArray json = new JSONArray(); //創建ContentValues對象存儲“名稱/值對” ContentValues values = new ContentValues(); 服務器端通過開啟一個主線程來監聽數據傳輸端口,當服務器端主線程監聽到端口有客戶端連接請求時,服務器端就會創建一個線程池對象,并從中提取一個閑置的線程來管理用戶連接請求并與客戶端數據傳輸交互之間的管理,這很好地實現了服務器端支持多用戶并行傳輸數據的功能[3-5]。服務器端核心代碼如下: //創建主線程監聽8070數據傳輸端口 new Thread(new Runnable(){ public void run(){ try{/創建一個數據接收處理對象 new Server(8070); }catch(Exception e){……} } }).start(); //數據接收處理類內部核心代碼: Public Server(int port){ //創建ServerSocket對象監聽數據端口 server = new ServerSocket(port); //通過ServerSocket對象得到Socket對象 socket = server.accept(); //創建線程池,池中具有(cpu個數*50)條線程 excutorService=Executors.newFixedThreadPool (Runtime.getRuntime().availableProcessors()*50); //為了支持多用戶并發訪問,采用線程池管理每個用戶的 連接請求 excutorService.execute(new SocketTask()) /*SocketTask為服務器端數據接收處理類, 根據傳輸數據格式來解釋JSON字符串數組*/ } //數據處理類構造函數 3.2 WiFi感應技術的實現 系統為了保證安全檢查人員進行現場采集安全檢查信息,采用WiFi感應技術來感應不同礦區的WiFi,并通過不同礦區的WiFi綁定數據中對應礦區的安全檢查表來顯示對應檢查表。這實現了WiFi自動感應檢查表功能,從而保證了安全檢查信息采集的真實性、可靠性,為后期定性分析礦山綜合狀況提供重要保障[3-5]。WiFi感應技術核心代碼: //通過WifiAdmin類創建一個WiFi操作對象 public WifiAdmin(Context context){ //通過調用系統服務獲取一個WiFi管理對象wifiManager wifiManager = (WifiManager)context.getSystemService (Context.WIFI_SERVICE); //通過wifiManager對象獲取一個WiFi信息對象 wifiInfo = wifiManger.getConnectionInfo(); } 程序通過wifiManger和wifiInfo兩對象的相關方法來操作終端設備WiFi,實現感應連接礦區附近WiFi。 4 系統運行與特點 安全檢查是安全管理的重要內容,是識別和發現不安全因素、揭示和消除事故隱患、加強防護措施、預防事故和職業危害的重要手段。而安全檢查系統是運行在智能移動終端的智能安全信息采集系統,圖5是運行在智能移動終端的安全檢查系統圖,其中,每條檢查項后面的小圖標表示進行攝像處理。 本文介紹了Android智能操作系統和系統總體設計,著重分析了HttpSocket通信技術的實現。在HttpSocket通信采用JSON技術進行組織通信數據,為了支持多用戶并行傳輸數據,服務器端采用線程池來監聽數據傳輸端口,實現對每個用戶連接的請求管理,同時講解了WiFi感應技術的實現。使系統成為一個智能的礦山信息采集系統。隨著通信技術的迅猛發展,我國將會更加重視安全檢查的信息化、智能化,基于智能移動終端的安全檢查系統將會為采礦行業帶來巨大的經濟效益和社會效益。 參考文獻 [1] 陳養平,賀占莊,白軍元.基于VxWorks的Zinc程序設計[J].微電子學與計算機,2003,20(增刊):32-34. [2] Yang Fengsheng.Android application development revelation [M].Beijing:China Machine Press,2010. [3] KOMATINENI S,HANSHIMI S.精通Android3[M].楊越,譯. 北京:人民郵電出版社,2011. [4] 郭宏志.Android應用開發詳解[M].北京:電子工業出版社,2010. [5] 李寧.Android開發權威指南[M].北京:人民郵電出版社,2011. |