【发布时间】:2023-03-04 22:15:01
【问题描述】:
我正在开发一个用于数据收集的 Windows 应用程序,我的应用程序的用户需要从扫描仪读取数据,所以我使用 SerialPort 来读取条形码。下面是数据读取子,我使用事件处理程序来处理条形码读取事件。我尝试了 readExisting,但它根本不起作用,下面是代码可以读取并返回 someting 但还不正确。你能帮帮我吗?
Private Sub mySerialPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim n As Integer = mySerialPort.BytesToRead 'find number of bytes in buf
comBuffer = New Byte(n - 1) {} 're dimension storage buffer
mySerialPort.Read(comBuffer, 0, n) 'read data from
For Each b As Byte In comBuffer 'doesn't work
str &= CStr(comBuffer(b)) 'doesn't work
Next
End Sub
电脑上有一个叫smartWedgeLite的软件,它可以打开和关闭扫描仪,从com1获取条码。我只想在我的应用程序中使用这个功能代码,所以我可以在我的应用程序中打开和关闭com1,但我无法返回正确的条形码数据。你能告诉我这个程序有什么问题,为什么我不能获取返回的整个条形码字符串?例如,使用 smartWedgelite 软件,我得到返回的条码结果“0026229420764”。我上面的程序可以读取并创建一个字节数组“comBuffer”,但不能返回像“0026229420764”这样的整个字符串,我试图打印这个字节数组中的每个字节,comBuffer(0) 到 comBuffer(N) 的结果就像2,0,100,1,0,1,0,0,0,0,0,0,13,0,0,0,5,48,48,....... ........,它根本不像条码。我不知道我只能以字节读取?如何将其解码为字符串代码?
【问题讨论】:
标签: vb.net