![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Доброго времени суток.
Суть проблемы такая. Есть некий девайс весящий на УСБ порте. Определяеться как HID устройство. В девайсе стоит ватч дог (Если устройству не приходят команды от программы то он переодически ребутаеться). Бывает такое что девайс подвисает.... Не знаю что присходит но дело в УСБ, очень редко. Причем хост УСБ не понимает сразу что девайс отвалился..... Вач дог срабатывает через 1 мин.... При попытке программы послать данные в УСБ данная функция зависает.... Пока не сработает ватч дог в девайсе..... Хочу избежать данной ситуации.... Есть паралельный поток который отслеживает данное подвисание. Но пользуюсь библиотекой от атмела AtUsbHid..... Закрыть устройство не помогает..... Можно как то послать системе чтобы она ребутнула данный девайс.... Или просто отключила.... Через одну минуту всеравно подцепиться... В какую сторону ковырнуть. За ранее спасибо. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Устройство питается по УСБ или свое питание имеет?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Хороший вопрос.
Там два устройства...... Причем одно берет питание с USB а второе может питаться от USB и от внешнего питания (Питание МК подаеться с любого источника.)..... Только если не будет питания USB шины второе устройство не инициализирует USB и будет переодически перезагружаться в течение одной минуты. Могу выкрутиться путем разделения потоков обрабатывающих устройсва..... Просто получаеться виснет одно устройство, тянет за собой подвисание второго... Кода много переписывать, хочеться отделаться малой кровью . Хочеться чтобы система просто поняла что данного устройства нет в системе..... А через одну минуту оно снова подцепиться... |
|||
|
||||
kuzulis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 5.9.2007 Репутация: 1 Всего: 1 |
Попробуй использовать WinAPI функции семейства CM_* / SetupAPI - там много чего интересного...
А вообще, забанили в гугле что-ли? |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Это не есть хорошо, не должно быть этого. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Akira |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 26.3.2012 Репутация: нет Всего: нет |
Это часом не Китайский агрегат для подлючения всевозможных жестких дисков?
Если оно, то у меня эта скотина тоже глючит. Можно в принципе поискать доки если вы точно назовете устройство и модель, поскольку тут множество ньюансов, без которых можно очень долго растекаться мыслями по дереву. |
|||
|
||||
bass |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Может быть и не должно.. Но встречалась проблема: Ребутаеться система по причинам не зависящих от моей системы. А устройство винда не подцепляет(Сталкунулся на нескольких машинах)..... Прошивку в устройство писал я. Вернее в два устройства. Ну а работа устройства без прикладного ПО не имеет смысла. Устройство ребутаеться (При этом корректно завершает работу USB). Подцепляеться, ПО видит что устройство в системе и переодически отсылает команду устройству что есть соединение и устройство не ребутаеться. Как то так. Так же есть в ПО тайм аут для нахождения устройсва. |
||||
|
|||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Значит что то у тебя с прошивкой, раз винда не определяет.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Стандартный пример от атмела. HID устройство. Встречал что на данные системные блоки также есть устройства которые ребутаються..... На данных системах специфичная материнская плата, может что в биосе выставлено.. Я уже задавал данный вопрос на форуме.... Даже вы советовали использовать библиотеки луфа.... Но руки так и не добрались, выкрутиться ребутом. Спасибо за помощь.... Теперь дело в зависании, это происходит редко.... Но бывает... Как правило выяснилось из-за глючного порта USB. Ладно перераспределю потоки.... Это сообщение отредактировал(а) bass - 9.10.2014, 22:17 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 6 Всего: 135 |
У меня была похожая проблема, но с Cypress-овским контроллером. Никак не победил. Пришлось сделать коммутатор питания для платы, которым моя программа управляла через GPIO. Если программа видит проблему с платой, то она выключает, а затем включает питание платы. Вроде работает.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |