Mono работа с USB Com портом
От: salvequick  
Дата: 06.02.19 14:46
Оценка:
Добрый день коллеги,

Пожалуйства сооритентируйте как правильно работать с USB Com портом
Работать должно на Win и Mac (Mono)

Мне надо определить правильный COM порт ( тот который был создан моим устройством )
и затем работать с ним передавая и принимая данные.

Пока мне это видится так.
1) Используя библитеку USBLibDotNet определяю устройство по VID и PID
 UsbDeviceFinder usbFinder = new UsbDeviceFinder(VID, PID);
 UsbDevice usbDevice = UsbDevice.OpenUsbDevice(usbFinder);


2) Использую SerialPort класс для работы с найденным ком портом

Нет ли в моих умозаключениях изъянов?
Re: Mono работа с USB Com портом
От: BlackEric http://black-eric.lj.ru
Дата: 06.02.19 15:22
Оценка:
Здравствуйте, salvequick, Вы писали:

Если у вас COM порт, то вы должны искать нужный перебирая COM порты.
Потом его открываете и работаете с ним. Примеров в сети полно
https://github.com/BlackEric001
Re: Mono работа с USB Com портом
От: VladCore  
Дата: 06.02.19 18:31
Оценка:
Здравствуйте, salvequick, Вы писали:

S>Пожалуйства сооритентируйте как правильно работать с USB Com портом

S>Работать должно на Win и Mac (Mono)

В Windows из реестра можно только прочитать список активных COM-портов (к которым хоть что нибудь подключено). Про эти примеры наверно писал BlackErick. Однако же в таком случае у пользователя надо обязательно спрашивать этот ли COM-порт у него. Иначе если ты попробуеш приконектится не к тому устройству со совим (не тем) протоколом, то можеш вывести из строя работу с тем другом устройством.
Re[2]: Mono работа с USB Com портом
От: salvequick  
Дата: 07.02.19 09:45
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>В Windows из реестра можно только прочитать список активных COM-портов (к которым хоть что нибудь подключено). Про эти примеры наверно писал BlackErick. Однако же в таком случае у пользователя надо обязательно спрашивать этот ли COM-порт у него. Иначе если ты попробуеш приконектится не к тому устройству со совим (не тем) протоколом, то можеш вывести из строя работу с тем другом устройством.


При подключении моего USB устройства в систему появляется виртуальный COM порт.
Т.е COM порт это USB устройство.

Я к сожалению не могу спросить у пользователя какой COM порт использовать.
Мне надо то самому понять какой порт правильный.
Поэтому я и подумал о чтении списка USB устройств.

Также код должен быть кроссплатформенным, в рамках Mono должно работать.
Я не могу использовать WIN API, чтение реестра и т.д
Re[3]: Mono работа с USB Com портом
От: VladCore  
Дата: 07.02.19 16:22
Оценка:
Здравствуйте, salvequick, Вы писали:


S>Я к сожалению не могу спросить у пользователя какой COM порт использовать.

S>Мне надо то самому понять какой порт правильный.
S>Поэтому я и подумал о чтении списка USB устройств.

OK. И что не получается? И в реестре и в WMI (MSSerial_PortName) список COM-портов есть и там и там.

S>Также код должен быть кроссплатформенным, в рамках Mono должно работать.

S>Я не могу использовать WIN API, чтение реестра и т.д


И где про это написано
Re[3]: Mono работа с USB Com портом
От: BlackEric http://black-eric.lj.ru
Дата: 08.02.19 09:38
Оценка:
Здравствуйте, salvequick, Вы писали:

S>Я к сожалению не могу спросить у пользователя какой COM порт использовать.

S>Мне надо то самому понять какой порт правильный.
S>Поэтому я и подумал о чтении списка USB устройств.

А можно соотнести usb device с компортом?

S>Также код должен быть кроссплатформенным, в рамках Mono должно работать.

S>Я не могу использовать WIN API, чтение реестра и т.д

Всегда перебирали порты на компе и пробовали открыть порт и послать запрос на определение наше ли это устройство. Проблем с помешать другим не возникало. Да и ком портов сейчас нет уже практически.
https://github.com/BlackEric001
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.