我正在开发一个用于数据收集的Windows应用程序,我的应用程序的用户将需要从扫描仪读取数据,因此我使用SerialPort来读取条形码。下面是数据读取子,我使用事件处理程序来处理条形码读取事件。我试过readExisting,但它根本不起作用,下面是代码可以读取并返回某些但尚未正确的。你能帮帮我吗?
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,.............. ........,它根本不像条形码。我不知道我只能读取字节?如何将其解码为字符串代码?
答案 0 :(得分:0)
确保使用扫描仪所需的正确参数初始化串行端口(请参阅硬件文档)。像波特率,奇偶校验,数据位,停止位。制造商对其设备有不同的设置。