Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос ко всем, не понаслышке знакомым с аббревиатурой FTDI  (Прочитано 14890 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 30-12-2010 06:11 » 

Работаю с прямым драйвером версии 2.6.0.0 (пробовал и с 2.8.8.0 – проблема такая же). В общем-то, проблема, скорее всего, у меня. Просто мне нужно, чтобы вы мне эту ошибку подсказали. Я написал свой класс-оболочку над API драйвера, всё вроде работает, определяется и так далее. Но при постоянной работе с драйвером (устройство активно сбрасывает данные по USB в комп) непредсказуемо происходит ступор драйвера (раз в один – пять часов). Не помогает ни перезапуск программы, ни сброс устройства, помогает только перетыкание шнурка (то есть вытащить из USB – вставить обратно). Кроме того, когда это всё случается, в настройках драйвера пропадает вкладка "Дополнительно" (там, где галочка "Загрузить VCP"). Собственно, эта галочка отключена, никакого виртуального COM-порта нет, используется только прямой драйвер.

Кто сталкивался с похожими симптомами – в чём я накосячил ? Данные постоянно вычитываются в отдельном потоке, переполнения буферов быть не должно. Да и если бы было переполнение – неужели это вгонит драйвер в кому ? Разработчики наверняка должны были это учесть

Написал также  в саппорт –  они ответили один раз, что может "у вас проблемы с девайсом?"  . Я предложил им поглядеть мой класс, но пока тишина в ответ
 
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 30-12-2010 07:45 » 

Слышал о таких проблемах с USB-девайсами: большой поток данных и частое обращение к драйверу из user space и в результате нечто подобное, как у тебя. Попробуй на более мощной машине. Не грузи ее задачами.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 30-12-2010 09:29 » 

у меня проблем не было, но я мало с  ней работал... точно не 5 часов подряд)
там статус операций с драйвером возвращается? какой он после зависания?
обратные команды в сторону устройства(если есть) тоже не проходят?
можно попробовать поставить какой нить снифер на это USB типа HDD(или как его... на форуме была ссылка). не факт что поможет найти проблему, но может появится  дополнительная инфа... будет виден поток IRP до драйвера ftdi. и что с ним получается.

стоит попробовать отследить события PnP в момент зависания. возможно среди них будет что то интересное. например  какой нибудь IRP_MN_SURPRISE_REMOVAL. кстати, драйвер нормально реагирует на выдирание USB по горячему?
проблем с питанием быть не может, питание устройства по usb шнурку или внешнее?
 в наборе DDK была утилита PnP stress для тестирования драйверов на предмет нештатных условий PnP(или типа того, если интересно - вышлю).

PS у меня обычно все идеи дурацкие) но зато их много)))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 31-12-2010 15:00 » 

Слышал о таких проблемах с USB-девайсами: большой поток данных и частое обращение к драйверу из user space и в результате нечто подобное, как у тебя. Попробуй на более мощной машине. Не грузи ее задачами.
я не могу ничего этого контролировать - у всех пользователей разные машины. А режим работы программы и девайса - круглые сутки, обращений много, стало быть

Ochkarik, статус возвращается. Это мысль, кстати, надо будет вывести на индикатор.
Насчёт обратных команд - то же самое, снаружи этого не видно сразу, надо выводить.

С питанием вряд ли проблемы. Да и питается от прибора, который работать то продолжает )

Снифер - это было бы интересно. Надо поискать. Или подскажет кто ?

Насчёт утилиты - на столе я это не могу сымитировать, это у клиентов происходит...

Вопрос ещё вот такой (костыльный): я могу определить, что информация перестала поступать в программу. Могу ли я программно сымитировать "вытащили шнур, вставили обратно " ?
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 31-12-2010 15:19 » 

Цитата
Могу ли я программно сымитировать "вытащили шнур, вставили обратно " ?

можешь (devcon)

http://support.microsoft.com/?id=311272
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 31-12-2010 15:22 » new

Слав, круто ) Попробую, спасибо
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 31-12-2010 16:29 » 

Алексей1153++, только поосторожней с утилиткой...
Как-то что-то вырубил из девайсов и все...  заново драйвера ставил

Я ее пользовался, чтобы автоматически размонтировать флешку после записи.
вставляешь флешку с автораном, запускается нужный батник, копирует логи
Размонтирует. Биииип.
« Последнее редактирование: 31-12-2010 16:32 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 31-12-2010 17:05 » 

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

насчет devcon может быть... хотя не уверен что драйвер позволит себя выгрузить, при открытых handle и загруженной библиотеке API. тем более там различный механизм выгрузки, когда с запросом и когда без.
поэтому с точки зрения проверки функционирования драйвера я бы рекомендовал pnp stress. он именно для этой проверки предназначен.
PS он оказывается теперь pnpdtest зовется. http://msdn.microsoft.com/en-us/library/ff551647(VS.85).aspx

Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 01-01-2011 07:27 » 

Ochkarik, вытащить руками - это как раз не вариант, так как операторы это боятся делать, да и вообще это нужно автоматизировать, раз уж такая проблема возникает...

Про снифер - я тогда сделал внутрипрограммную гляделку, поэтому сам снифер не пробовал и забыл про это совсем )

Попробовать всё смогу, когда на работу снова выйду
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines