使用 Symbol 数字图像扫描仪进行 OPOS 图像采集

Posted

技术标签:

【中文标题】使用 Symbol 数字图像扫描仪进行 OPOS 图像采集【英文标题】:OPOS image capture with Symbol Digital Image Scanner 【发布时间】:2011-12-25 17:06:16 【问题描述】:

我们的应用程序目前使用 Motorola/Symbol DS6707 数字图像扫描仪进行图像捕获和条码扫描。我们通过 Moto SNAPI 驱动程序与扫描仪通信。由于这是特定于摩托罗拉/符号扫描仪的,我正在考虑使用更通用的接口(例如 OPOS)进行重写。这是在 C/C++ 应用程序中。

我们内部还有一台霍尼韦尔成像扫描仪,我们正在使用它进行测试。该型号(Xenon 1900)还支持成像和条形码扫描。

两种扫描仪都有 OPOS 驱动程序,以支持“扫描仪”(条形码阅读器)设备类。两者都没有作为“成像扫描仪”的支持。但是,霍尼韦尔支持使用 DirectIO 通过扫描仪驱动程序进行成像,这在他们的 SDK 中有记录。

有谁知道摩托罗拉 OPOS 驱动程序是否支持映像,如果支持,DirectIO 命令是什么?我找不到任何 SDK 或其他有关 Motorola/Symbol OPOS 支持的文档。

谢谢!

【问题讨论】:

【参考方案1】:

我们还在研究解决方案,使用 UPOS 为使用 Honeywell Xenon 1900 或 4600 的 ImageScanner 设备创建标准接口。

我已与制造商联系。到目前为止,他们没有太多帮助。

我们采用的方法是使用直接 i/o 来初始化图像扫描仪并通过 USB HID 接口下拉图像。我们已经通过 USB HID 接口(即插即用)建立了与设备的连接。

我认为这样做是有可能的,但并不简单。

如果您想在这方面进行合作,请告诉我。 devbrilliance@live.com

【讨论】:

据我回忆,霍尼韦尔驱动程序并没有将自己显示为图像扫描仪类。它看起来像是一个扫描仪,但支持通过直接 IO 进行图像捕获。他们的示例 OPOS 应用程序演示了该功能,但根据我的经验,图像质量欠佳。 你是对的。霍尼韦尔(或任何其他扫描仪制造商)不支持图像扫描仪类。无论如何,这就是 Direct i/o 的目的,即启用服务对象不直接支持的功能。我希望可以修改服务对象本身来直接完成其中的一些工作,这是我们目前正在审查的任务。 通用 POS 规范确实需要 ImageScanner 类,它可能与扫描仪类交互,也可能不交互。我们正在讨论的设备应该是 ImageScanner,因为它们支持图像和条形码捕获。查看 ImageScanners 的序列图(Universal POS 1.13 规范的第 667-670 页)。似乎完全适合这类设备。 此时,我们的意图是按原样使用 Honeywell 驱动程序,因为它们在 32 位和 64 位操作系统中都能正常工作。我们将使用带有 DirectIO 的 Scanner 类。由于 Motorola/Symbol 驱动程序根本不支持 64 位,即使支持图像捕获也不支持,我们目前正在研究使用与硬件相同的 DirectIO 命令编写我们自己的 OPOS 控件以保持一致性。 您好 Tevo。我们相信我们会在接下来的 30 天内解决这个问题并拥有功能强大的 ImageScanner 驱动程序。由于我们已经产生了成本,我们可能会根据许可提供驱动程序出售以补偿我们的成本。【参考方案2】:

无法直接通过 Symbol/Motorola 网站找到文档。在Symbol website 上进行了许多创意谷歌搜索并在第 3-5 页发现 DirectIO 是“不支持的。总是返回 OPOS_E_ILLEGAL”后,我最终找到了 MOTOROLA SCANNER OPOS DRIVER DEVELOPER'S GUIDE。 p>

猜想我们需要找到另一个解决方案。

【讨论】:

以上是关于使用 Symbol 数字图像扫描仪进行 OPOS 图像采集的主要内容,如果未能解决你的问题,请参考以下文章

数字图像处理复习笔记

关于Android手持机,扫描枪的问题,怎么获取扫描的信息

如何进行数字图像处理中的膨胀和腐蚀计算

想学习halcon需要啥基础

Android实现扫一扫识别图像数字(使用训练的库拍照查看扫描结果)(下)

如何创建 OPOS 服务对象虚拟打印机 - c#