Hi I am trying to figure out how to read raw data from a serial port and display this data into a rich text box "rtbReceived". The raw data is in byte format.
This is what I have so far, any simple sample code would help. Thank you
This is what I have so far, any simple sample code would help. Thank you
Imports System Imports System.ComponentModel Imports System.Threading Imports System.IO.Ports Public Class frmMain Dim myPort As Array 'COM Ports detected on the system will be stored here Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'When our form loads, auto detect all serial ports in the system and populate the cmbPort Combo box. myPort = IO.Ports.SerialPort.GetPortNames() 'Get all com ports available cmbBaud.Items.Add(9600) 'Populate the cmbBaud Combo box to common baud rates used cmbBaud.Items.Add(19200) cmbBaud.Items.Add(38400) cmbBaud.Items.Add(57600) cmbBaud.Items.Add(115200) For i = 0 To UBound(myPort) cmbPort.Items.Add(myPort(i)) Next cmbPort.Text = cmbPort.Items.Item(0) 'Set cmbPort text to the first COM port detected cmbBaud.Text = cmbBaud.Items.Item(0) 'Set cmbBaud text to the first Baud rate on the list btnDisconnect.Enabled = False 'Initially Disconnect Button is Disabled End Sub Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click SerialPort1.PortName = cmbPort.Text 'Set SerialPort1 to the selected COM port at startup SerialPort1.BaudRate = cmbBaud.Text 'Set Baud rate to the selected value on 'Other Serial Port Property SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.DataBits = 8 'Open our serial port SerialPort1.Open() btnConnect.Enabled = False 'Disable Connect button btnDisconnect.Enabled = True 'and Enable Disconnect button End Sub Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click SerialPort1.Close() 'Close our Serial Port btnConnect.Enabled = True btnDisconnect.Enabled = False End Sub Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) ReceivedText(SerialPort1.ReadByte()) 'Automatically called every time a data is received at the serialPort End Sub Private Sub cmbPort_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbPort.SelectedIndexChanged If SerialPort1.IsOpen = False Then SerialPort1.PortName = cmbPort.Text 'pop a message box to user if he is changing ports Else 'without disconnecting first. MsgBox("Valid only if port is Closed", vbCritical) End If End Sub Private Sub cmbBaud_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbBaud.SelectedIndexChanged If SerialPort1.IsOpen = False Then SerialPort1.BaudRate = cmbBaud.Text 'pop a message box to user if he is changing baud rate Else 'without disconnecting first. MsgBox("Valid only if port is Closed", vbCritical) End If End Sub End Class
Last edited by a moderator: