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

📄 hexedit.bas

📁 vb编写机器人遥控程序
💻 BAS
📖 第 1 页 / 共 2 页
字号:
Attribute VB_Name = "Hexedit"



'**********************************
'接收模块
'**********************************

Public bytReceiveByte() As Byte     '接收到的字节
Public intReceiveLen As Integer     '接收到的字节数
Public Longl!, Timee!
Public Forms As String, Kc%, Kcc%
Public Red%, Green%, Blue%
'Public Dataout() As Byte
Public Settem As Integer
Public Wind!, Lvdai(1 To 6) As Single, tim!
Public Bbjl%, Bbjr%, Bbjll%, Bbjrl%, Bbjlu As Boolean, Bbjld As Boolean, Bbjru As Boolean, Bbjrd As Boolean '摆臂角度
Public Bbjllp!, Bbjrlp!, Bbjlup As Boolean, Bbjldp As Boolean, Bbjrup As Boolean, Bbjrdp As Boolean
Public Vlt%, Vrt%
Public Moshi(1 To 2) As String, Vcanshu(1 To 2) As Integer, Pcanshu(1 To 2) As Long
Public Model As String
Public Dianjil(1 To 12) As Long, Dianjir(1 To 12) As Long, lvl%, Datatest%
Public Inputdata(1 To 60) As Long, Inputt(1 To 60) As Long
Public ii As String, Lvdai1!, Lvdai2!, Bbl!, Bbbr!, Fxl As Boolean, Fxr As Boolean
Public Unlocker As String, Sendout As Boolean, Pcok As Boolean
Public Restart As Boolean
Public Position1&, Position2&, Position3&, Position&, Positionr&, Positiont&, Positiont2&, Positiontr&, Pot2 As String, Pot3 As String
Public Form1firstload As Boolean
'**********************************
Public Little As Boolean, Tongxin As Boolean, Vt%, Xiansu%, Text1t As String, Text3t As String, Text4t As String, Text3f As Boolean, Text4f As Boolean
Public Check As Boolean, Checkchar As String


'**********************************
'显示模块
'**********************************

Public strAddress As String     '地址信息
Public strHex As String         '十六进制编码
Public strhexc As String, timesin%
Public strAscii As String, fn As String, m As String       'ASCII码

'**********************************



Public intHexWidth As Integer       '显示列数


'**********************************

Public intOriginX As Long       '横向原点(像素)
Public intOriginY As Integer    '纵向原点(行)
Public intLine As Integer       '总行数

'**********************************




'**********************************
'显示常量
'**********************************

Public Const ChrWidth = 105             '单位宽度
Public Const ChrHeight = 2 * ChrWidth   '单位高度
Public Const BorderWidth = 210          '预留边界
Public Const LineMax = 16               '最大显示行数
Public Start(11) As String
Public buffer As String
Public xa
Public ja, xlen%




'**********************************
'输入处理
'处理接收到的字节流,并保存在全局变量
'bytReceiveRyte()
'**********************************



Public Sub InputManage(bytInput() As Byte, intInputLenth As Integer)
  'frmMain.Print intReceiveLen
 ' frmMain.Print intInputLenth
    Dim n As Integer, m%, i!, te As String, t As String                        '定义变量及初始化
    
    ReDim bytReceiveByte(intInputLenth)
    
    For n = 1 To intInputLenth Step 1
          bytReceiveByte(n - 1) = bytInput(n - 1)
    Next n
  
  
    If intInputLenth = Longl And bytInput(0) = 165 Then
    'frmMain.Print "m";
       For n = 1 To intInputLenth Step 1
          Inputdata(n) = bytInput(n - 1)
         
       Next n
       Datatest = 0
       If Restart = True Then
         frmMain.Command5.BackColor = vbGreen
         frmMain.Command5.Caption = "运行正常"
         frmMain.Label24.Caption = "机器人状态:运行正常"
         Positiont = Inputdata(11) * 256 * 256 + Inputdata(12) * 256 + Inputdata(13)
         Positiontr = Inputdata(14) * 256 * 256 + Inputdata(15) * 256 + Inputdata(16)
         frmMain.Shape1.BackColor = &HFFC0C0
        frmMain.Shape3.BackColor = &HFFC0FF
         frmMain.Label20.BackColor = vbGreen
         frmMain.Label21.BackColor = vbGreen
           frmMain.Label22.BackColor = vbGreen
           frmMain.Label23.BackColor = vbGreen
          Inputt(8) = 128

         frmMain.Command1.Enabled = True
         frmMain.Command2.Enabled = True
         frmMain.Command3.Enabled = True
         frmMain.Command4.Enabled = True
         Settem = 10
         Sendout = True
         Model = "A2"
         Restart = False
         Else: Restart = False
         End If
          For n = 1 To Longl - 1
    te = Hex(Inputdata(n))
    If Len(te) = 1 Then te = "0" & te
    t = t & te
    Next

    If Inputdata(Longl) = Xorcode(t) Then
    If (frmMain.Command5.Caption = "运行正常") Then '  AndCheck
'********************************电子罗盘****************
'*******使用部件:line、 line5、line6、shape1、shape
If Vt < 10 Then Vt = Vt + 1
i = -Inputdata(3) * 360 / 256
frmMain.Line1.Y2 = frmMain.Line1.Y1 - Sin(i * 3.1415926 / 180) * (frmMain.Shape1.Height - 80) \ 2
frmMain.Line1.X2 = frmMain.Line1.X1 + Cos(i * 3.1415926 / 180) * (frmMain.Shape1.Width - 80) \ 2
frmMain.Line5.X1 = frmMain.Line1.X2
   frmMain.Line5.Y1 = frmMain.Line1.Y2
   frmMain.Line5.X2 = frmMain.Line5.X1 + 100 * Cos((180 - i + 20) * 3.1415926 / 180)
   frmMain.Line5.Y2 = frmMain.Line5.Y1 + 100 * Sin((180 - i + 20) * 3.1415926 / 180)
   frmMain.Line6.X1 = frmMain.Line1.X2
   frmMain.Line6.Y1 = frmMain.Line1.Y2
   frmMain.Line6.X2 = frmMain.Line6.X1 + 100 * Cos((180 - i - 20) * 3.1415926 / 180)
   frmMain.Line6.Y2 = frmMain.Line6.Y1 + 100 * Sin((180 - i - 20) * 3.1415926 / 180)
'**********************CO 传感器***********************
    k = Inputdata(4) * 256 + Inputdata(5)
    i = k / 1.31
    Red = k / 16 * 4
    If Red > 255 Then Red = 255
    frmMain.Label1.BackColor = RGB(Red, 255 - Red, 0)
    If k < 1000 Then frmMain.Label1.Caption = "CO: " & Chr(10) & Trim(Format(k, "0.0")) & Chr(10) & "ppm"
    If k > 1000 And k < 10000 Then frmMain.Label1.Caption = "CO: " & Chr(10) & Trim(Format(k, "0")) & Chr(10) & "ppm"
'***********************外温**************************
frmMain.Label32.Caption = "外温:" & Trim(Format((Inputdata(6) - 49.164) / 3.936, "0.0")) & Chr(10) & "    ℃"
frmMain.Label32.BackColor = RGB(Inputdata(6) \ 3, 255 - Inputdata(6) \ 3, 50)
'****************氧气******************************
k = Inputdata(19) * 256 + Inputdata(20)
i = k / 11900.2
frmMain.Label3.Caption = "氧气:" & Chr(10) & Trim(Format(i, "0.0%"))
Green = (k / 16 / 135 * 15 - 8) * 20
If Green > 255 Then Green = 255
If Green < 0 Then Green = 255
frmMain.Label3.BackColor = RGB(255 - Green, Green, 50)
'****************温度 inside ***********************
k = Inputdata(21) * 256 + Inputdata(22)
i = 5 * (k - 819) / 81.9
If i < 100 Then frmMain.Label31.Caption = "内温:" & Chr(10) & Trim(Format(i, "0.0")) & Chr(10) & "    ℃"
Red = 8 * (k - 1019) / 81
If Red > 255 Then Red = 255
If Red < 0 Then Red = 0
frmMain.Label31.BackColor = RGB(Red, 255 - Red, 50)
'****************瓦斯 ***********************
k = Inputdata(17) * 256 + Inputdata(18)
i = k / 126289.8 - 0.009
frmMain.Label2.Caption = "瓦斯:" & Chr(10) & Trim(Format(i, "0.0%"))
Red = k / 1262 * 50
If Red > 255 Then Red = 255
If Red < 0 Then Red = 0
frmMain.Label2.BackColor = RGB(Red, 255 - Red, 50)
'****************湿度 ***********************
k = Inputdata(23) * 256 + Inputdata(24)
i = (5 * k - 3501.225) / 12935.7
If i < 0 Then i = 0
frmMain.Label4.Caption = "湿度:" & Chr(10) & Trim(Format(i, "0.0%"))
Green = (5 * k - 3501) / 129 * 2.5 + 50
If Green > 255 Then Green = 255
If Green < 0 Then Green = 0
Red = 255 - Green - 30
If Red < 0 Then Red = 0
frmMain.Label4.BackColor = RGB(Red, Green, Green)
'**************电机状态******************
' 摆臂左
        If Inputdata(8) And 1 Then
            frmMain.Label20.BackColor = vbRed
        Else: frmMain.Label20.BackColor = vbGreen
        End If
        ' 摆臂右
        If Inputdata(8) And 2 Then
            frmMain.Label21.BackColor = vbRed
        Else: frmMain.Label21.BackColor = vbGreen
        End If
        ' 主左
        If Inputdata(8) And 4 Then
            frmMain.Label22.BackColor = vbRed
        Else: frmMain.Label22.BackColor = vbGreen
        End If
        ' 主左
        If Inputdata(8) And 8 Then
        frmMain.Label23.BackColor = vbRed
        Else: frmMain.Label23.BackColor = vbGreen
        End If

        '**********************传感器状态
        If Inputdata(8) And 16 Then
        frmMain.Label1.BackColor = vbRed
        frmMain.Label2.BackColor = vbRed
        frmMain.Label3.BackColor = vbRed
        frmMain.Label4.BackColor = vbRed
        frmMain.Shape1.BackColor = vbRed
        frmMain.Label31.BackColor = vbRed
        frmMain.Label32.BackColor = vbRed
        Else
        frmMain.Shape1.BackColor = &HFFC0C0
        frmMain.Shape3.BackColor = &HFFC0FF
 End If
 End If
    End If
    ElseIf bytInput(0) <> 165 Then
    

       n = 1
       m = 0
       Do While n < Longl And m = 0
          If bytInput(n) = 165 Then
          m = n
          End If
         n = n + 1
       Loop
       'frmMain.Print Trim(str(m));
       If m = 0 Then
          Datatest = Datatest + 2
       Else:
       Datatest = 0
        
        If Restart = True Then
         frmMain.Command5.BackColor = vbGreen
         frmMain.Command5.Caption = "运行正常"
         frmMain.Label24.Caption = "机器人状态:运行正常"
         Positiont = Inputdata(11) * 256 * 256 + Inputdata(12) * 256 + Inputdata(13)
         Positiontr = Inputdata(14) * 256 * 256 + Inputdata(15) * 256 + Inputdata(16)

         frmMain.Command1.Enabled = True
         frmMain.Command2.Enabled = True
         frmMain.Command3.Enabled = True
         frmMain.Command4.Enabled = True
         frmMain.Shape1.BackColor = &HFFC0C0
        frmMain.Shape3.BackColor = &HFFC0FF
         frmMain.Label20.BackColor = vbGreen
         frmMain.Label21.BackColor = vbGreen
           frmMain.Label22.BackColor = vbGreen
           frmMain.Label23.BackColor = vbGreen
          Inputt(8) = 128
         Settem = 10
         Sendout = True
         Model = "A2"
         Restart = False
         Inputdata(8) = 10
         Else: Restart = False
         End If
       End If
       If m > 0 Then
        For n = 1 To Longl - m
           Inputdata(n) = bytInput(n + m - 1)
        Next
        For n = Longl - m + 1 To Longl
           Inputdata(n) = bytInput(n - Longl + m - 1)
        Next
       End If
        For n = 1 To Longl - 1
    te = Hex(Inputdata(n))
    If Len(te) = 1 Then te = "0" & te
    t = t & te
    Next

    If Inputdata(Longl) = Xorcode(t) Then
    If (frmMain.Command5.Caption = "运行正常") Then '  AndCheck
'********************************电子罗盘****************
'*******使用部件:line、 line5、line6、shape1、shape
If Vt < 10 Then Vt = Vt + 1
i = -Inputdata(3) * 360 / 256
frmMain.Line1.Y2 = frmMain.Line1.Y1 - Sin(i * 3.1415926 / 180) * (frmMain.Shape1.Height - 80) \ 2
frmMain.Line1.X2 = frmMain.Line1.X1 + Cos(i * 3.1415926 / 180) * (frmMain.Shape1.Width - 80) \ 2
frmMain.Line5.X1 = frmMain.Line1.X2
   frmMain.Line5.Y1 = frmMain.Line1.Y2
   frmMain.Line5.X2 = frmMain.Line5.X1 + 100 * Cos((180 - i + 20) * 3.1415926 / 180)
   frmMain.Line5.Y2 = frmMain.Line5.Y1 + 100 * Sin((180 - i + 20) * 3.1415926 / 180)
   frmMain.Line6.X1 = frmMain.Line1.X2
   frmMain.Line6.Y1 = frmMain.Line1.Y2
   frmMain.Line6.X2 = frmMain.Line6.X1 + 100 * Cos((180 - i - 20) * 3.1415926 / 180)
   frmMain.Line6.Y2 = frmMain.Line6.Y1 + 100 * Sin((180 - i - 20) * 3.1415926 / 180)
'**********************CO 传感器***********************
    k = Inputdata(4) * 256 + Inputdata(5)
    i = k / 1.31
    Red = k / 16 * 4
    If Red > 255 Then Red = 255
    frmMain.Label1.BackColor = RGB(Red, 255 - Red, 0)
    If k < 1000 Then frmMain.Label1.Caption = "CO: " & Chr(10) & Trim(Format(k, "0.0")) & Chr(10) & "ppm"
    If k > 1000 And k < 10000 Then frmMain.Label1.Caption = "CO: " & Chr(10) & Trim(Format(k, "0")) & Chr(10) & "ppm"
'***********************外温**************************
frmMain.Label32.Caption = "外温:" & Trim(Format((Inputdata(6) - 49.164) / 3.936, "0.0")) & Chr(10) & "    ℃"
frmMain.Label32.BackColor = RGB(Inputdata(6) \ 3, 255 - Inputdata(6) \ 3, 50)
Inputt(6) = Inputdata(6)
'****************氧气******************************
k = Inputdata(19) * 256 + Inputdata(20)
i = k / 11900.2
frmMain.Label3.Caption = "氧气:" & Chr(10) & Trim(Format(i, "0.0%"))
Green = (k / 16 / 135 * 15 - 8) * 20
If Green > 255 Then Green = 255
If Green < 0 Then Green = 255
frmMain.Label3.BackColor = RGB(255 - Green, Green, 50)
'****************温度 inside ***********************
k = Inputdata(21) * 256 + Inputdata(22)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -