高慧文 周巧扣 丁涵清 沈紅威
摘要:隨著現(xiàn)代工業(yè)的迅速發(fā)展,水資源的污染呈上升趨勢,為方便污水的定位處理,設(shè)計(jì)了一種基于Android的污水定位與上報(bào)系統(tǒng)。系統(tǒng)分為服務(wù)器端和客戶端,服務(wù)器端采用ASP.NET框架以及C#程序設(shè)計(jì)語言構(gòu)建污水處理系統(tǒng)的主體,采用Web Service技術(shù)為手機(jī)終端提供了污水上報(bào)的功能,客戶端基于Android平臺實(shí)現(xiàn)了污水的定位與上報(bào)子系統(tǒng),經(jīng)過對系統(tǒng)的實(shí)際運(yùn)行,驗(yàn)證了系統(tǒng)的可行性及實(shí)用性。
關(guān)鍵詞:Android;污水處理系統(tǒng);GPS;web service;ASP.NET
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)18-0231-03
1背景
隨著工業(yè)的發(fā)展以及城市化進(jìn)程的加快,水資源污染程度呈上升趨勢,如果污水得不到及時(shí)的處理將會進(jìn)一步惡化,嚴(yán)重的甚至危害居民的健康。為了及時(shí)對污水進(jìn)行定位和處理,設(shè)計(jì)了一種基于Android的污水定位與上報(bào)系統(tǒng)。系統(tǒng)由服務(wù)器端和客戶端兩個(gè)組成部分,服務(wù)器端采用ASP.NET框架以及C#程序設(shè)計(jì)語言構(gòu)建的Web網(wǎng)站,主要負(fù)責(zé)對污水信息進(jìn)行處理,客戶端采用Eclipse集成開發(fā)環(huán)境Java程序設(shè)計(jì)語言,開發(fā)的基于Android的應(yīng)用程序,主要負(fù)責(zé)污水的定位和上報(bào)。
2系統(tǒng)的總體加框
系統(tǒng)的總體功能結(jié)構(gòu)如圖1所示。系統(tǒng)中的服務(wù)器端主要包含:污水管理模塊,人員管理模塊,數(shù)據(jù)導(dǎo)出模塊,數(shù)據(jù)備份模塊,以及Web Service模塊??蛻舳酥饕何鬯ㄎ簧蠄?bào)模塊、污水處理情況查詢模塊,軟件功能介紹等模塊。
2.1服務(wù)端的功能
污水管理模塊是服務(wù)器端的核心功能模塊,主要包含:污水類別管理,污染等級管理,污水信息管理,污水信息錄入,城市河道信息,污染處罰條例等。系統(tǒng)中將污水的類別分為:生活污水、工業(yè)污水、農(nóng)業(yè)廢水等類別。污染等級描述的是水污染的嚴(yán)重程度,根據(jù)嚴(yán)重程度安排污水處理的優(yōu)先級。污水信息管理主要是查看客戶端上報(bào)的污水信息,以及安排污水處理人員處理污水。在服務(wù)器端也可以通過污水信息錄入模塊添加污水信息。城市河道信息主要列舉了城市主要的河道名稱以及位置信息。污染處罰條例模塊記錄了污水處罰的相關(guān)法律條例。
人員管理模塊:系統(tǒng)中的人員分為兩種:管理員和污水處理人員。管理員可以對污水信息進(jìn)行增刪改操作,也可以對污水處理人員的信息進(jìn)行增刪改操作,此外管理員還可以指定某一個(gè)污水處理人員對某一處的污水進(jìn)行處理。污水處理人員只能查看管理員安排給自己的污水處理任務(wù),以及對污水處理的狀態(tài)進(jìn)行設(shè)置。
數(shù)據(jù)導(dǎo)出和數(shù)據(jù)備份模塊:可以將服務(wù)器端中數(shù)據(jù)庫里的數(shù)據(jù)導(dǎo)出為Excel工作表,方便工作人員進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。為了提高系統(tǒng)的健壯性,系統(tǒng)中提供了數(shù)據(jù)備份功能,可以將系統(tǒng)中的數(shù)據(jù)庫文件備份到指定的目錄,一旦數(shù)據(jù)庫文件損壞可以還原數(shù)據(jù)庫文件,使得系統(tǒng)的運(yùn)行不受影響。
Web Service模塊:為手機(jī)客戶端提供了污水信息上報(bào)的方法以及查詢污水處理情況的方法,客戶端可以使用Web Service技術(shù)連接該模塊,調(diào)用該模塊中的兩個(gè)方法實(shí)現(xiàn)污水的上報(bào)和信息查詢功能。
2.2客戶端的功能
污水定位上報(bào)模塊:污水定位上報(bào)模塊是客戶端的核心模塊,主要調(diào)用手機(jī)GPS定位功能實(shí)現(xiàn)污水位置的精確定位,返回污水位置的經(jīng)度和緯度。此模塊還提供手機(jī)拍照功能,拍取污水現(xiàn)場的照片上報(bào)到服務(wù)器端,其運(yùn)行界面如圖2所示。
污水處理情況查詢模塊:當(dāng)客戶端上報(bào)污水信息成功后,會返回給客戶端一個(gè)查詢編號,客戶端可以根據(jù)這個(gè)編號查詢污水處理的情況,實(shí)時(shí)跟蹤污水處理的結(jié)果和當(dāng)前的進(jìn)度。
軟件介紹模塊:包含軟件的使用說明,以及各個(gè)模塊的功能。
3關(guān)鍵技術(shù)
3.1 Web Service
Web Service建立在一些技術(shù)標(biāo)準(zhǔn)上,涉及的主要技術(shù)包括SOAP、WSDL和UDDI等,系統(tǒng)中采用的是SOAP協(xié)議進(jìn)行服務(wù)器和客戶端的通信。SOAP協(xié)議包含以下4個(gè)部分:
1)SOAP封裝(Envelop),它定義了一個(gè)框架,描述消息中的內(nèi)容是什么,是誰發(fā)送的,誰應(yīng)該接收并處理它以及如何處理。
2)SOAP編碼規(guī)則(Encoding Rules),它定義了一種序列化的機(jī)制,用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實(shí)例。
3)SOAP RPC表示(RPC Representation),它定義了一個(gè)協(xié)議,用于表示遠(yuǎn)程過程調(diào)用和應(yīng)答。
4)SOAP綁定(Binding),它定義了SOAP使用哪種協(xié)議交換信息??梢允褂玫膮f(xié)議包括HTYP、TCP、UDP等。
KSOAP2是Enhydra.org的一個(gè)開源作品,是EnhydraME項(xiàng)目的一部分。Ksoap2-android-assembly-2.5.4-jar-with-depen-dencies.jar是KSOAP2在Android下的一個(gè)移植版本,利用它可以非常方便地訪問Web Service。Android開發(fā)環(huán)境中默認(rèn)情況下不支持SOAP協(xié)議,所以在Android項(xiàng)目中如果使用SOAP協(xié)議,必須下載Ksoap2-andmid-assembly-2.5.4-iar-with-depen-dencies.jar或者更高的版本,并且將其添加到項(xiàng)目文件的類庫中。
在項(xiàng)目中使用Web Service的步驟如下:
1)創(chuàng)建SoapObject對象,在其構(gòu)造函數(shù)中指定服務(wù)器端Web Service的網(wǎng)址,以及客戶端想要調(diào)用的方法的名稱。通過SoapObjeet對象的addProperty()方法為所調(diào)用的方法添加參數(shù)值。
2)創(chuàng)建SoapSefializationEnvelope對象對SoapObject對象進(jìn)行封裝,因?yàn)轫?xiàng)目中的服務(wù)器端采用的是ASP.NET框架,所以需要將SoapSerializationEnvelope對象的dotNet屬性設(shè)置為true,允許其訪問ASP.NET框架寫的服務(wù)器端。endprint
3)創(chuàng)建HttpTransportSE對象,根據(jù)提供的網(wǎng)址將SoapSeri-alizationEnvelope對象發(fā)送到指定的服務(wù)器上,并調(diào)用SoapOb-ject對象中指定的方法。
41如果方法調(diào)用成功,則通過SoapSerializationEnvelope對象的getResponse()方法獲取服務(wù)器端發(fā)回的數(shù)據(jù),返回的數(shù)據(jù)是XML數(shù)據(jù),需要對其進(jìn)行解析。
3.2手機(jī)GPS定位
Android定位一般可以分為兩類:GPS定位和Network定位,而且Network定位又可以細(xì)分為WIFI定位和基站定位。
GPS定位:手機(jī)GPS定位可以直接和衛(wèi)星交互來獲取當(dāng)前手機(jī)所處位置的經(jīng)度和緯度,但是需要有GPS硬件的支持。優(yōu)點(diǎn)是:速度快,精度高,可以在無網(wǎng)絡(luò)的情況下使用,缺點(diǎn)是不能在室內(nèi)使用,需要到戶外使用,而且比較耗電。
基站定位:一般使用手機(jī)附近的三個(gè)基站進(jìn)行三角定位,由于每個(gè)基站的位置是固定的,利用電磁波在這三個(gè)基站間中轉(zhuǎn)需要的時(shí)間來算出手機(jī)所在的坐標(biāo)。其優(yōu)點(diǎn)是受環(huán)境的影響情況較小,只要有基站都可以進(jìn)行定位。缺點(diǎn)是需要網(wǎng)絡(luò),并且定位不是很準(zhǔn)確。
WIFI定位:WIFI定位是根據(jù)一個(gè)固定的WIFIMAC地址,通過手機(jī)到的該WIFI熱點(diǎn)的位置,然后訪問網(wǎng)絡(luò)上的定位服務(wù)以獲取經(jīng)度和緯度信息。優(yōu)點(diǎn)就是受環(huán)境因素較小,只要有WIFI就行,缺點(diǎn)也是定位不是很準(zhǔn)確。
介于以上幾種手機(jī)定位方法優(yōu)缺點(diǎn)的分析,系統(tǒng)中采用的是GPS定位,原因有兩個(gè):第一,污水定位系統(tǒng)需要精確的污水定位信息,方便污水處理人員快速找到污水的位置及時(shí)對污水進(jìn)行處理;第二,污水一般都是在戶外,所以使用GPS定位沒有限制。
使用GPS定位的步驟如下:
1)首先創(chuàng)建LocationManager對象
21創(chuàng)建子類實(shí)現(xiàn)LocationListener接口,重寫接口中的on-LocationChanged(Loaction arg())方法通過參數(shù)arg()的getLongi-tude()和getLatitude0兩個(gè)方法獲取經(jīng)度和緯度。
3)通過LocationManager對象的requestLocationUpdates()方法設(shè)置定位的方法,例如,GPS_PROVIDER或者NET-WORK_PROVIDER,前者為使用GPS定位后者為使用Network定位,以及設(shè)置LocationListener接口對象的實(shí)例。
當(dāng)手機(jī)位置發(fā)生改變時(shí),就會執(zhí)行LoeationListener接口中的onLocationChanged()方法從而可以獲取手機(jī)位置的經(jīng)度和緯度信息。
4結(jié)束語
本文設(shè)計(jì)了一種基于Android的污水定位與上報(bào)系統(tǒng),首先介紹了系統(tǒng)開發(fā)的背景以及意義,接著介紹了系統(tǒng)的總體功能結(jié)構(gòu),對于每個(gè)功能模塊進(jìn)行了描述。最后,對系統(tǒng)中采用的關(guān)鍵技術(shù)進(jìn)行詳細(xì)的闡述。系統(tǒng)的實(shí)際運(yùn)行將有助于污水的快速定位和上報(bào),節(jié)省了污水處理時(shí)間,為了改善人們的生活環(huán)境,提高水資源的質(zhì)量有著積極的意義。endprint