7,762
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Function Bytes2String(a() As Byte) As String
Dim s As String
Dim lCount As Long
Dim i As Long
lCount = UBound(a) + 1
s = Space$(lCount * 3)
For i = 0 To lCount - 1
Mid$(s, i * 3 + 1, 2) = Right$("0" & Hex(a(i)), 2)
Next
Bytes2String = s
End Function
Private Function String2Bytes(ByVal s As String) As Byte()
Dim a() As Byte
Dim lCount As Long
Dim i As Long
lCount = Len(s) \ 3
ReDim a(lCount - 1)
For i = 0 To lCount - 1
a(i) = CByte("&H" & Mid$(s, i * 3 + 1, 2))
Next
String2Bytes = a
End Function
Private Sub SetValue(aData() As Byte, ByVal index As Long, ByVal value As Double)
Dim s As String
s = Right$("0000000" & CStr(Int(value * 100)), 8)
aData(index + 0) = CByte("&H" & Mid$(s, 7, 2))
aData(index + 1) = CByte("&H" & Mid$(s, 5, 2))
aData(index + 2) = CByte("&H" & Mid$(s, 3, 2))
aData(index + 3) = CByte("&H" & Mid$(s, 1, 2))
End Sub
Private Sub Command2_Click()
Dim aData() As Byte
aData = String2Bytes("FE FE FE 68 20 00 00 03 13 00 00 00 24 12 03 01 00 00 00 00 00 05 00 00 00 00 05 00 00 00 00 2C 0E 16 ")
SetValue aData, 17, Val(Text1)
SetValue aData, 22, Val(Text2)
SetValue aData, 27, Val(Text3)
Text4 = Bytes2String(aData)
MSComm1.Output = aData
End Sub
FE FE FE 68 20 00 00 03 13 00 00 00 24 12 03 01 00 78 56 34 12 05 78 03 00 00 05 10 32 54 76 2C 0E 16