реклама на сайте
подробности

 
 
> Вопрос по USB CDC
andrewlekar
сообщение Nov 16 2012, 08:10
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Сейчас у нас штатно используется COM порт таким образом: софт открывает порт и общается с железом. Если железка перезапускается или просто физически выткнута из порта и воткнута обратно, то ничего страшного не происходит - обмен продолжается с момента подключения железки обратно.
Теперь хотим перетащить железку на USB, сделали USB CDC - всё работает прекрасно. Но если железку рестартануть, то она не может создать уже открытый в софте порт и обмена не происходит. Неужели USB CDC не предназначен для работы в таких условиях? Сделать что-то можно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Nov 16 2012, 10:18
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата
Сделать что-то можно?


а) контора Thesycon делает свой собственный драйвер CDC. Там есть возможность сохранять виртуальный ком-порт при пропадании устройства. (если что - полной версии у меня нету).
б) видел рекомендации отпускать хэнд ком-порта при пропадании устройства, а потом пытаться открыть его обратно. Но это либо не работает совсем, либо наши программисты сделали всё неправильно sm.gif
Грабля от MS: если проделывать эти манипуляции после того, как устройство подключилось обратно, работать ничего не будет - не получится открыть хэндл. Закрывать надо перед тем, как устройство появится обратно.
в) можно перезапускать драйвер CDC. Тоже не самый прямой способ (довольно медленно, требует админских прав).


Всё вышесказанное - в предположении, что используется Windows.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 10:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016