Здравствуйте, 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
(ну или что-то похожее)