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

 
 
> Автоопределение подключения и извлечения USB-устройства, В частности FT232R
MicroDiP
сообщение Apr 18 2014, 08:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Добрый день. Есть девайс на FT232R. Работает с ПК (Windows XP) в режиме D2XX. Необходимо чтобы приложение автоматически определяло когда девайс подсоединяется к ПК и далее выполняло уже такие функции как FT_Open() и т.д.
Сейчас реализовал через messages (WM_DEVICECHANGE). В аппликэйшенах на FTDI есть документ "AN_152_How To Detect The Connection And Removal Of USB Devices On A System", в котором говорится что девайс считается доступным после получения сообщения DBT_DEVICEARRIVAL: при подключении USB-устройства сперва ОС шлёт приложению сообщение DBT_DEVNODES_CHANGED. А затем уже DBT_DEVICEARRIVAL. Но по факту получается что при подключении устройства ОС шлёт три сообщения DBT_DEVNODES_CHANGED, потом одно DBT_DEVICEARRIVAL и затем ещё одно DBT_DEVNODES_CHANGED. Т.е. вот так:

Код
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVICEARRIVAL
DBT_DEVNODES_CHANGED


Если я сразу же после получения DBT_DEVICEARRIVAL пытаюсь выполнить FT_Open() или FT_GetDeviceInfoDetail(), получаю ошибку. Т.е. впечатление такое, что к этому моменту устройство ещё не готово и не пристуствует в системе. А вот если после получения DBT_DEVICEARRIVAL сделать задержку секунды в 4 - всё ок.
Собственно вопрос: есть ли какой-то способ однозначно определить что девайс подключен к ПК, присутствует в системе и готов к работе ? Или же использование задержки является вполне нормальным способом ? Всё вышесказанное пробовал пока только на WindowsXP. Возможно что на Семёрке и выше будет иначе blink.gif

P.S. Как вариант можно ещё наверное сразу после получения сообщения DBT_DEVICEARRIVAL начать вызывать функцию FT_Open() до тех пор, пока не получу FT_OK.


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 09:50
Рейтинг@Mail.ru


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