从SerialPort读取条形码ID不能提供所需的结果

时间:2013-05-22 10:04:37

标签: vb.net windows-ce barcode

我目前正在为嵌入式WinCE设备开发条形码阅读器应用程序,该设备在COM3串行端口中具有内置条形码扫描器。我编写了以下代码,以便每次扫描条形码时检测到(当COM3接收数据时)。

(VS2005:适用于SmartDevice的VB.NET:Windows CE 5.0)

Private Sub sp1_DataReceived(ByVal sender As System.Object, _
    ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
    Handles sp1.DataReceived

    Q.Enqueue(sp1.ReadExisting)
End Sub

我使用计时器显示扫描的ID。

SyncLock Q
    While Q.Count > 0
       barcodeLbl.Text &= Q.Dequeue
    End While
End SyncLock

每次扫描条形码时都会显示ID。这很好。但是,我没有在barcodeLbl.Text中获取正确的ID。相反,当我在上面的代码中使用 sp1.ReadChar 时,我使用 sp1.ReadExisting 和几个ASCII数字时得到了类似:“F +)i + i~”。

这是我发现的:

F +)i + k~ ”对应于“9920021101”

F +)i + i~ ”对应于“9920021102”

F +)i + k~ ”对应于“9920021103”

F +)i + m~ ”对应于“9920021104”

(101和103给出相同的结果)

现在我只需要我的SerialPort给我正确的ID。现在已经被困在这一天了。如果有人能够确定我做错了什么,我将非常感激。提前谢谢。

0 个答案:

没有答案