System.IO.DirectoryNotFoundException при вызове SerialDevice.FromIdAsync - PullRequest
0 голосов
/ 10 марта 2020

Я делаю простой вспомогательный класс для доступа к моему сканеру штрих-кода. Я могу сделать это с помощью конструктора SerialPort, например:

new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);

Но я хочу, чтобы мой класс автоматически определял имя порта propper, поэтому сначала я нахожу DeviceInformation:

var all = await DeviceInformation.FindAllAsync();

var foundBarcode = all.First(device => device.Name.ToLower().Contains("barcode"));

Затем я пытаюсь получить Это выглядит так:

var serialDevice = await SerialDevice.FromIdAsync(foundBarcode.Id);

Но когда я это делаю, я получаю 'System.IO.DirectoryNotFoundException' в System.Private.CoreLib.dll.

Как я могу это исправить?

PS. У меня есть возможность последовательной связи в моем манифесте.

1 Ответ

1 голос
/ 10 марта 2020

Я нашел решение, по-видимому,

DeviceInformation.FindAllAsync();

возвращает элементы с идентификаторами, отличными от

string selector = SerialDevice.GetDeviceSelector();
var all = await DeviceInformation.FindAllAsync(selector);

Теперь это работает, я думаю, когда первый подход добавляет некоторый USB-идентификатор для эмулируемых COM.

...