无法使用POS为.Net启用声明的设备

时间:2011-06-15 23:43:21

标签: c# .net barcode-scanner opos pos-for-.net

我使用的是摩托罗拉DS4208手持式条形码阅读器。在过去,我能够成功设置和使用此设备,但最近它已停止工作。这可能是安装其他设备的结果,这些设备也使用OPOS和POS作为.Net接口。

这是一个USB设备,所以我创建了一个名为* Moto_Scanner.xml *的控制配置文件,并将其放在正确的位置。

<PointOfServiceConfig Version="1.0">
<ServiceObject Type="Scanner" Name="Example Scanner">
<HardwareId 
    From="HID\VID_05E0&amp;PID_1300&amp;REV_0100" 
    To="HID\VID_05E0&amp;PID_1300&amp;REV_0100" />
<HardwareId 
    From="HID\VID_05E0&amp;PID_1300" 
    To="HID\VID_05E0&amp;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的应用程序来协助配置和测试。使用此应用程序,我可以确认该设备有效。此应用最终作为故障排除的一部分卸载。

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

您是否尝试过安装OPOS驱动程序?

编辑:

您应该在http://support.symbol.com主动搜索“OPOS驱动程序”,而不是在每次过期时重新链接它,以便您可以下载适当平台的驱动程序。

答案 1 :(得分:0)

通过学习过程,很明显打开和声明设备并不意味着它实际上是连接的。 POS资源管理器允许您打开连接并声明设备专用,即使它没有物理连接。这部分是因为POS Explorer正在使用服务对象与硬件进行通信。

在您启用设备之前,您将获得肯定确认设备可用。实际上,如果启用失败,则表示您已确认设备未连接。

摩托罗拉DS4208手持式扫描仪不需要定制的配置映射文件。安装Motorola ADK后,安装了正确的服务对象,并且内部存储了硬件ID。在我之前的代码中,我尝试使用POS Explorer SDK中提供的“示例扫描程序”服务对象与该硬件进行通信,这是我的主要错误。

安装了符号扫描仪v3.31的OPOS驱动程序后,我没有测试硬件的麻烦。