【问题标题】:Sending Control Commands to USB Barcode Reader向 USB 条码阅读器发送控制命令
【发布时间】:2021-06-03 09:15:30
【问题描述】:

我们正在我们的一款产品中集成新的条码阅读器 (Newland NLS-FM430),我们需要控制其功能。我们已经用另一个阅读器实现了这个行为,但它是一个 RS232 版本,所以我们能够发送命令并等待它的输入。新版本是 USB 版本,它使事情变得不同。

通常,我们希望在应用程序启动时初始化条形码阅读器(例如,禁用读取设置代码)并将其关闭。然后我们想在需要输入时启用它,并在读取数据后再次禁用它。所有这些操作都有命令,记录在user guide中。

在尝试与 USB 设备通信时出现问题。当连接到计算机时,它充当普通键盘(人机接口设备,设备管理器中的 HID),我们需要向它发送命令。为此,我们需要向设备打开一个流并写入其中。我们尝试了不同的库和解决方案,但打开设备总是失败并出现 ACCESS_DENIED 错误。我怀疑该设备已被锁定,因为 Windows 将其用作键盘。

我发现this topic 讨论了一个类似的问题。他们通过删除设备路径中的后缀 /kbd 找到了解决方法(我们的也有此后缀),但删除它对我们不起作用 - 它说它找不到设备。

我正在研究 C# 或 C/C++ 中的解决方案,它可以打开与 USB 设备的连接并对其进行写入。非常感谢任何帮助。

【问题讨论】:

    标签: barcode-scanner hid


    【解决方案1】:

    您介绍的用户指南指出扫描仪仍支持串行端口模式。

    第 76 页:USB CDC
    第 79 页:IBM SurePOS(手持式)
    第 79 页:IBM SurePOS(桌面)

    您可以在键盘输入仿真模式下停止使用它并使用串口模式。


    这是因为,同样在用户指南的第 14 页Chapter 3 System Settings 上,说明用户可以通过串行命令进行编程。

    命令编程

    FM430 也可以通过从主机设备发送的串行命令进行配置。
    用户可以设计应用程序将这些命令字符串发送到扫描仪以执行设备配置
    更多信息请参考基于Newland统一命令集的编程指南。

    此外,供应商提供的配置工具(也在用户指南的第 13 页Chapter 2 EasySet)不支持在键盘输入模拟模式下进行配置。

    EasySet 可以通过以下接口之一与设备通信:RS 232、USB COM 端口仿真(需要 UFCOM 驱动程序)、USB CDC(需要 UFCOM 驱动程序)、USB DataPipe(需要 UFCOM 驱动程序)、USB HID POS。


    此外,第 77 页上的 HID POS (POS HID Barcode Scanner) 模式允许配置和输入/输出作为 USB.org 规范 HID Point of Sale Usage Tables 1.02 中所述的 HID 的变体。

    但是,该方法将无法通知通过键盘输入模拟方法读取的条形码。而且它需要比串口模式下的设置/输入/输出更复杂的编程。

    【讨论】:

    • 您的回答和更多的研究使我找到了实现这一点的正确方法。如果将来有人登陆这里,这些是步骤: * 从newlandamerica.com/h-pd-119.html 安装 ufcom-1.7.2.msi,它是一个驱动程序并创建一个虚拟 COM 端口 * 从这一刻起,可以通过向设备发送数据来对设备进行编程如用户指南中所述 * 没有记录获取扫描的数据,而只是在命令后收听传入的数据。它以两个特殊字节结束,可以通过试验/错误检查。
    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多