找到了BarcodeScanner,但无法与Windows.Devices.PointOfService

时间:2018-09-11 08:50:47

标签: c# uwp barcode-scanner pointofservice

我创建了一个观察者,可使用BarcodeScanner连接到Windows.Devices.PointOfService

var watcher = DeviceInformation.CreateWatcher(BarcodeScanner.GetDeviceSelector());
var id = "";
watcher.Added += async (sender, information) =>
{
    id = information.Id;
    var barcodeScanner = await BarcodeScanner.FromIdAsync(id);
    ...
}

信息参数包含所有重新添加到我的条形码扫描器的数据,但是当我尝试使用FromIdAsync获取它时,它始终为null。 这些是包含在信息中的数据

-       information {Windows.Devices.Enumeration.DeviceInformation} Windows.Devices.Enumeration.DeviceInformation
        EnclosureLocation   null    Windows.Devices.Enumeration.EnclosureLocation
        Id  "\\\\?\\HID#VID_0536&PID_02E1&MI_01#c&d907bf5&0&0000#{c243ffbd-3afc-45e9-b3d3-2ba18bc7ebc5}\\POSBarcodeScanner" string
        IsDefault   false   bool
        IsEnabled   true    bool
        Kind    DeviceInterface Windows.Devices.Enumeration.DeviceInformationKind
        Name    "3800G" string
+       Pairing {Windows.Devices.Enumeration.DeviceInformationPairing}  Windows.Devices.Enumeration.DeviceInformationPairing
+       Properties  {System.__ComObject}    System.Collections.Generic.IReadOnlyDictionary<string, object> {System.__ComObject}
+       Native View 0x1d148140 <Information not available, no symbols loaded for Windows.Devices.Enumeration.dll>   IUnknown *

该设备被列为允许通过POS访问。

我错了哪里?我还尝试过在单击按钮后创建观察者,但是没有改变。

2 个答案:

答案 0 :(得分:0)

如果您使用的扫描仪的型号名称如问题代码中的“ 3800G”,则Windows.Devices.PointOfService可能不支持它。

下面是受支持型号的列表。

Supported Point of Service Peripherals

如果要与Windows.Devices.PointOfService一起使用,请将其更改为此处描述的模型。


此外:

统一的POS标准和Windows®Embedded for Service Point是OPOS / POS for .NET / JavaPOS API。它不是Windows.Devices.PointOfService API。

该型号未在Honeywell's site上列出。

并且,日本的销售代理商可能会在销售结束时显示出来。可能是旧模式了。最好切换到新模型。


例如,detailed manual of 1900 series第21页介绍了USB HID条形码扫描仪模式设置。

如果3800G手册中没有此模式设置说明,则不能在3800G上使用Windows.Devices.PointOfService API。

如果可以设置,则可以安装与该模式相对应的设备驱动程序。

答案 1 :(得分:0)

@Luigi Saggese

您必须首先将此扫描仪置于USB HID条形码扫描仪模式。请参阅Honeywell 3800g Users Guide的1-3页以获取使扫描仪进入此模式的编程代码。

一旦扫描仪处于此模式,您将在Windows设备管理器中看到一个POS条形码扫描仪节点。特定的扫描仪将使用支持USB HID POS扫描仪协议的内置类驱动程序,在设备管理器中显示为POS HID条形码扫描仪。此时,它应该可以与您的Watcher一起使用。

Terry Warwick,微软