APP下载

GTS—720全站仪坐标测量程序开发

2015-05-04孙艳崇

科技创新与应用 2015年13期
关键词:程序开发全站仪

摘 要:WinCE嵌入式操作系统的全站仪应用越来越广泛,这样的全站仪具有可二次开发的功能,利用嵌入式开发工具可以开发出满足用户特定要求的程序,文章以GTS-720托普康全站仪为例,介绍了坐标测量程序开发的要点。

关键词:全站仪;坐标测量;程序开发

1 概述

GTS-720是拓普康公司开发的智能全站仪,其软件操作系统是内嵌的WinCE,操作界面同台式机的Windows系统界面类似,使用户对其二次开发更容易。对智能全站仪开发各种放样系统时,需要自动获得全站仪测定的角度、距离及坐标数据,所以用户需要从底层开发坐标测量程序,然后再结合各种算法实现各种放样系统。如果采用其自带的坐标测量程序,由于无法实现用户同全站仪交互操作,就只能实现基本计算的功能。

对GTS-720全站仪从底层开发坐标测量程序,必须有GTS-720sdk,即此全站仪专用的操作指令,该指令常用的基本函数如下:

(1)fpTsSetStnCoord:输入仪器测站点坐标;(2)fpTsSetInstHeight:输入仪高和棱镜高;(3)fpTsSetHangle:输入全站仪定向边方位角;(4)fpTsRequest:设置全站仪角度和距离测量模式;(5)fpTsStopMeas:设置全站仪是否停止距离测量;(6)fpTsReadMeas:读取全站仪观测返回的字符串。

2 坐标测量程序开发

2.1 程序开发的整体思路

(1)程序开发应该首先创建一个空白的“TXT”文本文件,该文件的保存路径和文件名都必须采用全局的程序变量,因为坐标测量得到的数据是在其他类中完成的,文件保存时需要调用该文件的全局变量名称。(2)全站仪进行坐标测量之前要输入仪器点的坐标和目标点的坐标,其目的是需要获得测站点的坐标和一条已知边的起算方位角;如果需要测量点的高程,就需要输入仪器高和棱镜高。由于棱镜高度可能需要频繁变换,所以棱镜高和仪器高分别采用不同的对话框来分开进行设置,而且系统中应自动保留上一次测量时仪器的高度值,以免同一站仪器没有变换,还需要重新输入仪器的高度。(3)测量返回的字符串包含了角度和观测距离的信息,需要对这些字符串进行分割后,将测定的距离和方位角换算成坐标;坐标测量完成后,系统自动弹出一个话框来显示测定出的坐标值,用户输入坐标点号后将坐标值保存在文本文件中。

2.2 坐标方位角的计算

设站常用的方法为两点定向,即输入测站点和定向点的坐标。而定向的方位角需要通过程序计算出来,然后此变量需要通过函数设置为全站仪的水平角。两点定向需用到四个坐标数据,其含义和变量如表1所示:

表1

在用atan( )函数的值域范围是(-?仔/2,?仔/2),而方位角的取值方位是(-360°,+360°)。对x、y方向的坐标增量的正负做判断,其算法如下:

if ((aim_x-site_x)>0)

orient=atan((aim_y-site_y)/(aim_x-site_x))

else if((aim_x-site_x) <0)

orient=atan(y/x)+PI;

如果aim_x-site_x=0 ,则说明方位角是90°或270°,这时就不能通过上述的函数进行计算,因为代入上式中除数为零,其判断方法如下:

if((aim_x-site_x =0)&&(y>0))

orient=PI/2;

if((aim_x-site_x =0)&&(y<0))

orient=-PI/2;

PI的值等于?仔;当度盘为负数时,GTS-720的函数“fpTsSetHangle”会自动加上2?仔设值度盘;atan()返回值的单位是弧度,需要将其转换成度、分、秒格式。

2.3 测量功能的实现

测量功能的实现主要用“fpTsRequest()”开发函数,其主要程序的主要流程如图1:

图1 使用fpTsRequest()实现测量功能流程图

此部分程序几点说明:(1)开发函数fpTsRequest()以硬件为操作对象。而硬件要完成距离测量工作需要运行一段时间,一般情况下,运行fpTsRequest()函数后,就立刻执行下一般操作函数,则fpTsRequest()函数无法完成测量功能,返回一群无用杂乱的字符串。(2)由于上述的原因,运行fpTsRequest()函数后,程序应该等待一段时间再执行下一步操作。该函数需要测量的时间同观测距离的远近相关,所以设置成一个固定时间段是不合理的,所以需要设置一个循环来完成此功能。其方法如下:创建一个for循环语句,共循环五次;循环一次的时间是4秒种;每次循环后对返回的字符进行校对,如果结果正确就跳出循环,进入下一步程序;如果程序已循环5次后,得到正确的字符串仍不正确,则循环终止,程序结束;(3)数据校对就是利用fpTsRequest()函数进行测验,判断获得正确数据是否是有效的数据。

3 对GTS-720全站仪进行开发的几点说明

(1)GTS-720全站仪采用嵌入式工具EVC4.0进行二次开发,该开发软件可以从微软网站上免费下载。(2)GTS-720全站仪进行开发需要有针对该仪器的开发包,该开发包中含有专用于GTS-720全站仪测量程序开发的接口命令,不过该开发包不能直接在该仪器公司的官方网站上直接下载,而应该与Topcon公司签订相关的保密协议后,才能从Topcon事务所得到该开发包。(3)GTS-720全站仪的开发中由于用到了全站仪的开发函数,该函数是同仪器的硬件相关的,所以在模拟器下无法进行进行调试,而必须全站仪与PC连接后才能进行相关的调试。(4)全站仪测定的水平距离和高差需进行地球曲率和大气折光的改正。地球曲率对高差的影响较大,如果高差不进行地球曲率改正,则两点相距1km时,测定的高差误差能达到7cm左右。由于此系统函数fpTsRequest()的测量功能已经自动进行了这些改正,而不再需要对此部分功能进行二次开发。

参考文献

[1]万跃华Visual C++NET网络编程[M].北京:科学出版社.

[2]张慧慧,孙艳崇.控制测量技术[M].东北大学出版社,2013

作者简介:孙艳崇(1978,3-),男,汉族,辽宁绥中,讲师,注册测绘师,硕士研究生,研究方向:数字化测图技术。

猜你喜欢

程序开发全站仪
浅析大学生在兼职小程序开发中遇到的问题
全站仪极坐标法监测点稳定性分析方法研究
APP应用程序开发模式探究
基于快牙平台实现全站仪与计算机的数据通信
基于TestStand的自动检测程序开发
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例
基于全站仪二次开发的覆冰厚度测量与实现
基于ANSYS的大体积混凝土温度应力计算程序开发研究
试析GPS与全站仪在西藏矿山测量中的应用