在Windows 10上使用PointOfService检测条形码扫描器

时间:2018-03-29 08:46:51

标签: c# uwp barcode-scanner

我想通过Windows.Devices.PointOfService命名空间使用带有Windows 10(Build 15063)的条形码扫描程序。扫描仪是Datalogic Quickscan QD2430,我尝试了所有RS-232和键盘模式。

我使用了官方示例应用程序https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BarcodeScanner但没有运气。它可以检测设备,但它绝对是内置网络摄像头(HP笔记本电脑)。

我尝试修改源,即DeviceHelpers的GetFirstDeviceAsync函数https://github.com/Microsoft/Windows-universal-samples/blob/master/SharedContent/cs/DeviceHelpers.cs

DeviceInformation.FindAllAsync也仅返回相机的信息。

string selector = BarcodeScanner.GetDeviceSelector(PosConnectionTypes.All);
DeviceInformation.FindAllAsync(selector);

它什么都不返回。

DeviceInformation.FindAllAsync(DeviceClass.ImageScanner);

它返回每个连接,我认为以前连接但当前脱机的设备。我试图按名称过滤扫描仪。也有很多过滤结果,但convertAsync函数为所有例外返回null,它抛出异常"连接到系统的设备无法运行。 (HRESULT异常:0x8007001F)"。

DeviceInformationCollection infos = await DeviceInformation.FindAllAsync(DeviceClass.All);
foreach(DeviceInformation info in infos)
{
    if (info.Name.ToUpper().Contains("BARCODE"))
    {
        T scanner = await convertAsync(info.Id);
        if (scanner != null)
        {
            return scanner;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

Datalogic Quickscan QD2430不在list of devices supported by Windows.Devices.PointOfService

要求Datalogic提供支持Windows.Devices.PointOfService的设备驱动程序,或将扫描程序更改为支持列表中描述的扫描程序。

或者,根据Point of Service (POS) of Windows Driver Kit创建您自己的设备驱动程序。