receivestring = ""
If Comm1.PortOpen = False Then
Comm1.PortOpen = True
Comm1.Settings = “4800,e,7,1”
End If
Comm1.RThreshold = 1
If Combo1.Text = "距离" Then’选择平距模式
Comm1.Output = "Z44090" + Chr(3) + Chr(13) + Chr(10)
End If
If Combo1.Text = "角度" Then’选择角度模式
Comm1.Output = "Z10091" + Chr(3) + Chr(13) + Chr(10)
End If
If Combo1.Text = "坐标" Then’选择坐标模式
Comm1.Output = "Z64088" + Chr(3) + Chr(13) + Chr(10)
End If
Comm1.Output = "C067" + Chr(3) + Chr(13) + Chr(10) ’启动测量
End Sub
Private Sub Comm1_OnComm()
receivestring = receivestring + Comm1.Input
If Combo1.Text = "角度" and Len(receivestring) > 30 Then
Comm1.PortOpen = False
For i = 1 To 100
If Mid(receivestring, i, 1) = "'" Then
Exit For
End If
Next
Text1.text= Mid(receivestring, i + 1, Len(receivestring) - i + 1)
End If
If Combo1.Text = "距离" and Len(receivestring) > 37 Then
Comm1.PortOpen = False
For i = 1 To 100
If Mid(receivestring, i, 1) = "*" Then
Exit For
End If
Next
Text1.text = Mid(receivestring, i + 1, Len(receivestring) - i + 1)
End If
If Combo1.Text = "坐标" and Len(receivestring) > 54 Then
Comm1.PortOpen = False
For i = 1 To 100
If Mid(receivestring, i, 1) = "/" Then
Exit For
End If
Next
Text1.text = Mid(receivestring, i + 1, Len(receivestring) - i + 1)
End If
End sub
运行程序,在Combo1中选择角度、距离或坐标测量模式,设置仪器与程序的通讯协议保持一致后点击Command2命令按键即可自动启动测量并接收到测量数据。
3、拓普康其它型号仪器简介
在程序开发过程中,感到拓普康仪器通讯较为复杂。不同的模式返回的字符串长度是不同的,同一仪器、同一测量模式下不同的设置返回的字符串长度也不同。如拓普康GTS102N仪器,在测距模式下仪器设置为显示0.2mm状态时返回的字符长度为63,在设置显示1mm状态时返回的字符长度为54。另外,GTS601在波特率1200-9600情况下均可实现通讯,但102N波特率只在1200下才能通讯。
尼康DTM452C全站仪与PDA通讯源程序
Private Sub Command1_Click()’设置通讯协议命令按键
程序与徕卡TCA1800基本相同,只是需将原协议更改为“4800,N,8,1”。此处略
End Sub
Private Sub Comm1_OnComm()
receivestring = receivestring + Comm1.Input
Text1.Text = receivestring
End Sub
运行程序与徕卡相同。
经咨询尼康公司技术服务人员,目前该仪器实时传输数据中不带坐标值,只有一种模式。其字符串长为72。其中SD代表斜距,HA代表水平角,VA代表竖直角。若需要保存平距或坐标则需读者根据水平角、斜距和竖直角等进行计算完成。
五、结束语
开发适合自身工作特点的PDA程序可以减少工作量,避免手工记录、计算错误,提高工作效率。本次只对徕卡、拓普康和尼康部分系列全站仪进行了通讯开发,并提供相应的源程序,以供编程爱好者参考。期待有更好的其它系列的通讯源程序出现、交流,可以帮助其他人员少走弯路,提高测绘人员的技术水平。