APP下载

基于Android 的OTDR 远程控制系统设计

2020-04-26张志远张志辉闫宝东黄红伟

科技与创新 2020年7期
关键词:服务端列表光纤

张志远,张志辉,闫宝东,韩 强,黄红伟

(中电科仪器仪表有限公司,山东 青岛266555)

1 引言

光时域反射计(OTDR),通过检测光纤中返回的瑞利散射和菲涅尔反射的数值,可以单端无损地测试光纤光缆的长度、损耗分布、损耗系数、熔接及连接损耗、反射损耗及链路损耗等物理特性,能够对链路中的故障点自动分析并准确定位,因而广泛应用于光纤生产与维护,是光纤通信系统中不可或缺的测试仪器。

伴随着光纤通信的快速发展,光纤通信骨干网、城域网、接入网等网络日益庞大,光纤网络的测试环境也日益复杂,这给光纤网络的运维工作带来了严峻挑战。面对这一挑战,结合当前测量仪器的发展趋势,设计了一款可以使用智能手机和OTDR 进行远程交互的软件系统。该系统的目标是实现手机端和OTDR 端的互联,在无线局域网的情况下,用户可以使用手机对OTDR 进行远程控制并接收OTDR 回传的测试结果。用户可以通过手机查看光纤的测试结果,实时了解光缆状态,也可以将测试结果上传到光纤运维中心,进行光纤网络状态的汇总。这些功能能够为用户的光纤运维工作带来便利。

2 Android 系统

2.1 Android 系统介绍

Android 中文名为安卓,是基于Linux 的移动设备操作系统,主要用于智能手机和平板电脑。自2007 年面世以来,Android 系统便完全开源。同时,Android 系统还具有丰富的接口功能,通过对其进行修改和开发,现已方便地应用在互联网电视、可穿戴设备、车载终端、智能测量仪器等硬件设备上。由于Android 系统强大的性能表现以及良好的用户体验,Android 系统在全球市场所占的市场份额已经大幅领先于iOS 系统。在中国,Android 的市场份额更是遥遥领先,据最新的移动系统调研报告,Android 在中国的市场份额已达到87%。

2.2 Android 开发特色

Android 系统作为市场份额最大的移动设备系统,具备以下开发特色:①丰富的系统控件。Android 系统为开发者提供了丰富的系统控件,能够让开发者很轻松地编写出漂亮的界面。若系统自带的控件效果不能够满足用户,开发者可以通过自定义的方式实现定制的控件效果。②SQLite 数据库。Android 系统还自带了轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准的SQL 语法,还可以通过Android 封装好的API 进行操作,让存储和读取数据变得非常方便。③4 大组件。Android 拥有完善的应用程序框架,支持4 大应用组件,分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider),4 大组件可以在任意层次上进行复用和更换。④强大的拓展能力。Android 系统具有丰富的接口功能,支持众多的硬件传感器,例如方向传感器、压力传感器等和其他一些硬件,例如蓝牙、Wi-Fi、GPS 等。通过强大的拓展能力,能够让应用丰富多彩,潜力无限。

2.3 Android 开发环境

早期,在Android 下开发APP 主要使用Eclipse 和基于Eclipse 的ADT,但Eclipse 是为Java 工程而生的开发平台,而非专门用于Android,所以难以避免存在先天性不足。

自2015 年之后,谷歌公司停止了ADT 的版本更新,转而重点打造自家的Android 应用开发环境Android Studio,与Eclipse 比起来,Android Studio 拥有更加强大的功能和更高效的性能。所以,OTDR 远程控制系统中所有代码都将在Android Studio 上进行开发。

3 远程控制系统设计

3.1 远程控制系统架构

系统架构可以分为3 个组件:①通信组件。实现智能手机客户端和OTDR 服务端的TCP 连接,使用套接字(Socket)进行通信。②客户端组件。手机客户端对OTDR 服务端进行远程控制并接收OTDR 回传的测试结果。③服务端组件。OTDR 服务端监听手机发来的指令,按照指令运行,并返回结果,往复循环。

3.2 通信组件设计

智能手机和OTDR 的交互系统采用的是TCP/IP 网络协议的C/S(C:客户端/S:服务端)体系结构,TCP 连接建立流程如图1 所示。

其流程为:①Android 智能手机设计成客户端,通过指定的IP 地址和端口号,向服务端发送连接请求报文段,发送完成后,客户端进入SYN-SENT(同步已发送)状态;②光时域反射计(OTDR)设计成服务端,接收到客户端连接请求报文段后,回复确认报文,发送完成后,服务端进入SYN-RCVD(同步收到)状态;③客户端接收到服务端发出的确认报文后,向服务端发送确认报文,发送后进入ESTAB-LISHED 状态,服务端接收到确认报文后,也进入ESTAB-LISHED 状态,此时双方TCP 连接正式建立,实现通信。

TCP 连接建立后,Android 手机客户端与OTDR 服务端通过套接字(Socket)进行通信。手机向OTDR 发送字符指令,字符指令包括参数指令和测试指令,分别用于设置OTDR 的测试参数和控制OTDR 进行测试。当OTDR 接收到参数指令后,对测试参数进行设置,并将设置结果返回到手机客户端,当OTDR 接收到测试指令后进行测试,并将测试结果返回到手机客户端,供用户分析光纤故障或上传。

3.3 客户端组件设计

客户端的设计主要包括以下几个方面:OtdrClient 类、OtdrSet 类、OtdrPaint 类。

OtdrClient 类是实现交互通信的重要模块,主要通过以下方法实现:①connect。用户输入指定的IP 和端口,通过“connect()”的方法主动向服务器端发出连接请求,用于智能手机客户端与OTDR 服务器端的连接。②getInput Stream。获取输入流,即自身收到对方发送过来的数据。③getOutputStream。获取输出流,即自身向对方发送的数据。④DataInputStream。数据输入流,用于接收对方发送的测试文件。⑤Thread。通过新建一个继承自Thread 的类定义一个线程,然后复写“run()”,实现Android 多线程编程。

OtdrClient 类UI 设计与功能实现如图2 所示。

图2 OtdrClient 类UI 设计与功能实现

OtdrSet 类是设置OTDR 测试参数的模块,主要通过以下方法实现:①ArrayList。ArrayList 是一个动态数据,其容量能自动增长,用于提供设置列表,是日常开发中最常用的List。通过“clear()”和“add()”清除或添加列表中的内容。②ArrayAdapter。只能处理列表项全是文本的数组适配器,用于每行列表只展示文本的情况。通过自定义ArrayAdapter,能够指定设置列表的格式。

OtdrSet 类UI 设计与功能实现如图3 所示。

图3 OtdrSet 类UI 设计与功能实现

OtdrPaint 类是绘制OTDR 测试曲线并显示分析结果的模块,主要通过以下方法实现:①RandomAccessFile。用来访问OTDR 测试数据文件,是非常丰富的文件内容访问类,RandomAccessFile 可以自由的访问文件的任何位置,用“seek()”“read()”方式读取测试文件的数据。②onDraw。最常用的绘图方法,该方法的入参为Canvas 画布对象,在画布上绘图相当于在屏幕上绘图,从而根据读取的测试数据绘制测试曲线。③SimpleAdapter。简单适配器,不仅能够显示文本列表,还能给列表加上图标,用于事件点分析列表。SimpleAdapter 的第一个参数表示访问整个Android 应用程序接口;第二个参数表示生产一个Map(String,Object)列表选项;第三个参数表示界面布局的ID,表示该文件作为列表项的组件;第四个参数表示该Map 对象的那些key 对应value 来生成列表项;第五个参数表示来填充的组件Map对象key 对应的资源依次填充组件,顺序有对应关系。

OtdrPaint 类UI 设计与功能实现如图4 所示。

图4 OtdrPaint 类UI 设计与功能实现

3.4 服务端组件设计

服务端的设计是通过OtdrServer 类实现的。

OtdrServer 类是实现交互通信的重要模块,主要通过以下方法实现:①构造函数。指定监听哪个端口。②accept。开始接受客户端的连接。有客户端连上时就返回一个Socket对象,若要持续监听连接,则在循环语句中调用该函数。

OtdrServer 类UI 设计与功能实现如图5 所示。

4 结束语

手机客户端与OTDR 服务端建立连接后,通过手机能远程设置OTDR 的测试参数并控制OTDR 进行测试,当OTDR接收到测试指令后进行测试,并将测试结果返回到手机客户端,手机客户端通过绘制并分析OTDR 测试数据及时了解光纤网络的状态。这套软件系统能够为用户的光纤运维工作带来便利。

图5 OtdrServer 类UI 设计与功能实现

猜你喜欢

服务端列表光纤
扩列吧
苹果专利可采用光纤输出灯光并传输数据将光纤隐藏于车辆部件内
长飞光纤:中国光通信A+H第一股
光纤与光纤传感器
多人联机对战游戏的设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
列表法解分式方程问题探索
列表画树状图各有所长
2011年《小说月刊》转载列表