趙紅旭,趙 爽,胡海燕
(吉林工商學院工學院 吉林 長春 130507)
光時域反射計主要是指通過對光纖中返回的兩種數(shù)值進行檢測,如非涅爾反射數(shù)值、瑞利散射數(shù)值,可以實現(xiàn)對光纖光纜損耗分布、連接損耗、鏈路損耗和長度等物理特性的準確測試,便于用戶采用自動化控制的方式對鏈路故障出現(xiàn)的位置進行分析和定位,為后期光纖生產和維護工作的有效開展打下堅實基礎。因此,在Android開發(fā)環(huán)境下,如何科學設計光時域反射計遠程交互軟件系統(tǒng)是相關人員必須思考和解決的問題。
Android系統(tǒng)作為一種常用的移動設備系統(tǒng),具有以下開發(fā)特色:(1)系統(tǒng)控件豐富。Android系統(tǒng)包含多種系統(tǒng)控件,開發(fā)者通過使用這些系統(tǒng)控件,可以編寫最少代碼,實現(xiàn)各種漂亮界面的開發(fā)。此外,開發(fā)者可以采用自定義的方式,實現(xiàn)對多種控件效果的定制,以滿足用戶的使用需求。(2)組件多。Android系統(tǒng)含有4個組件,分別是活動組件、服務組件、廣播接收器組件和內容提供器組件。這些組件具有強大的功能,極大地降低了開發(fā)者的代碼編寫量。(3)含有SQLite數(shù)據庫。開發(fā)者同時利用該數(shù)據庫,不僅可以支持各種SQL標準語法,還能調用封裝好的API,提高開發(fā)效率和效果。
對于光時域反射計遠程交互軟件而言,主要包含以下3個組件:(1)通信組件。通信組件在具體的設計中,需要采用TCP連接方式,在智能手機客戶端與光時域反射計服務器端之間建立起有效地連接,然后,利用套接字,達到通信目的[1]。(2)客戶端組件。在具體的設計中,需要借助光時域反射計服務器端,采用遠程控制的方式,對光時域反射計回傳的測試結果進行控制和接收。(3)服務端組件。服務端組件在具體設計中,需要利用光時域反射計服務器端的監(jiān)聽功能,對手機發(fā)送的測試指令進行監(jiān)聽[2],然后,根據指令內容進行運行,并將最終的測試結果返回手機。
智能手機與光時域反射計交互系統(tǒng)所用到的網絡協(xié)議主要以TCP/IP網絡協(xié)議為主,該協(xié)議含有C/S體系結構,其中C代表客戶端,S代表服務器端。TCP連接建立流程,見圖1。
圖1 TCP連接建立流程
從圖中可以看出,TCP連接整個建立流程主要包含以下幾個步驟:(1)將Android智能手機改造和升級為客戶端,然后,根據已設置好的IP地址和端口號,將連接請求報文發(fā)送給服務器端,當發(fā)送操作結束后,客戶端會自動進入到同步已發(fā)送(SYN-SENT)狀態(tài)。(2)將光時域反射計改造并升級為服務器端,通過利用服務器端[3],對客戶端法術的連接請求報文進行接收并回復確認,當發(fā)送操作結束后,服務器端會自動進入到同步受到(SYN-RCVD)狀態(tài)中。(3)當客戶端接收并回復確認服務器端發(fā)送的報文后,智能手機會將所確認好的報文再次發(fā)送給服務器端,當發(fā)送操作結束后,服務器端和客戶端會同時進入到ESTAB-LISHED狀態(tài),此時,雙方成功建立其TCP連接,以達到有效通信的目的。當TCP連接成功建立后,Android智能手機客戶端會借助套接字,與光時域反射計服務器端之間建立起良好的通信關系。此時,智能手機會將字符指令發(fā)送給光時域反射計[4]。字符指令主要包含兩種指令:一種是參數(shù)指令,該指令主要用于對光時域反射計測試參數(shù)的設置;另一種是測試指令,該指令主要用于對光時域反射計的控制和測試。當光時域反射計成功接收到參數(shù)指令后,服務器端會自動進入到測試參數(shù)設置環(huán)節(jié)中,向智能手機客戶端發(fā)送所設置好的測試參數(shù),當光時域反射計成功接收到測試指令后,會自動進入到測試環(huán)節(jié)中,并向智能手機客戶端發(fā)送最終的測試結果,便于用戶科學地分析和處理光纖故障問題[5]。
3.3.1 OtdrClient類設計
OtdrClient類作為客戶端組件的重要模塊之一,具有強大的交互通信能力,該模塊具體實現(xiàn)方式如下:(1)構建connect對象。在這一環(huán)節(jié)中,用戶需要將IP和端口號準確無誤地輸入到客戶端中,然后,利用“connect()”方法,向服務器端自動發(fā)出連接請求,確保手機客戶端與光時域反射計服務器端兩者之間建立有效地連接。(2)構建getInputSteam對象。在這一環(huán)節(jié)中,需要獲取完整、真實的輸入流,此時,客戶端會自動接收到服務器端發(fā)送的相關信息數(shù)據。(3)構建DataInputStream對象。借助數(shù)據流入流[6],并成功接收和確認服務器端發(fā)送的測試結果。(4)構建Thread對象。通過新建和定義Thread對象,并調用“run()”方法,發(fā)揮Android應用優(yōu)勢,完成對多線程程序的編寫。
3.3.2 OtdrSet類設計
OtdrSet類主要負責對光時域反射計測試參數(shù)的設置,其功能實現(xiàn)方法如下:(1)構建ArrayList動態(tài)數(shù)據。該動態(tài)數(shù)據數(shù)量會呈現(xiàn)出自動上漲的趨勢,通過利用該動態(tài)數(shù)據,可以完成對List列表的設置,然后,調用“delete()”方法或者“add()”方法,完成對列表內容的刪除或者添加。(2)構建ArrayAdapter對象。該對象主要負責對數(shù)組適配器內容的處理,確保各個列表能夠正常有序地展示文本內容[7]。同時,通過完成對ArrayAdapter對象的定義和構建,可以實習對列表格式的個性化設置和指定,滿足用戶的個性化使用需求。
3.3.3 OtdrPaint類設計
OtdrPaint類作為常用模塊,主要負責對光時域反射計測試曲線的繪制以及最終分析結果的顯示,該功能具體實現(xiàn)方法如下:(1)構建andomAccessFile對象。通過利用該對象,可以實現(xiàn)對光時域反射計測試數(shù)據的訪問和調用,以達到訪問大量文件內容的目的。此外,該對象還能自動定位訪問文件的具體位置,通過調用“read()”方法,可以實現(xiàn)對測試文件數(shù)據的快速讀取。(2)構建onDraw對象。通過利用該對象,可以完成對Canvas畫布的繪制,屏幕繪圖相比,這種繪圖方式更加形象、逼真。(3)構建SimpleAdapter對象。通過利用適配器,除了可以完整清晰地顯示文本列表[8],還能在指定的文本列表是設置相應的圖標,便于用戶通過點擊圖標,完成對列表信息的查閱和調用。此外,對于SimpleAdapter對象而言,共包含3個參數(shù),第1個參數(shù)主要用于對Android應用程序接口的訪問;第2個參數(shù)主要用于對各種列表選項的形成;第3個參數(shù)主用負責對各種界面的展示。
服務器端組件在具體的設計中,主要借助OtdrServer類實現(xiàn)的,OtdrServer類保證交互通信實現(xiàn)效果的重要模塊,其具體實現(xiàn)方法如下:(1)構建函數(shù)。通過利用該函數(shù),完成對IP和端口號的指定和監(jiān)聽。(2)構建accept對象。通過利用accept對象,使得客戶端與服務器端之間建立起穩(wěn)定、安全的通信連接,確保兩者之間可以順利交互和通信。同時,還要將最終返回的Socket對象傳輸?shù)娇蛻舳?,由客戶端負責監(jiān)聽連接關系的建立。最后,通過調用指定的函數(shù),完成對循環(huán)語句的正常執(zhí)行。OtdrServer類UI設計與功能實現(xiàn)見圖2。
圖2 OtdrServer類UI設計與功能實現(xiàn)
綜上所述,當手機客戶端與光時域反射計服務端之間建立有效的連接后,用戶通過使用手機,就可以采用遠程控制的方式,完成對光時域反射計測試參數(shù)的設置,并自動化控制光時域反射計整個測試過程。當光時域反射計成功接收到手機發(fā)出的測試指令后,就會自動進入到測試環(huán)節(jié)中,并得出最終的測試結果,并將其傳輸?shù)接脩羰謾C客戶端中。此時,用戶利用手機客戶端,根據光時域反射計發(fā)送的測試數(shù)據,采用繪制測試數(shù)據圖的方式,全面了解和把握光纖網絡實際運行狀態(tài)??傊?,通過使用光時域反射計遠程交互軟件,極大地提高了用戶光纖工作的效率和效果,很好地滿足了用戶使用體驗,因此,該軟件值得被進一步推廣和普及于光纖生產或者維修領域中。