基于Android平台的土木工程地质测量电子手簿①
2019-01-18李乾坤胡珂立吴瑞潜
范 恩, 李乾坤, 胡珂立, 吴瑞潜
1(深圳大学 信息工程学院, 深圳 518060)
2(绍兴文理学院 机械与电气工程学院, 绍兴 312000)
3(绍兴文理学院 土木工程学院, 绍兴 312000)
近年来, 由于智能手机集成无线连接、多传感器传信息融合以及智能信息处理等技术, 它们被广泛地应用于诸多领域[1-3]. 考虑到智能手机系统具有开放的操作系统、人性化的用户界面、高性能的计算能力以及良好的扩展性, 基于智能手机系统的移动应用软件开发也逐渐受到许多研究人员和软件工程师的关注[4,5]. 尽管这类移动应用软件被大量开发和广泛使用, 但是专业的移动应用软件依然不足, 其市场需求量还在不断增加.
在野外地质勘测工作中, 使用记录纸记录测量数据, 具有一定的局限性, 不仅工作量大、容易出错, 而且携带测量仪器也非常不方便, 因而极大地限制了土木工程师野外勘测的工作效率[6-8]. 例如, 在岩体结构产状信息的测量过程中, 需要对结构面的倾向、倾角等参数进行测量, 然而目前仍然采用电子罗盘作为主要的测量工具. 考虑到智能手机先进的集成技术以及便携优势, 基于智能手机的移动应用软件为自动记录野外地质测量数据提供了一种很好的解决方案[2]. 针对数据采集、数据传输、数据存储和数据处理的整个过程, 均可以采用移动应用软件来实现. 其中, 测量数据的自动采集和存储, 主要包括数据的预处理、核检与查询, 实现这些功能的移动应用软件通常被称为电子手簿[7,9,10].
为了处理地质勘测数据, 中国科学院地质与地球物理研究所开发出一套智能数据助手 (Intelligent Digital Assistant, IDA)系统. 它主要由手机端APP和PC端软件组成. 为了保证系统功能的准确性, IDA系统针对智能手机的底层感应器进行适当修改. 然而由于IDA系统对智能手机机型有一定要求, 其应用范围也受到一定限制. 类似地, 清华大学水利电工系开发出一款地质助手(GeoHelper) APP系统[11]. 虽然GeoHelper系统能够实现基础的产状测量功能, 并增加了绘图功能和岩石特征查询功能, 但是在绘图过程中仍然需要手动输入数据, 同样也增加了用户记录数据的负担. 因此, 为了让地质勘测过程变得更加快捷和高效, 要求设计的APP系统在自动记录数据的同时, 不仅能获取精准的测量数据, 而且能够将这些数据及时保存. 此外, 还需要考虑土木工程师野外勘测的习惯, 以方便工程师后期对数据进一步分析和处理.
考虑到智能手机Android系统的快速发展, 2003年Android系统开始研发, 2007年Android 1.0上线,2018年Android P测试版已经发布, 经历短短十五年的发展, 目前Anroid系统在智能手机市场的占有率高达80%以上[12]. 为此, 本文采用Android Studio作为开发工具, 开发一款基于Android平台的土木工程地质测量电子手簿APP系统. 该系统首先利用SQLite数据库对测量数据进行保存, 然后集成百度地图作为工点定位工具, 最后采用Socket技术实现测试设备与电子手簿APP系统的数据交互. 在具体的开发过程中, 结合野外地质勘测环境的特点以及土木工程师的工作习惯, 进一步优化该APP系统应用界面的布局, 并不断调试软件操作的合理性, 使系统功能尽量贴近用户的操作习惯, 从而提高土木工程师野外地质勘测的工作效率. 与传统的地质测量电子手簿相比,本文开发的电子手薄APP系统在实现自动测量和自动记录相关测试数据的基础上, 利用局域网实现测试设备与APP系统的数据交互, 从而进一步降低测试过程中人工读取数据的负担. 特别是在电荷载实验中, 由于需要对不规则石块进行压力测试, 通过局域网传输测量数据, 较大地降低了石块碎裂时可能产生的风险.
1 系统的设计思想
为了减轻土木工程师在野外勘测工作中记录数据的负担, 本文开发的电子手簿系统通过调用智能手机所集成的先进技术, 能够实现多模测量数据的自动录入. 为此, 本文以数据记录为核心功能, 开发一款基于Android平台的土木工程地质测量电子手簿APP系统.其主要功能包括: (1)利用SQLite数据库保存野外采集的数据; (2)利用百度地图作为定位工具, 获取工点的定位信息; (3)利用陀螺仪传感器, 采集岩体结构面倾向和倾角信息; (4)利用智能手机的拍照、录音等功能对岩体结构产状信息进行数据的多样化采集; (5)利用Socket技术实现硬件测量设备与手机电子手簿APP系统的数据交互, 辅助对岩石样本的电荷载实验.在具体开发过程中, 同时实现对象测量和数据记录, 而且不需要进行额外的手工记录工作, 极大地方便工程师后续对存储的数据进一步分析和处理.
2 系统的开发与实现
2.1 系统组成
如图1所示, 系统由5个模块组成: 项目管理、工点记录、定位浏览、影音记录以及电子罗盘. 其中, 项目工程记录对应项目管理模块, 辅助的测量工具主要包括地图定位模块和电子罗盘模块. 由于Android Studio作为谷歌官方推荐的开发工具, 相比Eclipse开发平台, 它具有更高的开发效率[13]. 为此, 本系统使用Android Studio作为开发工具, 同时采用Java作为主要开发语言. 系统开发以测量数据的自动录入为核心, 为数据采集、数据传输、数据存储和数据处理等操作提供一系列的辅助工具, 使野外地质勘测数据的记录或处理过程变得更加方便、准确和高效. 此外, 为了做到软硬件结合, 测试过程中只需要用户少量的确认操作就可以获得一组实验数据.
图1 系统功能架构
2.2 系统的数据库设计
数据库设计在系统开发过程中尤为重要, 其合理性将直接影响整个程序的开发进度. 图2给出了系统的数据库模型. 其中, c_project为工程表, 所记录结构面产状的测量信息都会对应一个项目工程, 可以通过添加该表单来记录工点结构面信息属于哪个表单. 在实际中, 每个工程项目均由一位工程师负责数据的记录和管理, 每个项目都需要保存记录人的基本信息. 因此,在表中, 通过姓名保存对应工程师的信息. 另外, 工点也是项目中主要记录信息之一, 是制定数据库时必需的表单. 每个工点表都详细地记录工作地点的位置、地质结构等信息. 侧线是以一个工点为基点, 延伸出若干条侧线信息. 这些侧线都保存了各自的倾向与倾角信息.
在数据存储方面, 本系统将每个项目单独存储为一个数据库文件, 并将项目名称作为数据库文件名. 在单个项目中可能存在多地点工程, 每个工程信息存储在表c_project中. 这里暂时存储工程名称、负责人id以及工程开始时间等信息. 工程的负责人id指向人员表, 在一个工程中会有许多工程师负责工程的不同的业务. 表c_person记录工程中每个人员的名字信息;c_point作为数据记录的一个重要环节, 记录项目的工点信息. 其中, 工点信息包含具体的工作地点(经纬度),以及该地点的地质环境信息. 由于一个工点可以延伸多个侧线信息, 根据侧线与工点的关系, 可以记录侧线与工点的对应关系以及侧线的倾向和倾角, 同时在侧线表l_record中生成侧线的相关信息. 在每条侧线上,可能存在多个结构面信息, 根据该结构面信息, 可以在结构面表c_order中生成它的基本信息.
图2 系统的数据库设计
除上述这些必要的数据外, 由于采用智能手机记录测量数据, 还可以为工程和工点添加音频格式和图片格式的数据资料, 并保存在本地文件中. 根据文件的路径、所属工程和工点, 自动在影音表 multi_mechanices中添加对应的信息记录.
2.3 系统功能实现
系统采用Android Studio软件进行开发, 使用Java语言进行操作逻辑编写, 利用可扩展标记语言(XML), 编辑界面布局, 采用SQLite数据库实现移动端数据存储; 同时, 集成百度地图获取工点的定位信息, 并结合智能手采集的相关信息, 经过处理后呈现在电子罗盘界面 上; 然后根据数据和界面显示信息更新显示指向, 完成对指针的旋转, 从而显示正确的指向. 通过电子罗盘可以减少物理罗盘操作过程中繁琐的步骤, 而且读数更加方便、快捷.
2.3.1 工点记录
工点记录模块是对工点的一些基本信息进行保存,如图3所示. 其中, 日期、记录人以及编号是在根据使用者和系统当前时间由系统自动生成; 定位信息在点击R后, 跳转界面获取定位信息, 并将数据返回到当前界面的对应信息栏; 类似地, 产状也是通过点击R后,跳转界面获取到产状信息后, 提交返回到当前界面指定的信息栏中. 当完成所有的信息录入后, 点击保存,实现将工点信息自动录入到数据库.
2.3.2 项目管理
项目管理的核心是实现对SQLite数据库db文件的操作, 如图 4 所示. 这里, 一个文件代表一个项目, 项目的新建和删除都是通过Android系统对文件的操作完成. 由于一个项目可以包含多个工程, 因此在数据库文件中可以通过工程新建一个表结构来实现信息的保存.
2.3.3 电子罗盘
电子罗盘是基于手机中陀螺仪传感器实现的, 其设计界面如图5所示. 首先获取陀螺仪采集的相关信息, 经过处理后呈现在智能手机显示界面上, 再通过数据和界面显示信息更新显示指向, 完成对指针的旋转,从而显示正确的指向.
2.3.4 电荷载实验
电荷载实验需要采用WiFi网络与外部测试设备连接, 从而实现数据交互. 其中, 智能手机作为客户端,通过Socket连接测试设备的内置WiFi模块, 同时建立socketServer服务, 最后通过传输协议实现外部测试设备与智能手机的数据通信. 相关传输指令包括开始实验、数据字段和实验结束等, 在电荷载试验界面中分别对应不同的按钮, 如图6所示.
图3 工点记录界面
图4 项目管理界面
3 系统测试
3.1 项目管理测试
新建项目是新建一个以项目名为文件名的数据库db文件, 并修改当前工作项目为新建项目, 后续操作的数据库文件为选中的数据库文件. 在工程管理中, 可以通过预先定义的字段记录数据, 从而规范数据类型, 保证记录数据的格式统一. 然后, 将记录数据的SQL文件保存在移动端, 为后续数据交互提供更多的可能性. 如文件复制, SQL文件可以在多类平台上进行查看和修改.
具体测试流程如下: 首先, 在项目管理界面, 单击新建工程, 弹出对话框, 输入项目的名称; 然后, 在指定文件目录下创建同名的数据库文件, 为该项目的数据存储提供一个数据库容器; 同时, 新建项目后, 系统会自动刷新上面的项目目录, 重新在指定文件夹下, 遍历所有的项目文件, 并更新界面数据信息; 选中新建的项目, 作为当前运行的测试项目. 测试结果如图7和表1.
图5 电子陀螺仪测试
3.2 工点记录测试
工点记录通过利用手机中自带的传感器等工具实现土木工程勘测数据的实时记录, 能够将记录过程的误差降到最低, 从而为后续数据分析做好准备. 工点记录界面会根据界面启动时收到的工点id来判断是新增工点信息还是修改工点信息. 如果需要修改工点信息, 系统会获取该工点信息, 自动填充到工点界面相应控件. 工点添加属于对信息的录入, 在录入过程中会调用百度地图获取的定位信息和电子罗盘获取的倾向倾角信息, 最后一起回传给数据记录界面, 并添加到对应的输入框中.
图6 电荷载界面
图7 新建项目测试结果
具体测试流程如下: 首先, 在主界面单击工点记录,先判断用户是否选择正在运行的项目; 选择确定后, 自动在项目数据库下查找该项目的所有工程. 如果存在多个工程, 在界面左上角会出现切换工程的下拉列表(默认第一个). 选择工程后, 更新界面中的工点信息, 此时用户可以编辑工程中的工点信息. 单击新增, 跳转到工点信息输入界面, 然后输入工点的数据信息, 程序在添加过程中会自动验证数据. 如果数据不符合规定, 会提示用户信息输入有误, 从而保证数据存储的规范性和格式统一. 相关测试结果如图8所示.
表8 测试记录数据
图8 工点记录测试结果
3.3 电荷载实验测试
如图9所示, 电荷载实验是与硬件设备协同工作的一部分, 需要连接到硬件的WiFi模块. 选择采用WiFi传输数据, 主要因为其传输速率远大于蓝牙的传输速率. WiFi连接成功后, 实验立刻开始, 系统会以硬件为服务端、智能手机为客户端建立一个Socket连接进行数据传输. 在使用测试设备对岩石施加压力的测试过程中, 测量压力值会周期地传输到手机端, 系统收到数据后会对数据进行自动解析、提取出压力数据并绘制折线图, 同时显示在电荷载测试界面上, 最后将数据保存到数据库中.
具体测试流程如下:
(1) 开启设备电源: 岩石力学设备开启后, 会自动启动WiFi模块, 连接手机APP.
(2) 单击“工点记录”: 新建工点测试项目文件, 进入测试界面.
(3) 单击“连接”: 创建手机端与设备端的Socket连接(如果连接成功, 界面会自动提示用户).
(4) 单击“开始”: 设备自动进行初始化校准, 同时开始测试, 手机端收到测试数据后, 会根据传输协议自动解析数据, 并绘制曲线图, 同时记录数据, 如图10所示.
(5) 单击“保存”: 测试结束时, 手机端可以保存测试数据, 并更新岩石力学测试数据列表, 同时关闭测试界面.
在测试过程中, 如果测试样本碎裂, 则实验成功,发送结束指令到手机端; 否则实验失败, 单击开始, 重新校准仪器, 手机端自动清除上次数据, 并重复步骤(4).
4 结语
在实际野外地质勘测中, 使用记录纸记录测量数据具有一定的局限性. 为此, 针对野外地质勘测中需要记录大量数据的实际需求, 本文采用Java语言开发一款基于Android平台的地质测量电子手簿APP系统.该系统已成功应用于野外地质勘测工作中, 同时获得用户的广泛认可. 该电子手簿利用SQLite数据库保存项目获取的相关数据, 集成百度地图采集工点的定位信息, 借助陀螺仪测量岩石面的倾向和倾角, 最后采用Socket技术连接硬件设备, 同时获取岩体电荷载的实验数据. 通过使用本软件可以提高野外地质勘测工作的效率, 减轻测量工作的负担, 同时测量数据的电子文档化也便于后续数据的分析与处理.
图9 岩石力学实测实验
图10 手机端测试结果
相对传统的土木工程地质测量电子手簿APP系统, 本系统在实现自动记录测量数据的基础上, 进一步将软硬件结合, 通过局域网实现测试设备与系统的数据交互, 从而使数据的获取过程变得更加自动化. 此外,在数据传输的同时, 系统能够实现自动记录数据, 从而减少人工记录过程所产生的误差. 因此, 本文所开发的电子手簿在实际野外地质勘测工作中具有一定的使用价值和借鉴意义. 在系统开发后期, 还将根据已记录的结构面产状信息, 在APP中显示对应的施密特网图,以满足地质勘测工作中更多的功能需求.