Я использую ручной считыватель штрих-кодов Motorola 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. Затем он появится в списке логических имен, как и ожидалось.
Используя 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
Motorola предоставляет приложение под названием 123Scan для помощи в настройке и тестировании. Используя это приложение, я могу подтвердить, что устройство работает. В конечном итоге это приложение было удалено в рамках устранения неполадок.
Любые предложения будут оценены.