唐璐
摘 要 隨著云計算、大數(shù)據(jù)、5G通信技術(shù)的發(fā)展,人工智能時代已經(jīng)到來,智慧廣電開始融入政治、經(jīng)濟(jì)和社會生活當(dāng)中,智慧中波建設(shè)應(yīng)運(yùn)而生,“有人留守、無人值機(jī)”成為大勢所趨。因此,人們需要遠(yuǎn)程監(jiān)控系統(tǒng)來隨時觀察發(fā)射機(jī)房狀況。基于GPRS的遠(yuǎn)程監(jiān)控系統(tǒng),采用C/S模式,由客戶端和服務(wù)端兩部分組成,通過GPRS實現(xiàn)實時連接,實現(xiàn)畫面實時顯示和拍照功能。
關(guān)鍵詞 GPRS;遠(yuǎn)程監(jiān)控;實時;手機(jī)客戶端
引言
隨著傳輸技術(shù)的演變發(fā)展、新媒體技術(shù)的更新迭代,信息傳媒行業(yè)的使命更加艱巨,傳統(tǒng)的工作模式已經(jīng)無法滿足中波發(fā)展需求。隨著智慧中波的建設(shè),安防監(jiān)控成為安全播出智能化管理的有效手段。而遠(yuǎn)程監(jiān)控技術(shù)將給我們的管理帶來便利,為走向“有人留守,無人值機(jī)”打下基礎(chǔ)。
1遠(yuǎn)程監(jiān)控系統(tǒng)概述
遠(yuǎn)程監(jiān)控系統(tǒng)通過有線傳輸或無線傳輸?shù)姆绞?,將監(jiān)控前端采集到的視頻圖像信息傳輸給監(jiān)控中心站,監(jiān)控中心站存儲接收到的信息。隨著工作場景對安全防范要求的提高,遠(yuǎn)程監(jiān)控系統(tǒng)更多地應(yīng)用到工作當(dāng)中,成為我們視覺的延伸。讓我們可通過視頻圖像來判斷現(xiàn)場情況,通過保存錄像、照片為處理后續(xù)問題帶來便利。隨著無線移動通信技術(shù)的不斷發(fā)展,無線移動傳輸帶寬進(jìn)一步提高,使得遠(yuǎn)程監(jiān)控系統(tǒng)向移動式視頻監(jiān)控系統(tǒng)發(fā)展。
移動式遠(yuǎn)程監(jiān)控系統(tǒng)主要由手機(jī)客戶端作為移動終端,攝像頭作為監(jiān)控前端采集圖像數(shù)據(jù),通過傳輸網(wǎng)絡(luò)傳輸數(shù)據(jù),實現(xiàn)視頻數(shù)據(jù)的交互、發(fā)送和接收等,甚至可以實時轉(zhuǎn)播聲音動態(tài),聽到來自視頻監(jiān)控死角的聲音,帶來更多的技術(shù)保障,實現(xiàn)對發(fā)射機(jī)房的實時監(jiān)控[1]。
2本設(shè)計的方案思路
用攝像頭做監(jiān)控前端,手機(jī)為移動終端,使用手機(jī)客戶端遠(yuǎn)程監(jiān)控。監(jiān)控前端和移動終端之間通過GPRS無線傳輸圖像數(shù)據(jù)。要求整個設(shè)計能夠進(jìn)行視頻監(jiān)控,監(jiān)控過程中能夠抓拍圖片,保存并上傳圖片。
3本設(shè)計的系統(tǒng)功能
客戶端和服務(wù)器能夠?qū)崟r連接,打開服務(wù)器端能實時顯示捕捉到的畫面,在客戶端發(fā)出拍照命令時,能夠拍攝并壓縮圖片后將其上傳給客戶端。打開客戶端軟件,能夠?qū)Ψ?wù)器軟件發(fā)出命令,并在短時間內(nèi)接收到來自服務(wù)器軟件的圖片,并將其顯示在手機(jī)屏幕上以及保存在手機(jī)的本地文件中。
4軟件設(shè)計
4.1 總體方案
該系統(tǒng)采用C/S結(jié)構(gòu),即客戶端與服務(wù)器架構(gòu)。C/S結(jié)構(gòu)能夠結(jié)合客戶端與服務(wù)器在硬件上的優(yōu)點,通過把任務(wù)分配給客戶端和服務(wù)器來實現(xiàn)任務(wù)。服務(wù)器在空閑狀態(tài)時需要等待來自客戶端的請求,處理完接收到的請求后傳回處理結(jié)果??蛻舳素?fù)責(zé)向服務(wù)器發(fā)送要求,并且保持等待直到收到處理后的回應(yīng)。
4.2 軟件說明
(1)客戶端(PhotoCaptureClient)
客戶端對應(yīng)于服務(wù)端,是為用戶提供本地服務(wù)的程序,與服務(wù)端相互配合才能運(yùn)行。本系統(tǒng)通過基于GPRS的Socket通信連接客戶端和服務(wù)器。
1)基于GPRS的通信方式:Socket通信。GPRS是一種通用無線分組業(yè)務(wù)。GPRS數(shù)據(jù)傳輸有很多優(yōu)點,一是接入范圍比較廣,它基于GSM發(fā)展而來,不會影響現(xiàn)有網(wǎng)絡(luò);二是高速的數(shù)據(jù)傳輸,分組交換保證了數(shù)據(jù)和通訊指令能夠被高速傳輸;三是接入時間短,能進(jìn)行快捷登錄;四是GPRS能夠一直保持在線,不間斷與網(wǎng)絡(luò)的聯(lián)系;五是按照流量計費(fèi),只有進(jìn)行數(shù)據(jù)傳輸任務(wù),才會計費(fèi)。
Android平臺支持多種網(wǎng)絡(luò)通信機(jī)制,本客戶端程序使用SSL通信,使用Socket類建立負(fù)責(zé)連接到服務(wù)器的套接字對象,實現(xiàn)兩者通信。
2)小部件:Button、Image View和TextView。本客戶端使用的按鈕部件是普通按鈕(Button)。普通按鈕的屬性繼承于文本條組件,按鈕組件主要用于接收用戶操作的點擊事件;圖片顯示組件使用的是圖片視圖(Image View)。圖片視圖的功能是顯示圖像內(nèi)容;文本組件使用的是文本條(TextView)。文本條作用是顯示文本內(nèi)容。通過set Text()和get Text()兩種方法,可以對組件的顯示內(nèi)容進(jìn)行設(shè)置或是獲取文本內(nèi)容。
3)圖像顯示。Bitmap可以獲取圖像文件的信息,完成圖像的剪切、旋轉(zhuǎn)和縮放等操作,以指定格式保存圖像文件。不過這個類的構(gòu)造函數(shù)屬于私有函數(shù),不能在包外對它進(jìn)行實例化,只有通過JNI實例化才能進(jìn)行。創(chuàng)建Bitmap的接口由Bitmap Factory輔助類提供。Bitmap Factory的作用是通過從各種來源包括文件流和字節(jié)數(shù)組獲得的信息創(chuàng)建位圖對象。
4)Handler類。Handler類主要的作用是處理異步的信息。當(dāng)我們新建立Handler處理程序時,它會被捆綁到建立它的線程與信息隊列上,從這一點上,它將傳遞信息及執(zhí)行那些信息隊列出來的runnable消息。多線程是Java的特點之一,實現(xiàn)多線程的方法有兩種:繼承Thread以及實現(xiàn)Runnable接口,本客戶端中使用的是Runnable接口。
5)布局組件:相對布局和線性布局。本客戶端主要的布局類型是線性布局和相對布局。線性布局指的是直線放置視圖容器中的子組件。線性布局是一個有方向?qū)傩?、寬度屬性和高度屬性的顯示組件容器;在相對布局中,所有子組件的擺放,需要前一個組件的位置。
6)IO Exception。IO Exception指的是一個與I/O相關(guān)的錯誤信號。錯誤詳細(xì)信息可以調(diào)用構(gòu)造函數(shù)時指定,像往常一樣。需要注意的是也會有更具體錯誤情況下幾個子類,比如說File Not Found Exception類和EOF Exception類等。
7)圖片存儲:File以及File Output Stream類。File類是路徑確定文件系統(tǒng)實體的抽象表示。路徑名稱絕對或相對于目錄中的程序運(yùn)行。當(dāng)操作文件的路徑,該類的靜態(tài)域可以用來確定特定平臺的分離器。通過File類相關(guān)方法,實現(xiàn)對常用文件系統(tǒng)的操作功能;File Output Stream類專門把Output Stream書寫到文件系統(tǒng)的文件中。所有的寫請求通過調(diào)用方法直接轉(zhuǎn)發(fā)到等效功能的操作系統(tǒng)底層。
(2)服務(wù)端(Photo Capture)
服務(wù)器作為監(jiān)控前端,通過攝像頭獲取圖像信息,上傳圖像數(shù)據(jù)??蛻舳送ㄟ^Socket通信來新建套接字對象連接到服務(wù)器。而為了讓客戶端與服務(wù)端之間正常通信,必須在服務(wù)端建立一個ServerSocket對象,將兩者的套接字對象連接。
1)Activity類。Activity可稱為形象大使,作用是能夠給予一組實現(xiàn)交互的可視界面,用來處理前端的事物。而在后臺,Activity與應(yīng)用程序框架中大部分組件都有相關(guān)性。一個Android應(yīng)用程序允許多個Activity同時存在,但只有其中一個可以用于啟動,而互相可通過調(diào)用來組成Activity棧。
2)底層視圖:Surface View類。Surface View類提供一個專用的內(nèi)嵌視圖層次結(jié)構(gòu)的繪圖表面。Surface View負(fù)責(zé)將視圖擺放在正確位置。SurfaceHolder是獲取圖像表面的抽象接口。它可以控制表面的大小、格式、像素,并監(jiān)控表面的變化。Surface Holder接口的使用一般都是利用Surface View類進(jìn)行。
3)多媒體應(yīng)用:Camera類。Camera類的作用是打開或關(guān)閉攝像頭,進(jìn)行圖像畫面捕捉,啟動預(yù)覽、停止預(yù)覽、照片抓拍和搜索視頻幀的編碼。使用Camera類所提供的接口,可以得到設(shè)備相機(jī)服務(wù)的接口,實現(xiàn)預(yù)覽和拍照功能。它沒有默認(rèn)構(gòu)造函數(shù)。利用open()方法可以獲得相機(jī)接口。
4)Thread類。在本軟件的程序中,Thread.start()方法的作用是開啟線程。Thread.sleep(2000)語句的作用是線程休眠2秒。
5)Server Socket類。Server Socket類代表一個等待傳入的客戶端連接的服務(wù)端套接字。Server Socket處理請求并返回一個適當(dāng)?shù)拇饛?fù)。服務(wù)器套接字必須完成的工作是通過內(nèi)部的socketimpl實例實現(xiàn)的。當(dāng)上下文實例初始化成功后,就可以得到通過它關(guān)聯(lián)的服務(wù)器工廠實例。根據(jù)指定的服務(wù)端口,服務(wù)套接字工廠實例可以創(chuàng)建一個Server Socket。當(dāng)創(chuàng)建Server Socket成功,就可以等待客戶端連接,實現(xiàn)通信。
6)Buffered Reader與Buffered Writer類。Buffered Reader類的作用是打包一個現(xiàn)有的Reader和緩沖數(shù)據(jù)的輸入。其潛在讀者的昂貴相互應(yīng)當(dāng)被最小化,因為大多數(shù)請求可以通過訪問單獨的緩沖獲得解決。Buffered Writer類的作用是打包一個現(xiàn)有的Writer和緩沖數(shù)據(jù)輸出。同樣,Buffered Writer類潛在讀者的昂貴相互應(yīng)當(dāng)被最小化。
7)字節(jié)輸入流和字節(jié)輸出流。在java.io包中有大量的流類,字節(jié)輸入流和字節(jié)輸出流分別指的是Input Stream類以及Output Stream類的子類創(chuàng)建的流對象。Input Stream類是輸入流的基類,輸入流是由一個字節(jié)為單位讀取源數(shù)據(jù)的方法。Output Stream類是全部輸出流的基礎(chǔ)類。輸出流寫數(shù)據(jù)到一個目標(biāo)以一個字節(jié)為單位進(jìn)行。
5軟件調(diào)試和系統(tǒng)調(diào)試
軟件調(diào)試主要是調(diào)試服務(wù)端能否打開攝像頭并且將捕捉到的圖像內(nèi)容實時顯示;客戶端能否連接到服務(wù)端,并控制服務(wù)端拍照和上傳圖片。
調(diào)試時,需將服務(wù)端和客戶端都聯(lián)入同一個局域網(wǎng)中,在客戶端Address欄輸入服務(wù)端的IP地址,port欄輸入端口號8088。打開服務(wù)端和客戶端,觀察實時性和軟件功能。
6結(jié)束語
通過遠(yuǎn)程監(jiān)控系統(tǒng),可實現(xiàn)對發(fā)射機(jī)房的實時監(jiān)控,降低安全監(jiān)管成本,實現(xiàn)減員增效,是現(xiàn)代化手段對人力、資源和安全播出監(jiān)管的有效方式。在實際應(yīng)用中,我們未應(yīng)用移動式的安防監(jiān)控模式,但已實現(xiàn)系統(tǒng)化的安防監(jiān)控監(jiān)管,配備智能安防監(jiān)控、車輛識別門禁等,并實現(xiàn)系統(tǒng)間互聯(lián)互通。我們有理由相信,隨著智慧中波建設(shè)的不斷推進(jìn),“有人留守、無人值機(jī)”的目標(biāo)將成為可能。
參考文獻(xiàn)
[1] 范永開,許林.Android程序設(shè)計[M].北京:清華大學(xué)出版社,2014: 91-97.