1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
Imports System.IO.Ports
Public Class Form1
Dim ArduinoConnected As Boolean
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data'
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TimerConnect.Enabled = False
ArduinoConnected = False
Autoconnect()
End Sub
Private Sub Autoconnect()
For Each sp As String In My.Computer.Ports.SerialPortNames
Try
SerialPort1 = New SerialPort(sp, 9600, Parity.None, 8, StopBits.One)
SerialPort1.ReadTimeout = 700
SerialPort1.WriteTimeout = 700
SerialPort1.Open()
SerialPort1.Write("C1")
ArduinoConnected = True
btnConnect.Text = "Disconnect"
Catch ex As TimeoutException
End Try
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Shell("shutdown -s -t 100")
End Sub
Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting())
End Sub
Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting'
If Me.RichTextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.RichTextBox2.Text &= [text] 'append text'
End If
End Sub
Private Sub btnConnect_Click(sender As Object, e As EventArgs) Handles btnConnect.Click
If btnConnect.Text = "Disconnect" Then
SerialPort1.Close()
ArduinoConnected = False
btnConnect.Text = "Connect"
End If
End Sub
End Class |
Partager