我使用的是摩托罗拉DS4208手持式条形码阅读器。在过去,我能够成功设置和使用此设备,但最近它已停止工作。这可能是安装其他设备的结果,这些设备也使用OPOS和POS作为.Net接口。
这是一个USB设备,所以我创建了一个名为* Moto_Scanner.xml *的控制配置文件,并将其放在正确的位置。
<PointOfServiceConfig Version="1.0">
<ServiceObject Type="Scanner" Name="Example Scanner">
<HardwareId
From="HID\VID_05E0&PID_1300&REV_0100"
To="HID\VID_05E0&PID_1300&REV_0100" />
<HardwareId
From="HID\VID_05E0&PID_1300"
To="HID\VID_05E0&PID_1300" />
</ServiceObject>
</PointOfServiceConfig>
使用SOMgr.exe我可以在POSDevices中看到具有正确路径的设备。然后我创建了MotoScan的LogicalName。然后它按预期显示在“逻辑名称”列表中。
使用Microsoft Point of Service \ SDK \ Samples \ Sample Application \ TestApp.exe我能够打开并声明该设备。但是,在尝试单击启用复选框后,我收到以下错误消息。
POSControlException ErrorCode(Failure) ExtendedErrorCode(0) occurred: Unable to enable the device. See inner exception for details.
System.ComponentModel.Win32Exception: The process cannot access the file because it is being used by another process
at Microsoft.PointOfService.ExampleServiceObjects.HidReader.HidThread.StartReading()
at Microsoft.PointOfService.ExampleServiceObjects.HidReader.OpenDevice()
at Microsoft.PointOfService.ExampleServiceObjects.ExampleScanner.set_DeviceEnabled(Boolean value)
Opened device: Example Scanner
Created instance of device: Example Scanner
摩托罗拉提供名为123Scan的应用程序来协助配置和测试。使用此应用程序,我可以确认该设备有效。此应用最终作为故障排除的一部分卸载。
任何建议都将受到赞赏。
答案 0 :(得分:1)
答案 1 :(得分:0)
通过学习过程,很明显打开和声明设备并不意味着它实际上是连接的。 POS资源管理器允许您打开连接并声明设备专用,即使它没有物理连接。这部分是因为POS Explorer正在使用服务对象与硬件进行通信。
在您启用设备之前,您将获得肯定确认设备可用。实际上,如果启用失败,则表示您已确认设备未连接。
摩托罗拉DS4208手持式扫描仪不需要定制的配置映射文件。安装Motorola ADK后,安装了正确的服务对象,并且内部存储了硬件ID。在我之前的代码中,我尝试使用POS Explorer SDK中提供的“示例扫描程序”服务对象与该硬件进行通信,这是我的主要错误。
安装了符号扫描仪v3.31的OPOS驱动程序后,我没有测试硬件的麻烦。