864
社区成员
发帖
与我相关
我的任务
分享Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim strData As String
Dim bytInput() As Byte
Dim dataSend() As Byte
Dim sj() As Byte
Dim i As Long
Dim Ulen As Long
Dim Llen As Long
Dim for_Sum As Long
Dim Yu_sum As Integer
Private Sub Command2_Click()
ReDim dataSend(Yu_sum - 1)
For i = 0 To Yu_sum - 1
dataSend(i) = sj(512 * (for_Sum - 1) + i)
Next
MSComm1.Output = dataSend
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Private Sub Command3_Click() '完整数据包
ReDim sj(26061)
Ulen = UBound(sj)
Llen = LBound(sj)
Yu_sum = (Ulen + 1) Mod 512
for_Sum = (Ulen + 1) \ 512
For i = 0 To Ulen
sj(i) = Val("&H" & Hex(Int((256 * Rnd))))
Next
Print Ulen
Print Llen
Print for_Sum
Print Yu_sum
Label1 = Time$
Timer2.Enabled = True
End Sub
Private Sub Timer2_Timer() '大数据包分解为多个小数据包
Static sum As Long
ReDim dataSend(511) As Byte
For i = 0 To 511
If sum >= for_Sum Then
Exit For
End If
dataSend(i) = sj(i + sum * 512)
Next
MSComm1.Output = dataSend
sum = sum + 1
If sum >= for_Sum Then
Command2_Click
Timer2.Enabled = False
End If
End Sub
Private Sub Form_Load()
Timer2.Interval = 10
MSComm1.Settings = "56000,n,8,1"
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
Command2.Visible = False
End Sub
Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = Me.MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = Me.MSComm1.Input
jieshou
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
RichTextBox1 = strData
Text1 = Len(strData) \ 2
End Function
Private Sub Cmd_Fsend()
If Yu_sum > 0 Then
ReDim dataSend(Yu_sum - 1)
For i = 0 To Yu_sum - 1
dataSend(i) = sj(512 * (for_Sum - 1) + i)
Next
MSComm2.Output = dataSend
End If
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim strData As String
Dim bytInput() As Byte
Dim dataSend() As Byte
Dim sj() As Byte
Dim i As Long
Dim Ulen As Long
Dim Llen As Long
Dim for_Sum As Long
Dim Yu_sum As Integer
Private Sub Cmd_Dsend()
ReDim dataSend(Yu_sum - 1)
For i = 0 To Yu_sum - 1
dataSend(i) = sj(i)
Next
MSComm1.Output = dataSend
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Private Sub Cmd_Fsend()
ReDim dataSend(Yu_sum - 1)
For i = 0 To Yu_sum - 1
dataSend(i) = sj(512 * (for_Sum - 1) + i)
Next
MSComm1.Output = dataSend
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Private Sub Command3_Click() '完整数据包
ReDim sj(66061)
Ulen = UBound(sj)
Llen = LBound(sj)
Yu_sum = (Ulen + 1) Mod 512
for_Sum = (Ulen + 1) \ 512
For i = 0 To Ulen
sj(i) = Val("&H" & Hex(Int((256 * Rnd))))
Next
Print "字节长= "; Ulen + 1; "循环次数= "; for_Sum; "余数= "; Yu_sum
Label1 = Time$
If for_Sum > 0 Then
Timer1.Enabled = True
ElseIf for_Sum = 0 Then
Cmd_Dsend
End If
End Sub
Private Sub Timer2_Timer() '大数据包分解为多个小数据包
Static sum As Long
ReDim dataSend(511) As Byte
For i = 0 To 511
If sum >= for_Sum Then
Exit For
End If
dataSend(i) = sj(i + sum * 512)
Next
MSComm1.Output = dataSend
sum = sum + 1
If sum >= for_Sum Then
Cmd_Fsend
Timer2.Enabled = False
End If
End Sub
Private Sub Form_Load()
Timer2.Interval = 10
MSComm1.Settings = "56000,n,8,1"
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
'MSComm2.Settings = "56000,n,8,1"
'MSComm2.CommPort = 2
'MSComm2.RThreshold = 1
'MSComm2.PortOpen = True
Command2.Visible = False
End Sub
Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = Me.MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = Me.MSComm1.Input
jieshou
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
RichTextBox1 = strData
Text1 = Len(strData) \ 2
End FunctionOption Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim strData As String
Dim bytInput() As Byte
Dim dataSend() As Byte
Dim sj() As Byte
Dim i As Long
Private Sub Command2_Click()
ReDim dataSend(525)
For i = 0 To 525
dataSend(i) = sj(65536 + i)
Next
MSComm2.Output = dataSend
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Private Sub Command3_Click()'完整数据包
ReDim sj(66061)
For i = 0 To 66061
sj(i) = Val("&H" & Hex(Int((256 * Rnd))))
Next
Label1 = Time$
Timer2.Enabled = True
End Sub
Private Sub Timer2_Timer()'大数据包分解为多个小数据包
Static sum As Long
ReDim dataSend(511) As Byte
For i = 0 To 511
If sum >= 128 Then
'Sleep (10)
Exit For
End If
dataSend(i) = sj(i + sum * 512)
Next
MSComm2.Output = dataSend
sum = sum + 1
If sum >= 128 Then
Command2_Click
Timer2.Enabled = False
End If
End Sub
Private Sub Form_Load()
Timer1.Interval = 10
MSComm1.Settings = "56000,n,8,1"
MSComm2.Settings = "56000,n,8,1"
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
MSComm2.CommPort = 3
MSComm2.RThreshold = 1
MSComm2.PortOpen = True
End Sub
Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = Me.MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = Me.MSComm1.Input
jieshou
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
RichTextBox1 = strData
Text1 = Len(strData) \ 2
End Function
Private Sub Command1_Click()
Dim Data(1093) As Byte
Data(0) = &HAA
Data(1) = &HBB
Data(2) = &HCC
For i = 3 To 1093
Data(i) = Val( "&H " & Hex(Int((256 * Rnd))))
Next
MSComm1.Output = Data
End Sub
Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = Me.MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = Me.MSComm1.Input
jieshou
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
RichTextBox1 = strData
Text1 = Len(strData) \ 2
End Function
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim strData As String
Dim bytInput() As Byte
Dim dataSend() As Byte
Private Sub Command1_Click()
ReDim dataSend(2)
dataSend(0) = &HAA
dataSend(1) = &HBB
dataSend(2) = &HCC
MSComm1.Output = dataSend
Sleep (10)
Timer1.Enabled = True
Label1 = Time$
End Sub
Private Sub Command2_Click()
ReDim dataSend(7)
Dim i As Integer
For i = 0 To 7
dataSend(i) = Val("&H" & Hex(Int((256 * Rnd))))
Next
MSComm1.Output = dataSend
ReDim dataSend(2)
dataSend(0) = 255
dataSend(1) = 255
dataSend(2) = 255
MSComm1.Output = dataSend
Label2 = Time$
RichTextBox1.Visible = True
End Sub
Private Sub Form_Load()
Timer1.Interval = 6
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub
Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = Me.MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = Me.MSComm1.Input
jieshou
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
RichTextBox1 = strData
Text1 = Len(strData) \ 2
End Function
Private Sub Timer1_Timer()
Dim i As Integer
Static sum As Integer
ReDim dataSend(255) As Byte
For i = 0 To 255
dataSend(i) = Val("&H" & Hex(Int((256 * Rnd))))
Next
MSComm1.Output = dataSend
sum = sum + 1
If sum >= 258 Then
Command2_Click
Timer1.Enabled = False
End If
End Sub