基于B4A平台的造船测量APP开发与应用
2017-09-03彭娟
彭 娟
(中船第九设计研究院工程有限公司, 上海 200063)
基于B4A平台的造船测量APP开发与应用
彭 娟
(中船第九设计研究院工程有限公司, 上海 200063)
基于B4A开发的安卓手机测量APP,运用于造船分段现场测量与分析,其在操作便携性、测量数据传输效率等方面有了很大的提高。论述使用手持式智能终端(Personal Digital Assistant, PDA)进行测量的弊端,提出基于B4A平台的快速开发模式,开发安卓APP替代PDA软件,节省PDA硬件成本,增加蓝牙无线通信、共享测量数据等功能,使得现场测量更便捷。
造船测量;B4A;蓝牙;APP
1 造船测量系统简介
随着韩国造船技术的学习和推广,造船测量管理理念深化,基于全站仪的造船测量系统逐步发展起来。在手持式智能终端(Personal Digital Assistant, PDA)中开发并运行应用程序,用数据线连接并控制全站仪进行测量,接收存储测量数据后对数据进行简单的计算分析,这一直是船厂精度控制数据采集的主要方式,如图1所示。
图1 PDA-数据线-全站仪造船测量系统
精度测量系统主要原理是:利用全站仪精确测定船舶分段上若干特征点的三维坐标,应用PDA软件将这些特征点的三维坐标用特定的空间直角坐标系来组织,实时计算得到这些特征点的空间相对位置,并运用多种数学运算得到这些特征点、线、面间的各种几何量值。软件具有船体分段形位尺寸检测时需要的各种功能,如:平面度、直线度、夹角、距离、空间圆圆心坐标等;软件可对测量坐标系进行重新构建或变换;借助于双点标靶工具可以快速测量分段上的隐蔽点;通过移站测量功能获取不可见面、点位信息;通过设计测量功能得到分段实际测量点与设计模型理论点的偏差。
虽然目前现场测量体系已比较成熟,但仍然存在诸多问题:
(1) PDA硬件问题。造船PDA多为工业级硬件,较为笨重,测量人员长时间手持工作,加重工作负担,对工作效率和工作质量会产生一定的影响。PDA主机成本较普通手机高出数倍,船厂采购成本较高。PDA通信线缆多为易耗品,经常更换,增加成本,延误生产进度。
(2) 数据共享问题。传统全站仪测量完成的数据保存在PDA中,需要使用数据线物理连接电脑的方式从加工现场将测量数据导出给分析人员,耗费时间和人力,尤其有些单位需要跨厂区分析测量结果,传统的数据共享手段延缓了分段精度的分析进度,因此急需一种实时传输数据及分享分析结果的手段。
为解决上述问题,提出将PDA程序移植至安卓手机APP中,并采用蓝牙无线连接全站仪进行测量的方式进行精度测量与数据通信,如图2所示。
图2 安卓APP-全站仪造船测量系统
2 B4A开发平台简介
B4A(Basic4Android)是Anywhere Software公司推出的一个以安卓设备为目标的简单而强大的开发环境,如图3所示。B4A开发语言类似于Visual Basic语言但加入了更多面向对象的支持。B4A编译的应用程序是原生的安卓应用程序,没有任何额外的运行库和依赖。它与其他集成开发环境(Integrated Development Environment, IDE)不同,B4A是100%专注于安卓开发的,从而避免了Eclipse(开放源代码的、基于Java的可扩展开发平台)需要大量代码以及难以理解的问题。B4A包含了一个强大的内置图形界面设计器,支持多种屏幕和方向,不需要编写XML。同时,B4A包含一整套丰富的库文件,并支持安卓的核心特性,更易于开发高级应用程序。
图3 B4A平台开发界面
B4A程序包含窗体模块(Activity Module)、类模块(Class Module)、代码模块(Code Module)、服务模块(Service Module)等4种模块类型,在需要时可添加相应类型的模块。B4A提供强大的设计器,添加窗体模块一般对应相应的布局文件(Layout),可添加按钮、文本框、图片框、列表框等常用控件,并可调整控件的属性,设计器实现所见即所得的操作,可快速设计出需要的功能界面,如图4所示。
图4 B4A平台图形界面设计器
3 造船测量APP开发
3.1 基本界面开发
造船测量APP程序由数十个功能界面组成,每个界面都基于以下步骤建立。
(1) 新建窗体模块。使用工程菜单下的创建窗体模块功能创建一个新的窗体后台代码文件。
(2) 创建窗体布局和添加控件。在窗体设计器中新建布局文件,添加需要的按钮、文本框等控件。
(3) 快速生成Dim语句和控件事件。在窗体设计器中使用自动生成功能,可快速在窗体后台代码文件中生成相应控件的定义和控件的事件语句,方便进行后续代码层开发。
3.2 蓝牙通信
蓝牙通信是造船测量APP开发中的难点,使用B4A开发造船测量APP中蓝牙通信功能按如下步骤进行。
(1) 定义蓝牙通信对象。Dim Serial1 As Serial 定义通信对象,使用蓝牙的虚拟串口来通信。
(2) 打开蓝牙设置界面,扫描蓝牙设备并配对:
Dim bleIntent As Intent
bleIntent.Initialize("android.settings.BLUETOOTH_SETTINGS", "")
StartActivity(bleIntent)。
(3) 获取配对设备列表:
Dim PairedDevices As Map
PairedDevices = Serial1.GetPairedDevices '显示全部已配对蓝牙设备
Dim l As List
l.Initialize
For i = 0 To PairedDevices.Size - 1
l.Add(PairedDevices.GetKeyAt(i))
Next。
(4) 连接到设备:
Dim Res As Int
Res = InputList(l, "Choose device", -1) '显示配对蓝牙设备列表
If Res <> DialogResponse.CANCEL Then
Serial1.Connect(PairedDevices.Get(l.Get(Res)))
End If。
3.3 全站仪通信
基于蓝牙通信功能,发送测距指令,与全站仪进行蓝牙无线传输数据。
(1) 定义串口缓冲区读写对象和定时器,并初始化:
Dim aStreams As AsyncStreams
Dim Timer1 As Timer
Timer1.Initialize("Timer1", 1 000)
aStreams.Initialize (Serial1.InputStream ,Serial1.OutputStream ,"AStreams")。
(2) 发送测距指令,驱动全站仪测量:
Dim buffer() As Byte
Dim cmd As String
Select TSFlag '全站仪类型
Case 0 '索佳
cmd=Chr(17)
Case 1 '徕卡GSI
cmd="GET/M/WI21/WI22/WI31" & Chr(13) & Chr(10)
Case 2 '徕卡Geocom
cmd="%R1Q,17017:2" & Chr(13) & Chr(10)
Case 3 '拓普康Topcon
cmd="C067" & Chr(3)
End Select
aStreams.Write(cmd.GetBytes("UTF8"))'写入内容。
(3) 获取全站仪返回数据并解析:
ResBuffer=ResBuffer & BytesToString(Buffer, 0, Buffer.Length, "UTF8")
tempPt= comm.Process_ReturnData(ResBuffer))'处理全站仪返回数据。
3.4 功能开发
造船测量APP软件具有分析和变换的功能,本文将PDA软件层C#代码全部转换为B4A代码,最终完成了造船测量APP的开发。
4 造船测量APP应用实例
江苏扬子江船业集团公司承建的10 000 TEU集装箱船宽近50 m,长约330 m,排水量达到12×104t,全船分段划分为334个分段/部位,在N1169号船的分段生产过程中采用上文开发的安卓版造船测量APP,实现了分段快速测量、实时分享测量数据的应用。
4.1 现场测量
根据理论模型上标定的点位,在现场使用安卓版造船测量APP连接全站仪测量特征点位数据。
(1) 在蓝牙界面选择CX-102(索佳全站仪型号),连接成功后可进行测量。
(2) 在测量界面,可选择1点标靶、2点标靶、3点圆心等3种测量方式测量分段特征点,如图5所示。
(3) 测量完毕后,在主界面显示所有特征点的测量坐标列表,也可继续进行点位变换、分析计算等操作。
(4) 最后通过文件分享功能,将测量文件通过邮件或社交软件分享给业内人员进行下一步的分析,如图6所示。
图5 蓝牙连接全站仪及点位测量界面
4.2 业内分析
(1) 将现场安卓版造船测量APP测量分享的文件导入到三维软件中。
图6 点位列表及测量文件共享界面
(2) 使用3点对应功能将测量点与理论点进行匹配对应。
(3) 根据分段结构特点与分析要求,选取适当的拟合点进行精密配对,获取特征点精度偏差值,如图7所示。
(4) 使用报表编辑功能,自动生成当前分段精度数据结果的报表,如图8所示。
图7 理论点测量点匹配分析
图8 分析结果报表输出
4.3 与PDA模式测量对比结果
由于造船测量APP与PDA软件仅仅是软件平台,数据传输和通信方式有区分,获取点位坐标精度取决于全站仪的测量精度,造船测量APP完全满足分段测量精度要求。扬子江船厂使用造船测量APP进行分段点位数据采集,取代了使用PDA的测量方法,提升了测量效率。
5 结 语
本文在论述使用PDA进行测量的弊端后,提出基于B4A平台快速开发模式,开发安卓版精度测量APP替代PDA软件,节省了PDA硬件成本,同时在满足现场原有功能需求的基础上,增加了蓝牙无线通信、共享测量数据功能,使得现场测量更便捷。该精度测量APP及精度分析系统同样适用于海洋工程、海洋平台建造精度控制过程,具有较高的推广意义。此后,将通过继续深入的研究,充分发掘全站仪及精度测量分析系统潜在的功能,在造船、海洋工程领域精度管理新阶段发挥更大的作用。
[1] 王孟孟,朱琦,安灵斌. 开发先进造船精度管理软件系统——SP.NET软件系统简介[J]. 造船技术,2010(3):37-39.
[2] 孔宁,陈秀龙,安灵斌. 智能全站仪机载造船测量系统应用[C]//中国造船工程学会CAD/CAM学术交流会议,2013.
[3] 穆明. 基于Basic4Android开发平台的手机控制系统[J]. 单片机与嵌入式系统应用, 2016(3):54-56.
Application of Shipbuilding Measurement App Developed Based on B4A Platform
PENG Juan
(China Shipbuilding NDRI Engineering Co., Ltd., Shanghai 200063, China)
An Android APP of shipbuilding measurement is developed based on B4A which is applied in the field of shipbuilding block measurement and analysis. The operation of portability and date transmission process is greatly improved. A rapid development model based on BA4 platform is proposed according to discussing the disadvantage of measuring of the Personal Digital Assistant (PDA) and an Android APP is developed instead of PDA, which saves the cost and meets the functional requirement. With the function of Bluetooth wireless communication and date sharing, the measurement will be more convenient.
shipbuilding measurement; B4A; Bluetooth; APP
彭 娟(1982-),女,工程师,研究方向为船厂信息化建设
1000-3878(2017)04-0082-05
U671
A