📄 module1.bas
字号:
Attribute VB_Name = "Module1"
'定于全局变量
Public Throwx1, Throwy1, Highx1, Highy1, Longx1, Longy1, Longx2, Longy2 As String
'用于退出窗口时保存数据
Public Const Pi = 3.1415926
Public Rs232 As String '用于存储rs232来的数据
Public Sub Separatedata(B, V, S As Single)
'RUIDE读取B水平角,V竖直角,S斜距
Dim Start, Temp, A As String 'a用于存储数据
Dim I, N As Integer 'N用于存储字符“SD”的位置,I用于循环
Start = Timer
Do While Timer < Start + 1
'延迟1秒,因为如果点记录之后立刻点按钮,那时数据还没有写入或者没有完全写入会出错
DoEvents
Loop
A = Rs232
Rs232 = "" '数据被读出,就清除
Temp = ""
If A = "" Then
MsgBox "缺少数据来源,请点击测距仪上记录键"
Exit Sub
End If
N = InStr(A, "SD") '搜索字符“SD”的位置,从SD那里开始读数据
For I = N To Len(A) '去除字符串中的空格和回车
If Asc(Mid(A, I, 1)) > 47 And Asc(Mid(A, I, 1)) < 58 Then Temp = Temp + Mid(A, I, 1)
Next
V = (CSng(Mid(Temp, 20, 3)) + CSng(Mid(Temp, 23, 2)) / 60 + CSng(Mid(Temp, 25, 2)) / 3600) / 180 * Pi
B = (CSng(Mid(Temp, 11, 3)) + CSng(Mid(Temp, 14, 2)) / 60 + CSng(Mid(Temp, 16, 2)) / 3600) / 180 * Pi
'对弧度取正弦,需要换算,计算V1角
S = CSng(Mid(Temp, 1, 5)) + CSng(Mid(Temp, 6, 3)) / 1000
If S = 0 Then
MsgBox ("请先按下全站仪上的测量键,再按回车键")
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -