Imports System.IO.Ports 'para el uso del serial port
Public Class Form1
Dim DataIn As String = String.Empty
Delegate Sub SetTextCallback(ByVal text As String)
Private Sub SetText(ByVal text As String)
If Me.txtRecep.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {text})
Else
Me.txtRecep.Text &= text
End If
End Sub
Private Sub PtoSerial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles PtoSerial.DataReceived
DataIn = Me.PtoSerial.ReadExisting
If DataIn <> String.Empty Then
SetText(DataIn)
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Llenando el combobox con la lista de puertos
Dim SelPort As String
Dim Puertos() As String = SerialPort.GetPortNames
For Each SelPort In Puertos
Me.cmbSelPort.Items.Add(SelPort)
Next
End Sub
Private Sub cmbSelPort_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbSelPort.SelectionChangeCommitted
If Me.PtoSerial.IsOpen Then
End If
Me.PtoSerial.PortName = Me.cmbSelPort.SelectedItem.ToString
Me.ToolStripStatusLabel1.Text = String.Format("{0} {1}:8N1",
Me.PtoSerial.PortName,
Me.PtoSerial.BaudRate.ToString) Try
PtoSerial.Open()
Catch ex As Exception
MessageBox.Show("El puerto no está disponible", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Me.cmbSelPort.SelectedText = ""
Me.ToolStripStatusLabel1.Text = "Selecciona un COM"
End Try
End Sub
Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
If Me.PtoSerial.IsOpen Then
Me.PtoSerial.WriteLine(Me.txtEnvio.Text)
Me.txtEnvio.Clear()
Else
MessageBox.Show("El puerto está cerrado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Me.txtEnvio.Clear()
End If
End Sub
Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
Me.txtRecep.Clear()
End Sub
Private Sub btnBRate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBRate.Click
PtoSerial.BaudRate = CInt(txtBRate.Text)
Me.ToolStripStatusLabel1.Text = String.Format("{0} {1}:8N1",
Me.PtoSerial.PortName,
Me.PtoSerial.BaudRate.ToString) End Sub
End Class