COM-порт
От: Кондраций Россия  
Дата: 14.04.16 13:33
Оценка:
Есть считыватель RFID. Соединяется по USB, программа на .NET комуницирует со считывателем через виртуальный COM-порт. Драйвер порта от Microsoft — usbser.sys версии 6.2 (с сайта производителя). Операционка Win 7 x64.
Проблема: программа соединяется с портом через SerialPort, получает данные по событию, при закрытии формы порт закрывается, всё корректно, параметры порта настроены верно. При повторном запуске программы порт открывается, но данные со считывателя не приходят совсем. При этом другие программы (Tera Term, PuTTY и другие) соединяются повторно сколько угодно раз и всё у них работает.
С другие считывателем та же программа работает аналогично и без вопросов (но там другой драйвер).

Куда и как копать?
Сообщение заговорено потомственным колдуном, целителем и магом в девятом поколении!
Модерирование или минусование сообщения ведет к половому бессилию, венерическим заболеваниям, венцу безбрачия и диарее!
Re: COM-порт
От: andrey82  
Дата: 16.04.16 09:47
Оценка: 2 (1)
Здравствуйте, Кондраций, Вы писали:

К>Проблема: При повторном запуске программы порт открывается, но данные со считывателя не приходят совсем. При этом другие программы (Tera Term, PuTTY и другие) соединяются повторно сколько угодно раз и всё у них работает.


Я сталкивался с тем, что событие DataReceived работает не слишком надежно на различных адаптерах (USB-Serial, Bluetooth Serial), поэтому обычно делал простой опрос порта в цикле.
Что касается проблем с портом при повторном запуске программы — возможно это поможет: http://zachsaw.blogspot.ru/2010/07/serialport-ioexception-workaround-in-c.html

К>Куда и как копать?


Можно сравнить каким-нибудь Serial Monitor'ом режимы и низкоуровневые обращения к порту своей программы и сторонних.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.