проблема с виртуальным COM — портом
От: irina71  
Дата: 16.10.08 14:40
Оценка:
Здравствуйте уважаемые все!
Следующая ситуация:
Возникла необходимость работы с виртуальным COM — портом (эмуляция COM — порта через USB).
Использую специальный класс для работы с COM — портом, который уже был неоднократно протестирован в других проектах с реальными COM — портами. Все работает, но есть одна проблема:
после перезагрузки компа порт не открывается, пока не подсоединишь заново USB кабель. Т.е. кабель надо отсоединить от компа и потом снова подсоединить, тогда порт открывается без проблем. С чем это может быть связано и как с этим бороться?
Заранее спасибо.
Re: проблема с виртуальным COM — портом
От: Wo-o-olf Россия  
Дата: 17.10.08 10:11
Оценка:
Здравствуйте, irina71, Вы писали:

I>Здравствуйте уважаемые все!

I>Следующая ситуация:
I>Возникла необходимость работы с виртуальным COM — портом (эмуляция COM — порта через USB).
I>Использую специальный класс для работы с COM — портом, который уже был неоднократно протестирован в других проектах с реальными COM — портами. Все работает, но есть одна проблема:
I>после перезагрузки компа порт не открывается, пока не подсоединишь заново USB кабель. Т.е. кабель надо отсоединить от компа и потом снова подсоединить, тогда порт открывается без проблем. С чем это может быть связано и как с этим бороться?
I>Заранее спасибо.


может не совсем то, но, возможно, стоит посмотреть в сторону идентификатора порта.
что-то подобное видел в своё время (linux): если serial2usb контроллер зашутдавнился
в процессе работы, но порт программно ещё не закрыт (ну или ещё какой переходной
процесс), а потом контроллер оживает и система назначает ему следующий по
порядку идентификатор, программа же пытается работать с предыдущим.

В линуксе это выглядит так:

порты:
— /dev/tts/USB0
работаем

(что-то произошло)

порты:
— /dev/tts/USB0 (что-то типа зомби)
— /dev/tts/USB1 (рабочий)
пытаемся работать в первым, а должны со вторым!

вручную фиксится так:
отпустив ресурсы (пропадает /dev/tts/USB0)
извлекаем usb (пропадает /dev/tts/USB1),
заново вставляем usb (появляется /dev/tts/USB0)
работаем как ни в чём не бывало

программно имхо, просто можно попробовать перескочить на следующий порт.

в терминах винды, думается мне
/dev/tts/USB0 == COM3
/dev/tts/USB1 == COM4
(ну или что-то похожее)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.