0

目前,我目前面临一个小项目,以更新当前的条码系统,以便在扫描时存储一个日志文件。但是,我没有提供当前系统的任何源代码。所以我在想也许我可以开发一个小的 .exe 来运行,它的工作只是将扫描的 ID 以及当前时间戳存储到一个名为 log.txt 的文本文件中。

这是我提供的所有内容:

  1. 在 Windows CE 上运行的小型触摸屏设备,带有内置的条形码扫描仪(成像器)和一些其他端口,包括 USB 端口。
  2. 包含目标代码(exe、dll、pdb、bat 和 xml)和其他多媒体文件的记忆棒。
  3. SDK CD 包含需要安装 VS2005 SP1 的 SDK 平台安装程序 (.msi)。

现在我只是对如何完成工作感到困惑。在过去的 3 天里,我一直在研究这个问题。我的一项 Google 调查结果表明,条形码扫描仪的工作原理就像键盘输入一样?因此,我制作了一个带有文本框的简单 VB6 应用程序来存储它的内容,并在输入 10 位 ID 的同时重置文本框。该应用程序在设备中不可执行(遗憾的是,我发现 VB6 exe 在 winCE 中不可执行)。

此外,我尝试在设备中打开 MS WordPad 并尝试扫描条形码。但是,没有任何内容被复制到写字板。我认为条形码扫描仪的工作方式与键盘输入相同?我的错?任何澄清将不胜感激。

我实际上是条形码和 winCE 开发的新手,如果有帮助,我熟悉以下语言(按顺序):C#、VB6、VB.Net、C、Java。关于完成工作的最快方法有什么建议吗?我相信这不是一项忙碌的工作,但我不知道从哪里开始。

如果需要进一步澄清,请告诉我。提前致谢!

编辑#1:

这是我到目前为止所尝试的(假设条形码扫描就像键盘输入一样工作):(在 VS2005 下使用 VB.Net for Windows CE 5.0 Device)

Private Sub barcodeTB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles barcodeTB.TextChanged
    If (Len(barcodeTB.Text) = 10) Then     'If 10 digits ID have been scanned..
        Using writer As IO.StreamWriter = New IO.StreamWriter("log.txt", True)
            writer.WriteLine(barcodeTB.Text & " " & DateTime.Now)
        End Using
        barcodeTB.Text = ""    'reset TextBox
    End If
End Sub

当我手动输入代码时它工作得很好。但是当我试图扫描我的条形码时为零。

编辑#2: 他们的网站上提供了几个 PDF:http ://www.scantech-id.com/en/support/download.php?pin=42676d021abeff1e479180ffeb4240e5

如果有帮助,我完全确定扫描仪已安装在 COM3 端口中!仍在试图弄清楚这一点。

编辑#3: 所以这是我最后一次尝试:直接通过 COM3 端口的 DataReceived 读取它。

我设置了一个计时器,以便它每 1 秒发送一次传输的数据(如果有的话)。它工作得很好,因为文本框只有在我扫描我的条形码时才会更新。但是,输出的格式不理想。我究竟做错了什么?见下文: 截屏

这是代码:

Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, _
    ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
    Handles SerialPort1.DataReceived
    Q.Enqueue(SerialPort1.ReadExisting())
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    SyncLock Q
        While Q.Count > 0
            receivedTB.Text &= Chr(13) & Chr(10) & Q.Dequeue
        End While
    End SyncLock
End Sub
4

0 回答 0