Imports System.Text
Imports System.IO.Ports
Imports System.Threading
Imports System.ComponentModel
Public Class Main
Dim WithEvents WorkingPort As New SerialPort("com1", 19200)
Private Function EnterCommand(ByVal Input As String) As String
'Add vbcr to the ebd of all commands because the scanner protocall requires it
Dim addVbcr As String = Input & vbCr
Return addVbcr
End Function
Private Sub RecieveScannerData(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles WorkingPort.DataReceived
'Gets data sent by the scanner and displays it in a msgbox
' Also calls the WriteScannerData Sub which does not work and is comented out
Dim ScannerInput As String
ScannerInput = WorkingPort.ReadExisting
MsgBox("data received: " & ScannerInput)
'WriteScannerData(ScannerInput)
End Sub
Private Sub WriteScannerData(ByVal MyDebStr As String)
'Writes scanner data to the txtFeedback TextBox
MsgBox(" passed Value : " & MyDebStr)
txtFeedback.AppendText(MyDebStr)
End Sub
Private Sub btnOpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click
'Opens serialport
If WorkingPort.IsOpen = False Then
WorkingPort.Open()
btnOpenPort.Enabled = False
btnClosePort.Enabled = True
btnEnterCommand.Enabled = True
Else
MessageBox.Show("Port is all ready open")
End If
lblPortStatus.Text = WorkingPort.IsOpen
End Sub
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblPortStatus.Text = WorkingPort.IsOpen
If WorkingPort.IsOpen = False Then
btnOpenPort.Enabled = True
btnClosePort.Enabled = False
btnEnterCommand.Enabled = False
Else
btnOpenPort.Enabled = False
btnClosePort.Enabled = True
End If
End Sub
Private Sub btnClosePort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClosePort.Click
'Closes serialport
If WorkingPort.IsOpen = True Then
WorkingPort.Close()
btnClosePort.Enabled = False
btnOpenPort.Enabled = True
btnEnterCommand.Enabled = False
Else
MessageBox.Show("Port is all ready closed")
End If
lblPortStatus.Text = WorkingPort.IsOpen
End Sub
Private Sub btnEnterCommand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnterCommand.Click
'Sends the command chosen from the combobox "cboCommand" the the scanner via the EnterCommand function
Dim CommandText As String = cboCommand.Text
If WorkingPort.IsOpen = False Then
MessageBox.Show("You need to open the port first")
Exit Sub
ElseIf CommandText.Length = 0 Then
MessageBox.Show("Please Choose a command to send first")
Else
WorkingPort.Write(EnterCommand(CommandText))
End If
End Sub
End Class