Android水平位移即时监测终端软件的实现

2019-04-03 01:57欧阳晨皓黄永帅刘冠兰史俊波
测绘通报 2019年3期
关键词:服务端明文蓝牙

欧阳晨皓,黄永帅,刘冠兰,2,史俊波,2

(1. 武汉大学测绘学院,湖北 武汉 430079; 2. 精密工程与工业测量国家测绘地理信息局重点实验室,湖北 武汉 430079)

水平位移形变监测为工程安全提供依据,是轨道交通工程中十分重要的一环。随着移动互联技术和智能终端的发展及广泛应用,水平位移形变监测正向高度自动化方向发展[1]。在自动化过程中,需考虑监测的即时性和数据安全问题。传统水平位移监测数据采集中,监测结果反馈周期长,监测即时性差;原始记录、最终结果均需要经过监测人员干预,数据记录原始性、保密性、安全性差[2-6]。

针对上述问题,本文基于轨道交通工程实际要求,开发实现了一套基于Android设备的水平位移即时监测终端软件,利用Android设备的蓝牙功能、网络通信功能分别与测量仪器、后台服务器通信,实时获取仪器测量信息及服务端测量信息,实时计算、预警,保证了监测的即时性。软件中嵌入DES(data encryption algorithm)对称加密算法[7-9],监测人员无法干预监测数据记录、计算过程,从而保证了监测过程中“数据不落地”,完善了安全机制。本文首先介绍软件架构、功能特性,然后描述Android设备与测量仪器之间蓝牙通信开发及数据加密流程,最后详细讲述各模块功能,给出相关结论。

1 终端软件框架及功能特性

监测软件终端依据数据通信链路不同分为两部分,分别为Android设备与测量仪器、Android设备与服务端通信链路。两条通信链路协作使监测具备即时性。软件对监测记录、成果进行加密,保证了数据安全。图1为终端软件框架。

1.1 Android设备与测量仪器通信链路

为了克服人工记录、计算测量仪器数据导致的记录准确性、处理实时性差的问题,同时考虑传输距离、硬件成本,软件采用蓝牙作为测量仪器与Android设备的通信媒介。对于无内置蓝牙的测量仪器,可借助仪器自带的RS232数据接口,外接串口蓝牙适配器。

Android设备通过蓝牙向测量仪器发送命令,获取仪器信息、配置度盘、控制仪器观测,仪器解析命令后将请求的信息、配置结果、观测结果返回给Android设备。获得仪器观测数据后,软件将自动记录并实时计算观测数据,与测量规范比对,若闭合差等检核量超限将提示用户重测测点/测回。最后,软件将最终测量结果与往期数据比对,若变形超过阈值,将立即预警提示用户。监测作业结束后,软件将对原始记录、结果进行加密,将所有成果组织成报表。图2为链路工作流程。

1.2 Android设备与服务端通信链路

Android设备与服务端通过互联网通信,数据交流遵循JSON(JavaScript object notation)格式。根据作业步骤,可将该通信链路的交互内容分为两种:一是在监测准备阶段,软件需要向服务器请求测站属性信息,也可通过软件在服务端新建测站信息,包括测站所属线路、工点、测站名称、监测点坐标、监测点变形阈值。二是在监测完成阶段,软件将监测获取的原始记录、计算结果、监测点变形量发送给服务端,服务端获取监测结果后将其保存至数据库。

另外软件具备数据同步功能,可根据用户给定的时间范围,将对应时段内监测记录下载至Android设备,供用户查看原始记录、监测点变形曲线等。图3为链路工作流程。

2 Android蓝牙通信开发及DES数据加密流程

为保证监测数据不落地,首先利用蓝牙通信将原始数据从全站仪串口传输至Android设备,而后在Android设备上利用“DES”算法对原始记录、监测成果进行加密。该过程中,用户无法对原始数据进行编辑,保证了数据的原始性、准确性、安全性。

2.1 Android蓝牙通信开发

蓝牙短距离无线通信技术发展至今大致有5个版本,其中蓝牙1.x~3.x为传统蓝牙(bluetooth BR/EDR),4.x~5.x为新一代的低功耗蓝牙(bluetooth low energy)[10-11]。本文系统在开发初期考虑较低版本,全站仪均需要外接串口蓝牙适配器,而市面上带RS232串口转接头的蓝牙适配器产品使用的蓝牙标准大多为传统蓝牙标准;另外新一代测量机器人,其内置蓝牙标准大多也为传统蓝牙,因此本文系统采用了传统蓝牙标准。

软件基于Android Studio 2.2平台开发,使用的编程语言为JAVA。Android设备的传统蓝牙开发分两步:蓝牙外设搜索、连接,数据传输[12]。图4为Android蓝牙开发流程。

(1) Android蓝牙外设搜索、连接。Android环境中的BluetoothAdapter类库包含了蓝牙状态查询、扫描、连接等操作函数。利用startDiscovery函数开始扫描蓝牙外设,该函数可获取附件所有蓝牙外设的MAC(介质访问控制)地址、名称、RSSI(接收信号强度)等信息。搜索到目标蓝牙后,向目标蓝牙发起配对请求,完成配对。

配对完成后,即可令设备发起连接请求。Android设备与蓝牙外设连接时,需要对应通用唯一识别码(UUID)开启串行线性仿真协议(RFCOMM)信道,使用的函数为createRfcommSocketToService Record。信道开启成功后,即可利用BluetoothSocket对象进行套接字通信。

(2) 蓝牙数据传输。Android设备与外设蓝牙连接完成后,即可利用getInputStream、getOutputStream函数从蓝牙套接字对象获取输入、输出流。开启数据监听线程,利用输入流获取仪器端外设蓝牙发来的数据;当Android设备向仪器发送命令时,则利用输出流发送数据,这样便实现了Android设备与测量仪器双向通信功能。

软件兼容拓普康、徕卡两种品牌全站仪。拓普康全站仪串口命令为SOKKIA/TOPCON格式,徕卡全站仪串口命令有GSI、GeoCOM两种格式,使用的命令主要包括水平角置盘、开始观测、停止观测、角度/斜距信息获取[13-15]。

2.2 DES数据加密流程

DES是一种可逆的对称分组加密算法,该算法在POS、ATM、IC卡等方面运用广泛。加密过程大致包含3步:初始置换、子密钥生成、16轮迭代运算及最终置换[7,16]。图5为DES加密算法流程。

(1) 初始置换。置换的目的在于打乱原来64位明文、密钥的顺序,并依照初始置换表进行排列。

(2) 子密钥生成。将置换后始密钥分为左右两半KL0及KR0,分别对KL0和KR0进行循环左移得到KL1和KR1,之后将得到的KL1和KR1合并再次按照新的置换表进行排列得到Key1,作为下一轮迭代的输入。按照上述方法迭代16次,即得到16个子密钥。

(3) 16轮迭代运算及最终置换。初始置换之后的明文分为左明文L0和右明文R0,长度均为32位。首先“扩展置换”将右明文扩展为48位,“密钥变换”将本轮迭代的子密钥压缩为48位后,令两者进行异或运算,得到的运算结果经过“S盒置换”、“P盒置换”两步得到新的32位变量,将该32位变量与左明文进行异或运算得到新的右明文R1,再将旧的右明文R0作为新的左明文L1,即得到新一轮迭代的输入。按照上述过程进行16轮迭代,最后一轮迭代生成的左右明文不交替。按照最终置换规则排列16轮迭代后的明文,即得到最终加密结果。DES解密与加密过程类似,不同之处在于子密钥使用顺序相反。

3 终端软件功能模块

软件依据轨道交通工程施工现场水平位移监测需求,共设计实现了7个功能模块:用户注册/验证、测站管理、监测任务新建/加载、数据采集/实时预警、成果报表、数据同步、数据恢复。图6为软件模块功能示意图。以下对关键模块进行展开描述。

3.1 数据采集及实时预警

图7为监测数据采集及实时预警模块操作界面。该模块用户通过点击“获取数据”即可向全站仪发出观测命令,等待仪器观测完成、反馈观测数据后,软件将立即进行数据解析、显示。一旦观测数据累积到可以计算,软件立即对可检核的误差指标进行计算,包括平距较差、半测回归零差、一测回内2c互差、同方向各测回较差等,一旦指标超限,软件立刻提示用户重测或加测。每一测回完成后都将计算一次测点坐标,与上期坐标对比,计算变形量、变形速率,若指标超限,将立刻向用户发出预警,帮助监测人员排查问题,排除安全隐患。考虑观测人员在操作仪器时可能出现目标对准错位等失误,软件允许用户对当前测点、测回或全部观测任务重新观测。另外软件允许用户在该界面重新选择使用的仪器、串口命令格式及重新连接蓝牙。

3.2 成果报表

图8为成果报表功能模块操作界面及成果报表展示效果。用户完成监测作业后即可在该模块查看测站原始数据、计算结果、形变信息。在确认记录无误后即可上传至服务器,服务器在接收到记录后立即对各测点信息进行更新,对于水平位移超限的测点将立即在平台风险系统发布预警信息,作业人员对预警点处理、反馈后再消除预警。该模块使得监测内业实现电子化、自动化,有效提高了作业效率。

3.3 数据同步

图9为数据同步模块操作界面及历史数据、变形曲线显示效果。与任务新建模块类似,用户从服务器获取线路、工点信息后,软件将自动加载用户选择工点下的测站、测点,用户设置监测开始、截止日期后,即可从服务端同步到相应时段内的监测记录及成果。用户选择测站同步记录后即可查看监测原始记录,选择测点同步记录后即可查看测点具体形变量及变形曲线。该模块方便了监测人员对施工现场监测点形变信息进行分析,另外也使得监测人员以外用户可快速调取施工现场形变信息,促进参与工程施工的多方人员信息互通。

4 结 语

随着移动互联技术和智能终端的发展及在工程中的广泛应用,轨道交通工程监测作业正向全自动化靠拢,在自动化过程中,监测的即时性和数据的安全性显得更加重要。

针对监测过程的即时性和数据的安全性,本文设计实现了一套基于Android设备的水平位移即时监测终端软件。测量人员在作业阶段能够实时处理规范指标超限问题,及时排查、应对仪器操作问题,实时获取预警信息。监测数据全部实时记录、计算并加密,保证了数据的原始性、准确性。与服务端互联方便了用户及时对监测点形变进行分析,促进了施工信息互通。软件的预警机制联合服务端的风险系统帮助监测人员对事故预知,完善了施工安全机制。

目前本文水平位移监测软件已在某轨道交通工程中应用,实际效果表明,该监测终端软件将施工现场测量仪器观测信息与服务端工程信息综合在一起,提升了监测作业效率,确保了监测数据不落地,有效保证了监测即时性和数据安全性。

猜你喜欢
服务端明文蓝牙
蓝牙音箱的直线之美
帮你轻松找到AirPods的神奇工具
多人联机对战游戏的设计与实现
奇怪的处罚
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
奇怪的处罚
奇怪的处罚
蓝牙4.0落地加速