If you want to use events, make sure you declare your serialPort object using "withevents". In the example below, you can connect to the serial port and raise an event with an accepted string.
Imports System.Threading Imports System.IO Imports System.Text Imports System.IO.Ports Public Class clsBarcodeScanner Public Event ScanDataRecieved(ByVal data As String) WithEvents comPort As SerialPort Public Sub Connect() Try comPort = My.Computer.Ports.OpenSerialPort("COM5", 9600) Catch End Try End Sub Public Sub Disconnect() If comPort IsNot Nothing AndAlso comPort.IsOpen Then comPort.Close() End If End Sub Private Sub comPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles comPort.DataReceived Dim str As String = "" If e.EventType = SerialData.Chars Then Do Dim bytecount As Integer = comPort.BytesToRead If bytecount = 0 Then Exit Do End If Dim byteBuffer(bytecount) As Byte comPort.Read(byteBuffer, 0, bytecount) str = str & System.Text.Encoding.ASCII.GetString(byteBuffer, 0, 1) Loop End If RaiseEvent ScanDataRecieved(str) End Sub End Class
Dilbert789
source share