📄 form1.vb
字号:
Imports System.Threading
Public Class Form1
Public aa As Long
Public a As Long
Public b As Long
Dim sw As New System.Diagnostics.Stopwatch
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.PortName = "com2"
SerialPort1.Open()
' Timer1.Enabled = True
' If SerialPort1.DsrHolding = True Then
' End If
'If SerialPort1.CtsHolding = True Then
' End If
'SerialPort1.DtrEnable = True'''''''''''第四根线
' SerialPort1.RtsEnable = True '''''''''''第七根线
a = CLng(TextBox1.Text)
b = (Val(TextBox2.Text))
If BackgroundWorker1.IsBusy = True Then
Label1.Text = "busy"
Else
BackgroundWorker1.RunWorkerAsync()
End If
'If BackgroundWorker2.IsBusy = True Then
'el2.Text = "busy"
' Else
' BackgroundWorker2.RunWorkerAsync()
'End If
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
sw.Start()
For i As Long = 0 To a
' Me.SerialPort1.DtrEnable = False '''''''''''第四根线
SerialPort1.RtsEnable = True '''''''''''第七根线
' Thread.Sleep(0.01)
'Thread.Sleep(0.01)
SerialPort1.RtsEnable = False '''''''''''第七根线
' SerialPort1.DtrEnable = False '''''''''''第四根线
Me.BackgroundWorker1.ReportProgress(i)
If BackgroundWorker1.CancellationPending = True Then
e.Cancel = True
sw.Stop()
Exit For
End If
Next
sw.Stop()
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Label1.Text = e.ProgressPercentage
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If BackgroundWorker1.IsBusy Then Me.BackgroundWorker1.CancelAsync()
' SerialPort1.Close()
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
If e.Cancelled Then
Label1.Text = "User cancel1"
Else
Label1.Text = "Completed1"
End If
End Sub
Private Sub BackgroundWorker2_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
sw.Start()
For i As Long = 0 To a
' Thread.Sleep(b)
''SerialPort1.RtsEnable = True '''''''''''第七根线
' Thread.Sleep(b)
'' SerialPort1.RtsEnable = False '''''''''''第七根线
' Thread.Sleep(b)
Me.BackgroundWorker2.ReportProgress(i)
If BackgroundWorker2.CancellationPending = True Then
e.Cancel = True
sw.Stop()
Exit For
End If
Next
sw.Stop()
End Sub
Private Sub BackgroundWorker2_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker2.ProgressChanged
Label2.Text = e.ProgressPercentage
End Sub
Private Sub BackgroundWorker2_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker2.RunWorkerCompleted
If e.Cancelled Then
Label2.Text = "User cancel2"
Else
Label2.Text = "Completed2"
End If
Label2.Text = sw.ElapsedMilliseconds
' SerialPort1.DtrEnable = False'''''''''''第四根线
' SerialPort1.RtsEnable = False '''''''''''第七根线
Timer1.Enabled = False
SerialPort1.Close()
End Sub
Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
If BackgroundWorker2.IsBusy Then Me.BackgroundWorker2.CancelAsync()
End Sub
Private Sub PrintDialog1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles PrintDialog1.Disposed
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If SerialPort1.DsrHolding = True Then
Label6.Text = "Dsr is ON" '''''''''''第六根线
Else
Label6.Text = "Dsr is off"
End If
If SerialPort1.CtsHolding = True Then
Label2.Text = "cts is ON" '''''''''''第八根线
Else
Label2.Text = "cts is off"
End If
If SerialPort1.CDHolding = True Then
Label5.Text = "CD is ON" '''''''''''第一根线
Else
Label5.Text = "CD is off"
End If
'
'Label6.Text = "ring is ON" '''''''''''第第九根线
' Else
' Label6.Text = "CD is off"
' End If
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
aa = aa + 1
SerialPort1.RtsEnable = True '''''''''''第七根线
'Thread.Sleep(0.01)
Label5.Text = aa
' Thread.Sleep(0.1)
SerialPort1.RtsEnable = False '''''''''''第七根线
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
SerialPort1.PortName = "com2"
SerialPort1.Open()
Timer2.Enabled = True
End Sub
Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button5.Click
Timer2.Enabled = False
SerialPort1.Close()
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -