![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| mullih |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 19.12.2006 Репутация: нет Всего: 2 |
Всем доброго времени суток
Может кто сталкивался с такой проблемой и знает решение. Существует устройство на виртуальном ком порту, проще COM -> USB. SerialPort serialPort = new SerialPort("COM4"); serialPort.Open() и идет работа с устройством если при открытом порте вытащить USB кабель и вставить его обратно, то, как я понимаю, windows пересоздаст устройство как новый объект. Момент отключения какого то устройства я могу отловить. Но как определить что это именно мое устройство и после того как кабель вставить обратно не всегда получается пересоздать объект serialPort = new SerialPort("COM4"); кидает исключения то устройство не найдено то Access denited Может кто подкинет если не готовое решение то хотябы идею куда смотреть и что может помочь заранее благодарен С уважением |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
ну наверное об этом лучше у самого устройства спросить... ну тоесть когда устройство воткнули, задать ему вопрос "ты кто?" -------------------- СУВ, Partizan. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Что касается С# то тут есть проблемы, касающиеся КОМ порта.
1. TIMEOUT_STRUCTURE, который надо задавать системе C# судя по всему задает сам. По крайней мере мне с товарищем настроить это так и не удалось. А посему программа в определенных случаях будет просто отваливаться. 2. Даже в случае отключения COM порта, вы должны сгенерировать исключение и в нем закрыть handle по сути, т.к. скорее всего второй раз вы не можете создать подключение к порту, ввиду того, что у вас старое еще открыто. По крайней мере в С++ оно так, за определенной оговоркой, но в данном случае это - мелочь (оговорка). Как показал мой опыт работы с подобной архитектурой (COM->USB), то просто так выдернуть вставить не получается. Проблема в том, что USB-то поддерживает plug&play, а система COM порты подключает при загрузке, т.е. в систему - добавляет, а инициировать для работы не может. Но это, скажем так догадка. В принципе может тут дело еще в переходнике. У вас какой?
ППКС, но с одним исключением. Как правило, такие в такие девайсы функции "кто я" не встраивается. Но есть какая-ть пустая команда, которой можно проверить работоспособность, т.к. формат пакета отправленного и получаемого мы знаем. |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
"Переходник" вставляется в COM или в USB? А то не совсем понятно что имеется в виду.
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |