What's new

Closed Rfid reader (datareceived) not trigger/firing

Status
Not open for further replies.

KoeeLouise

Enthusiast
Joined
Jun 22, 2017
Posts
2
Reaction
1
Points
63
Mga ka Ph . newbie here bka pede nyo ako matulungan about d2 sa project ko.
ito ung scratch codes ko for testing.

Note:
RFID unit is a Reader/encoder using rs232 serial port.
(device name unknown nabili sa china ang unit)

Public Class frm_main
Dim WithEvents myComPort As New System.IO.Ports.SerialPort
Dim data As String

Private Sub btnstart_Click(sender As Object, e As EventArgs) Handles btnconnect.Click

If Not ComboBox1.SelectedItem Is Nothing Then
If Not myComPort.IsOpen Then
Try

With myComPort

.PortName = "COM2"
.BaudRate = 38400
.DataBits = 8
.Parity = IO.Ports.Parity.Even
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
AddHandler .DataReceived, AddressOf DataReceived
gb1.Text = "Connected"

End With
myComPort.Open()
ComboBox1.Enabled = False
btnconnect.Enabled = False
btndisconnect.Enabled = True
rb1.Enabled = True
rb2.Checked = True

Catch ex As Exception
MsgBox("Unable to Open COM Port. Please check if your device is connected properly.", MsgBoxStyle.Critical)
End Try
End If
Else
MsgBox("Select a valid COM Port", MsgBoxStyle.Information)
End If
End Sub
Private Sub btndisconnect_Click(sender As Object, e As EventArgs) Handles btndisconnect.Click
ComboBox1.Enabled = True
btndisconnect.Enabled = False
btnconnect.Enabled = True
rb1.Enabled = False
rb2.Checked = True
myComPort.Close()
gb1.Text = "Disconnected"
End Sub

Private Sub frm_main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each portName As String In My.Computer.Ports.SerialPortNames
ComboBox1.Items.Add(portName)
Next
'CheckBox1.Checked = True
If Not myComPort.IsOpen Then
btndisconnect.Enabled = False
ComboBox1.Text = ComboBox1.Items(0)
rb1.Enabled = False
rb2.Checked = True
Else
btnconnect.Enabled = False
ComboBox1.Text = myComPort.PortName
rb2.Checked = True
End If
End Sub
Private Sub rb1_CheckedChanged(sender As Object, e As EventArgs) Handles rb1.CheckedChanged
myComPort.DtrEnable = True
txtdisplay.Focus()
'txtdisplay.BeginInvoke(New myDelegate(AddressOf updateTextBox), New Object() {})
End Sub

Private Sub rb2_CheckedChanged(sender As Object, e As EventArgs) Handles rb2.CheckedChanged
myComPort.DtrEnable = False
txtdisplay.Focus()
End Sub
Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
txtdisplay.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {})
End Sub
Public Delegate Sub myDelegate()

Public Sub updateTextBox()

data = data + myComPort.ReadExisting()
MsgBox(data)
If Len(data) <= 12 Then
txtdisplay.Text = txtdisplay.Text + Mid(data, 2, 11) & vbLf
myComPort.DtrEnable = False
rb1.Enabled = False
rb2.Checked = True

Dim timeOut As DateTimeOffset = Now.AddMilliseconds(500)
Do
Application.DoEvents()
Loop Until Now > timeOut
data = myComPort.ReadExisting()
myComPort.DiscardInBuffer()
'data = ""
myComPort.DtrEnable = True
rb1.Enabled = True
rb2.Checked = True

End If
End Sub


Private Sub btnclear_Click(sender As Object, e As EventArgs) Handles btnclear.Click
txtdisplay.Text = ""
End Sub


End Class
 
Status
Not open for further replies.

Similar threads

Back
Top