Я использую Visual Studio 2008 и разрабатываю приложение Windows Forms на C # с использованием .net 3.5
.
Я выполняю последовательную связь и нажимаю на кнопку приложения, получая список всех доступных коммуникационных портов. Затем я сканирую нужное устройство, открывая каждый порт по очереди, отправляя свою команду запроса на рукопожатие и ожидая ответа в течение некоторого количества секунд.
Все это прекрасно работает на моем ПК (и на других 8 ПК, на которых я его тестировал), но когда я запускаю программу на ноутбуке, моя программа, кажется, видит все коммуникационные порты и отправляет запрос, но мое устройство никогда не получает Это. Я попытался использовать аппаратный коммуникационный порт и конвертеры usb-to-serial. Я также протестировал его на нескольких ноутбуках разных производителей. Все они ведут себя одинаково.
Кто-нибудь сталкивался с подобными проблемами?
ОБНОВЛЕНИЕ 1
Кажется, что ноутбуки могут получать данные с устройства, но по-прежнему не могут передавать данные. И, конечно, никаких проблем с рабочими столами.
ОБНОВЛЕНИЕ 2
Ноутбук может принимать и передавать данные.
Поэтому это сводит проблему к моему программному обеспечению C #, которое может осуществлять последовательную связь на рабочем столе, но не может делать то же самое на ноутбуке.
ОБНОВЛЕНИЕ 3
Решил. Проблема была вызвана встроенными модемами моих тестовых ноутбуков. COM-порт, зарезервированный модемом (обычно COM3), не отображается в диспетчере устройств, но его можно увидеть в регестре Windows. Поэтому всякий раз, когда мой объект последовательного порта запрашивал список com-портов, он получал порт модема, и эти модемы подавляли мои запросы на квитирование во время сканирования порта.
Как обычно все глупо и просто.