⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 与瑞得850的rs232通讯
💻 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 + -