您好,欢迎来到微智科技网。
搜索
您的当前位置:首页全站仪数据传输与处理技术研究

全站仪数据传输与处理技术研究

来源:微智科技网
62装备园地 测绘技术装备季刊第12卷2010年第3期 全站仪数据传输与处理技术研究 原星陈雷 (宝鸡市勘察测绘院摘陕西宝鸡721000) 要:介绍了采用Vi sual Basic研究开发全站仪数据传榆与处理软件的经过和方法,实现了全站仪内存 数据快速传输和处理,发挥了全站仪自动存储功能、提高了测绘生产的效率、减轻了外业人员的工作量。 关键词:全站仪数据传输处理程序 1引言 文件,这样,就不再受超级终端的缓存大小影响, 随着数字化测绘技术的发展,全站仪的应用已 所以本程序采用Visual Basic中MSComm控件,其 十分普及,因此全站仪内存数据传输和处理技术也 输入模式为文本模式并将其输入数据存放在output 倍受关注。我院近几年购卖了数台带内存全站仪 模式方式打开的文本文件中,形成的文本文件用 (如:拓普康312、313、225、711等系列全站仪), Visual Basic语言的读写将其转换成所需格式。 由于原厂数据传输方式存在一些不足,影响了数据 3编程过程 处理的效率。其主要问题是:①传输过程烦琐。首 3.1用户界面建立 先通过超级终端传出坐标文件,然后复制、粘贴到 首先运行Visual Basic6.0,新建工程文件拓普 记事本保存成文本格式,最后再通过测图软件转换 康通讯,将其默认窗体名改为TOPCON,建立如图1 成所需成图格式,过程烦琐且易出错,特别是在复 的界面,并在其界面下添加MSComml、Timerl、 制对象选择中,如果起点选择不合适时,则会在格 CommonDialogl控件。将MSComml控件的协议设为 式转换时出错。②传输量小,超级终端传输量一般 comXonXoff,settings值设为9600,e,7,1(此为  1型号通讯参数)和 为500行(传输拓普康坐标点约500多个),需多次 拓普康仪器312、313、225、71传输才可传完一天测的点。为解决以上问题,笔者 inputmode值设为cominputmodeText。Timerl的 采用Visual Basic研究开发了拓普康全站仪数据传 inerval值设为1000。 输和处理软件,可一次性传输完所有内存数据,并 同时对数据进行处理,将测量点坐标转换为测图软 件所需格式(我院使用武汉瑞得测图软件,本软件 仅存点文件,即★.ebp格式),现将软件研究开发过 程作以介绍,相互共鉴。 2开发思路 任何编程语言与全站仪通讯都离不开超级终端 的核心控件MSComm,要解决超级终端传输量的问题, 只有将其传输数据存储成其它格式的文件,如文本 图1用户界面图 3.2传输 双击start按纽,添加如下代码 Co ̄onDialog1.Filter= Text flie(¥.txt) txt J CommonDialog1.ShowOpen‘打开“打开文件”对话框 tempfile=CommonDialog1.FileName 、输入文件名 If tempfile=~Then Exit Sub End If ‘设置文件类型 判断文件名是否为空 If Combo1.Text= 1COM Then MSComm1.CommPort=1,‘判断通讯端口是否为ICOM If Combo1.Text= 2COM Then MSComm1.CommPort=2‘判断通讯端口是否为2COM MSComm1.InputLen:0‘输入长度 测绘技术装备季刊第12卷2010年第3期 装备园地63 MSComm1.PortOpen:True‘打开端口 MSComm1.InputMode=comInputModeText‘设置输入模式 Open App.path+ a1.txt For Output As#1 打开当前目录下a1.txt文件 Timer1.Enabled=True‘运行Timerl控件 双击Timerl,添加下面代码 Text1.Text=aMSComm1.Input‘文本框中显示传输数据 If Text1.Text<>~Then‘如果文本框中有数据则写文本框内容到文本文件a1.txt中 Print#1,Text1.Text End If If Combo1.Text= 1COM Then MSComm1.CommPort=l, 判断通讯端口是否为1COM If Combo1.Text: 2COM Then MSComm1.CommPort=2‘判断通讯端口是否为2COM MSComm1.InputLen=0‘输入长度 MSComm1.PortOpen=True‘打开端口 MSComm1.InputMode:comInputModeText‘设置输入模式 Open App.path+ a1.txt For Output As#1‘打开当前目录下a1.txt文件 Timer1.Enabled=True‘运行Timerl控件 双击Timerl,添加下面代码 Text1.Text=aMSComm1.Input‘文本框中显示传输数据 If Text1.Text<>~Then‘如果文本框中有数据则写文本框内容到文本文件a1.txt中 Print#1,Text1.Text End If 其传输结果如下: N+213x100121 167y+099353276z+000965084+101x+100198123Y +099401695z+000972456214 x+100136147 0017口 口y+099522986z+000970214+l x+lO0115213 y+099552740z+000969784+2 x+100014357 y+0994O6068 z+00955887 l053口 口+3 x+100012729y+ y+099438803z+000955983十4 x+100012283099453505 z+000956O3O+5 x+100011253 2lO8口 口y+O994677l7z+000956143+6 x+100003247y+099499661z+000956232十7 x+099994972 y+099530833 z+OO0956377+3050口 [38 x+100066880y+099537172z+000956918+9 x+100066686y+O 99515075 z+000956888+10 x+i00103336 y4045口 ][+099481159x+i00103057z+000957137十l1 y+099484248 z+000958535+12 x+100104659y+099484265z+000958546+l5l24口 [33 x+1000099148y+099522379z+000958553+14 x+10OO97658y+O9 9522216 z+000958513+15 x+100097988 y+6055口 D099519234z+000957010+16x+100096673y+099522143z+000958617+17 x+100096081 y+O99524447 z+O0O958657+1871 l 1口 3.3转换 为空时后为点号,前为“x”、 Y”、 z 时后分别为 根据上面传输结果,我们可以看出,①每段数 x坐标、Y坐标和高程z。所以我们首先应取掉每段 据在两个 口 符号中间,且第二个 口 符号前四付 数据前后 口 符号和第二个 口 符号前四位数字, 数字是附加无用数据。②坐标值均为9位数字组成 再对数据分行即每l3位数分成一个数据并记入文本 ③每个点名和坐标数据(包含空格)为13个字符。 文件,不足13位时与上一个数据合并,且在“x” ④“+”前字符是判断“+”后数字性质的关键,前 前l3位时换行,这样将形成如下格式文本文件: 64装备园地 +213 +1011L 测绘技术装备季刊第l2卷2010年第3期 X+100121167 Y+099353276Z+000965084 ——X+100198123 Y+099401695Z+000972456 ——X+lOO115213Y+099552740Z+000969784 一+2 X+lOOO14357 Y+099406068 Z+000955887 然后取掉“+”、“~”、x”、 y”、 z”和空格,并每行数据分成四个数据与代表点号、X坐标、Y坐标 和高程z四个数据的数组对应,且将代表X坐标、Y坐标和高程z的数组转换为数字类型,并除以i000将 得到x坐标、Y坐标和高程z值,以瑞得点文件格式输出,其结果如下: 、 213, 100121.167, 99353.276, 965.084, 101, 100198.123,99401.695, 972.456, 1, 100115.213, 99552.740, 969.784, 2, 100014.357, 99406.068, 955.887, 编程代码如下: Open App.path+ a1.txt For Input As#2‘打开文件 Do While Not EOF(2)‘判断文件是否结束 Input#2,a‘读文件 e(0)=Right(a,5) If Left(a,1)= ] Then a=Trim(Mid(a,2,Len(a)一1))‘取掉前 1 符号 If Right(a, 1)= Then a=Trim(Mid(a, I,Len(a)一5)) ] 前符号前四位数字和 ] 符号 Cal1 strdata(a)‘调用strdata(a)函数 Loop Close#2‘关闭文件 Ca11 strdatal‘调用str datal函数 Kill App.path+ a1.txt 删除文件 Kill App.path+ a2.txt 删除文件 自定义函数str—data(a)的代码(分行处理) If a=~Then Close#3 Exit Sub End If h:0 F0r i=1 To Len(a) Open App.path+ a2.txt For Append As#3 If i<>1l Then If i=h+11 Then Print#3。 End If If Mid(a, i, i)= + And Mid(a, i+13, 1)= X Then Print#3, If Mid(a,i,2)= 一+ Then Print #3, tem data:Mid(a, i, 1) If tem data<> Then If tem data= z Then h:i Print#3,tem data: End If Close}}3 Next (下转第34页) 34技术交流 用JX一4系统提高约8倍。 7结束语 测绘技术装备季刊第l2卷2010年第3期 图,数学精度能满足规范要求。 (3)采用DPGrid系统进行影像密集匹配,比 率更高。 (1)采用DPGrid系统制作1:5000数字正射 常规的数字摄影测量工作站JX-4,影像匹配的成功 影像图,可明显提高工作效率,降低劳动成本。 (2)DPGrid系统,制作1:5000数字正射影像 参考文献: 【1】张祖勋.数字摄影测量研究3O年[M].湖北:武汉大学出版社,2003. 【2】张剑清,潘励,王树根.摄影测量学[M】.湖北:武汉大学出版社,2003 (上接第64页) 自定义函数strdatal 0的代码(瑞得点文件格式转换): Open c:\a2.txt For Input As#4 Do While Not EOF(4) Input#4, W If Len(w)>2 Then If Left(W,1)= + Then W=Right(w,Len(w)一1) If Left(W,2)= + Then W:Right(W,Len(W)~2) b(O)=Left(w,Len(w)一36) b(1)=Val(Mid(W,Len(w)一33, 10))/1000 b(2):Val(Mid(w,Len(w)一21, 10))/1000 b(3)=Yal(Right(W,9))/1000 0pen tempfi l e For Append As#5 Print{}5,b(0)& , ,b(0)& , ,b(1)& , ,b(2)& , ,b(3)& , ’Print#5,b(0),b(0),b(1),b(2),h(3) C1OSe#5 End If Loop C]ose#4 4结束语 件操作便捷、运行稳定、结果可靠,且格式可根据 该软件可以实现全站仪内存数据快速传输和处 测量软件不同而改变(仅改其最后的输出方式即 理,充分发挥全站仪数据存储功能,有效解决测绘 可),同时对软件中的参数稍做修改还可应用于其它 生产实际问题,提高测绘生产的效率、减轻外业人 类型的全站仪。 员的工作量。通过二年多的数字化生产应用,该软 参考文献 【1】杜春雷.如何使用Vi sua1 Basic6.0中文版【M】.北京:机械工业出版社,1999,5 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务