macos - 在 OS X 上的 Datalogic 条码扫描仪中启用 USB-OEM (HID POS) 模式

标签 macos usb barcode-scanner

我正在尝试通过应用程序在 Mac 上使用 Datalogic 条码扫描仪(Gryphon 44xx 型号)(即我没有编写设备驱动程序)。

我不想使用扫描仪的键盘模拟,而是使用特殊的 USB HID 扫描仪协议(protocol),Datalogic 称为“USB-OEM”模式。

我已经成功地在此模式下使用了不同的扫描仪(GoDEX 模型),每当它扫描代码时都会向我发送 HID 数据包。

但是,数据记录扫描仪不会尝试扫描也不会将扫描数据发送到 Mac。

然后我了解到Datalogic得利捷扫描仪希望在开始扫描之前从主机获取额外的配置数据。有人告诉我需要发送包含以下内容的 HID 数据报:{0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}{1, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} (该人通过使用 USB 数据包嗅探器发现了这一点)。 (See German forum article)。

但是,我不知道如何在 OS X 上实现这一点。或者更确切地说,无论我尝试过什么,它都不起作用。最好的情况是,我得到的响应值为 81 00 00 00 00 00 00 00 00,但也不知道这意味着什么。

我尝试使用 USB Prober(在 OS X 10.7.5 上)来查看实际传输到扫描仪的数据,但该工具似乎无法向我显示传输的数据包:它的日志记录功能在级别 6 时,我什么也看不到,而在级别 7 时,我每秒获得 1000 行输出,并且无法找到与我的通信相关的任何数据包数据 - 遗憾的是,也没有该工具的文档,或者有吗?

我还查看了一些 USB HID 和 POS(销售点)规范,但我不明白其中任何一个,尽管看了几个小时。

任何人都可以给我一些关于如何解释 POS 规范、如何找到启用扫描仪的选项以及它与用于配置它的 IOKit(用户级)功能的关系的指示吗?我的意思是,有很多关于报告之类的内容,但我无法将规范和 OS X API 之间的点联系起来。

最佳答案

事实证明我错误地解释了记录的数据。

扫描器需要发送一条只有 11 个字节的消息:{17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

这将启用它。

然后扫描仪以以下格式响应 64 字节长度的数据报:

Byte 0: length of payload
Byte 1: status byte 0
Byte 2: status byte 2
Byte 3: status byte 2
Byte 4 to <length minus 4>: barcode data and type code
Byte <length of payload> to 63: zero

类型代码是标识标签类型的一到三个字节,例如QR 码为 00h 33h 0Bh,Code 128 为 00h 18h 0Bh。

关于macos - 在 OS X 上的 Datalogic 条码扫描仪中启用 USB-OEM (HID POS) 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35526928/

相关文章:

c# - Delcom USB 7段显示器C#

Android、AOA2、USB 同步音频流

image-processing - 条码阅读器程序 : barcode Identification methods

iphone - 哪种 iPhone 条码阅读器

ios - 扫描仪 View 中的导航栏 - IOS - Swift

macos - 在 Mac OS X 应用程序中调整屏幕亮度

macos - 通过终端添加应用到dock

android - 使用 'android' 命令行实用程序定位特定系统镜像版本?

c++ - 我如何在 Mac OS 中链接 linux .so 共享库?

camera - USB相机协议(protocol)