Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.IO.Ports
Imports System.Threading
_
Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub 'New
Private stopBits, parity As Array ' arrays to access the enumerations in System.IO.Ports
Private validStopBits As New ArrayList() ' ArrayLists hold the valid values for this machine
Private validParity As New ArrayList()
' Send the text in the text box to the serial port.
' The data should stay in the buffer until received by the event handler.
Private Sub SendButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Try
' Write a line to the serial port
SerialPort1.WriteLine(textBox1.Text)
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
End Sub 'SendButton_Click
Private Sub textupdate()
textBox2.Text = SerialPort1.ReadLine()
End Sub
Private Delegate Sub DlgDataReceivedTextBoxUpdate()
' Event handler for data reception
Private Sub serialPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Try
Static dlg As New DlgDataReceivedTextBoxUpdate()
' Read the buffer to the text box.
' textBox2.Text = SerialPort1.ReadLine()
If Me.InvokeRequired Then
Me.Invoke(dlg, New Object() {readdata})
Else
End If
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
End Sub 'serialPort_DataReceived
' Load the form and set up parameters from the default serial port.
' Open the port and prepare it for IO.
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Try
' Open the serial port
SerialPort1.Open()
' Set the event handler for data reception
AddHandler SerialPort1.DataReceived, AddressOf serialPort_DataReceived
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
label11.Text = SerialPort1.PortName
label2.Text = SerialPort1.BaudRate.ToString()
label4.Text = SerialPort1.StopBits.ToString()
label6.Text = SerialPort1.Parity.ToString()
label8.Text = SerialPort1.DataBits.ToString()
label10.Text = SerialPort1.RtsEnable.ToString()
' Populate the stop bits box with all valid options.
' Note that the serial port must be open to accurately test the options.
comboBox1.SelectedText = SerialPort1.StopBits.ToString()
Dim currentStopBitSetting As System.IO.Ports.StopBits = SerialPort1.StopBits
stopBits = [Enum].GetValues(GetType(System.IO.Ports.StopBits))
Dim sbtype As System.IO.Ports.StopBits
For Each sbtype In stopBits
' test to make sure the machine supports the setting
Try
SerialPort1.StopBits = sbtype
validStopBits.Add(sbtype)
comboBox1.Items.Add(sbtype)
Catch ' ignore this entry as invalid
End Try
Next sbtype
SerialPort1.StopBits = currentStopBitSetting
' Populate the parity with valid options
comboBox2.SelectedText = SerialPort1.Parity.ToString()
Dim currentParitySetting As System.IO.Ports.Parity = SerialPort1.Parity
parity = [Enum].GetValues(GetType(System.IO.Ports.Parity))
Dim ptype As System.IO.Ports.Parity
For Each ptype In parity
' test to make sure the machine supports the setting
Try
SerialPort1.Parity = ptype
validParity.Add(ptype)
comboBox2.Items.Add(ptype)
Catch ' ignore this entry
End Try
Next ptype
End Sub 'Form1_Load
' Respond to the form closing event by closing the SerialPort instance.
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
SerialPort1.Close()
End Sub 'Form1_FormClosing
' The following methods demonstrate the ability to set parameters of the serial port
' through the SerialPort instance. The baud rate of the port will be set in response to
' the corresponding button clicks.
Private Sub button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
SerialPort1.BaudRate = 1200
label2.Text = SerialPort1.BaudRate.ToString()
End Sub 'button3_Click
Private Sub button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click
SerialPort1.BaudRate = 4800
label2.Text = SerialPort1.BaudRate.ToString()
End Sub 'button4_Click
Private Sub button5_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button5.Click
SerialPort1.BaudRate = 9600
label2.Text = SerialPort1.BaudRate.ToString()
End Sub 'button5_Click
Private Sub comboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles comboBox1.SelectedIndexChanged
SerialPort1.StopBits = CType(validStopBits(comboBox1.SelectedIndex), System.IO.Ports.StopBits)
label4.Text = SerialPort1.StopBits.ToString()
End Sub 'comboBox1_SelectedIndexChanged
Private Sub comboBox2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles comboBox2.SelectedIndexChanged
SerialPort1.Parity = CType(validParity(comboBox2.SelectedIndex), System.IO.Ports.Parity)
label6.Text = SerialPort1.Parity.ToString()
End Sub 'comboBox2_SelectedIndexChanged
End Class 'Form1