赵红旭,赵 爽,胡海燕
(吉林工商学院工学院 吉林 长春 130507)
光时域反射计主要是指通过对光纤中返回的两种数值进行检测,如非涅尔反射数值、瑞利散射数值,可以实现对光纤光缆损耗分布、连接损耗、链路损耗和长度等物理特性的准确测试,便于用户采用自动化控制的方式对链路故障出现的位置进行分析和定位,为后期光纤生产和维护工作的有效开展打下坚实基础。因此,在Android开发环境下,如何科学设计光时域反射计远程交互软件系统是相关人员必须思考和解决的问题。
Android系统作为一种常用的移动设备系统,具有以下开发特色:(1)系统控件丰富。Android系统包含多种系统控件,开发者通过使用这些系统控件,可以编写最少代码,实现各种漂亮界面的开发。此外,开发者可以采用自定义的方式,实现对多种控件效果的定制,以满足用户的使用需求。(2)组件多。Android系统含有4个组件,分别是活动组件、服务组件、广播接收器组件和内容提供器组件。这些组件具有强大的功能,极大地降低了开发者的代码编写量。(3)含有SQLite数据库。开发者同时利用该数据库,不仅可以支持各种SQL标准语法,还能调用封装好的API,提高开发效率和效果。
对于光时域反射计远程交互软件而言,主要包含以下3个组件:(1)通信组件。通信组件在具体的设计中,需要采用TCP连接方式,在智能手机客户端与光时域反射计服务器端之间建立起有效地连接,然后,利用套接字,达到通信目的[1]。(2)客户端组件。在具体的设计中,需要借助光时域反射计服务器端,采用远程控制的方式,对光时域反射计回传的测试结果进行控制和接收。(3)服务端组件。服务端组件在具体设计中,需要利用光时域反射计服务器端的监听功能,对手机发送的测试指令进行监听[2],然后,根据指令内容进行运行,并将最终的测试结果返回手机。
智能手机与光时域反射计交互系统所用到的网络协议主要以TCP/IP网络协议为主,该协议含有C/S体系结构,其中C代表客户端,S代表服务器端。TCP连接建立流程,见图1。
图1 TCP连接建立流程
从图中可以看出,TCP连接整个建立流程主要包含以下几个步骤:(1)将Android智能手机改造和升级为客户端,然后,根据已设置好的IP地址和端口号,将连接请求报文发送给服务器端,当发送操作结束后,客户端会自动进入到同步已发送(SYN-SENT)状态。(2)将光时域反射计改造并升级为服务器端,通过利用服务器端[3],对客户端法术的连接请求报文进行接收并回复确认,当发送操作结束后,服务器端会自动进入到同步受到(SYN-RCVD)状态中。(3)当客户端接收并回复确认服务器端发送的报文后,智能手机会将所确认好的报文再次发送给服务器端,当发送操作结束后,服务器端和客户端会同时进入到ESTAB-LISHED状态,此时,双方成功建立其TCP连接,以达到有效通信的目的。当TCP连接成功建立后,Android智能手机客户端会借助套接字,与光时域反射计服务器端之间建立起良好的通信关系。此时,智能手机会将字符指令发送给光时域反射计[4]。字符指令主要包含两种指令:一种是参数指令,该指令主要用于对光时域反射计测试参数的设置;另一种是测试指令,该指令主要用于对光时域反射计的控制和测试。当光时域反射计成功接收到参数指令后,服务器端会自动进入到测试参数设置环节中,向智能手机客户端发送所设置好的测试参数,当光时域反射计成功接收到测试指令后,会自动进入到测试环节中,并向智能手机客户端发送最终的测试结果,便于用户科学地分析和处理光纤故障问题[5]。
3.3.1 OtdrClient类设计
OtdrClient类作为客户端组件的重要模块之一,具有强大的交互通信能力,该模块具体实现方式如下:(1)构建connect对象。在这一环节中,用户需要将IP和端口号准确无误地输入到客户端中,然后,利用“connect()”方法,向服务器端自动发出连接请求,确保手机客户端与光时域反射计服务器端两者之间建立有效地连接。(2)构建getInputSteam对象。在这一环节中,需要获取完整、真实的输入流,此时,客户端会自动接收到服务器端发送的相关信息数据。(3)构建DataInputStream对象。借助数据流入流[6],并成功接收和确认服务器端发送的测试结果。(4)构建Thread对象。通过新建和定义Thread对象,并调用“run()”方法,发挥Android应用优势,完成对多线程程序的编写。
3.3.2 OtdrSet类设计
OtdrSet类主要负责对光时域反射计测试参数的设置,其功能实现方法如下:(1)构建ArrayList动态数据。该动态数据数量会呈现出自动上涨的趋势,通过利用该动态数据,可以完成对List列表的设置,然后,调用“delete()”方法或者“add()”方法,完成对列表内容的删除或者添加。(2)构建ArrayAdapter对象。该对象主要负责对数组适配器内容的处理,确保各个列表能够正常有序地展示文本内容[7]。同时,通过完成对ArrayAdapter对象的定义和构建,可以实习对列表格式的个性化设置和指定,满足用户的个性化使用需求。
3.3.3 OtdrPaint类设计
OtdrPaint类作为常用模块,主要负责对光时域反射计测试曲线的绘制以及最终分析结果的显示,该功能具体实现方法如下:(1)构建andomAccessFile对象。通过利用该对象,可以实现对光时域反射计测试数据的访问和调用,以达到访问大量文件内容的目的。此外,该对象还能自动定位访问文件的具体位置,通过调用“read()”方法,可以实现对测试文件数据的快速读取。(2)构建onDraw对象。通过利用该对象,可以完成对Canvas画布的绘制,屏幕绘图相比,这种绘图方式更加形象、逼真。(3)构建SimpleAdapter对象。通过利用适配器,除了可以完整清晰地显示文本列表[8],还能在指定的文本列表是设置相应的图标,便于用户通过点击图标,完成对列表信息的查阅和调用。此外,对于SimpleAdapter对象而言,共包含3个参数,第1个参数主要用于对Android应用程序接口的访问;第2个参数主要用于对各种列表选项的形成;第3个参数主用负责对各种界面的展示。
服务器端组件在具体的设计中,主要借助OtdrServer类实现的,OtdrServer类保证交互通信实现效果的重要模块,其具体实现方法如下:(1)构建函数。通过利用该函数,完成对IP和端口号的指定和监听。(2)构建accept对象。通过利用accept对象,使得客户端与服务器端之间建立起稳定、安全的通信连接,确保两者之间可以顺利交互和通信。同时,还要将最终返回的Socket对象传输到客户端,由客户端负责监听连接关系的建立。最后,通过调用指定的函数,完成对循环语句的正常执行。OtdrServer类UI设计与功能实现见图2。
图2 OtdrServer类UI设计与功能实现
综上所述,当手机客户端与光时域反射计服务端之间建立有效的连接后,用户通过使用手机,就可以采用远程控制的方式,完成对光时域反射计测试参数的设置,并自动化控制光时域反射计整个测试过程。当光时域反射计成功接收到手机发出的测试指令后,就会自动进入到测试环节中,并得出最终的测试结果,并将其传输到用户手机客户端中。此时,用户利用手机客户端,根据光时域反射计发送的测试数据,采用绘制测试数据图的方式,全面了解和把握光纤网络实际运行状态。总之,通过使用光时域反射计远程交互软件,极大地提高了用户光纤工作的效率和效果,很好地满足了用户使用体验,因此,该软件值得被进一步推广和普及于光纤生产或者维修领域中。