0

我目前正在为嵌入式 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时会得到类似“F+)i+i~”的结果。

这是我发现的:

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

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

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

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

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

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

4

0 回答 0