VxWorks
@ 20-01-2006, 17:36
ДАНО
Устройство (по USB интерфейсу) подключено к компу 24х7. Таких устройств в системе 4. Периодически, так происходит, что Винда забывает о наличии одного из них в системе.
Производитель девайса кроет матом комп, винду, Билла Гейтса и господа Бога. Но сам он, естественно, не виноват ни в чем. Документации на драйвер НЕТ, но я знаю адреса, по которым он общается с девайсом, так что послать обычный запрос и обработать ответ, теоретически можно.
Устройства к компу подключены всегда и никогда от него отключены не будут, разве что физически помрут, что редкость и в данной задаче не рассматривается.
ТРЕБУЕТСЯ
Определить в Винде - живы ли ВСЕ девайсы. Если нет, симулировать отключение-включение, чтобы Винда сделала enumeration (хз как по русски).
Сделать это надо мне, но я в Винде ни в зуб ногой. Из девелоперского софта - только MS VS Express.
Программа, которая будет такое делать, не должна сидеть резидентом - отработала и хватит. То есть, действовать по принципу "когда понадобится, вас позовут". Консольная аппликация, есс-но.
Не програмное решение, но всё же. Попробуй запретить винде возможность отключения питания на USB "для экономии электроэнергии" :diablo:
VxWorks
@ 20-01-2006, 18:20
Это я уже делал - не действует :)
inzerus
@ 20-01-2006, 19:11
Я сам не пробовал, но есть такая программка - DevCon (
описание,
сама программа). Судя по описанию, вполне подойдет для опроса/reset-a USB устройств. И к тому же, консольная.
Другая идея - а что если просто из командной строки делать "dir U:" (или как там у вас в системе устройство называется) - может это реактивирует USB устройства?
VxWorks
@ 20-01-2006, 20:32
Под адресом имелось в виду, что я знаю физический адрес (типа 0x8005AEAE) устройства. Как на такое можно сделать Dir? :)
inzerus
@ 20-01-2006, 22:50
QUOTE (VxWorks @ 20-01-2006, 20:32) |
Под адресом имелось в виду, что я знаю физический адрес (типа 0x8005AEAE) устройства. Как на такое можно сделать Dir? :) |
Значит, dir пролетает. :)
А как насчет DevCon - подойдет?
VxWorks
@ 20-01-2006, 23:29
Посмотрю чуть попозже :) Когда до системы доберусь :)
QUOTE |
USBINFO™ allows you to browse for and select a USB Device for Performance Test, execute the built-in USB Device Stop/Restart Process, and start running a Performance Test in just a few seconds and with just a few mouse clicks - On Windows 2000/XP the whole process is seamless and fully automatic. |
Если такое поможет - брошу файл или линк..
Взято -
отсюда.
VxWorks
@ 21-01-2006, 00:16
Спасибо! В понедельник наложу свои лапы на систему, посмотрим, что из этого получится.
obaldin
@ 21-01-2006, 01:45
QUOTE (VxWorks @ 20-01-2006, 19:32) |
физический адрес (типа 0x8005AEAE) |
А ты знаешь, что тебе в этот адрес надо сказать, чтобы оно ресетнулось?
VxWorks
@ 21-01-2006, 03:28
Сказать-то я знаю, но при определенных событиях, Винда девайс просто теряет :( Соответственно, таймаут и device not found.
Michael2000
@ 21-01-2006, 05:14
Железо надо прямое покупать...и БИОС обновлять...
(не обижайся,ворчу...старею).
странно, что программисты (а ведь такие явно есть на нетлабе) не отзываются. Всё админы/техники.
P.S. Если кого обидел по незнанию, то порстите. Не со зла.
admik
@ 21-01-2006, 08:57
FiL пятница, вечер/ночь. какое тут юсб
obaldin
@ 21-01-2006, 13:24
FiL, область уж больно специфическая. Но и то, вроде, в основном рассказали.
Самое близкое к теме, что я когда-то делал, была просто задача пречислить все USB-устройства, отобрать из них нужные по vendor id и вызвать на них парочку IOCTL'ов. Есдинственная хитрость была та, что среди USB-устройств могут быть USB-контроллеры и тогда нужно рекурсивно смотреть, что висит на них.
VxWorks
@ 21-01-2006, 13:36
QUOTE (Michael2000 @ 21-01-2006, 02:14) |
Железо надо прямое покупать...и БИОС обновлять... (не обижайся,ворчу...старею). |
Железо это очень специфическое - JTAG BDM. Стоит что-то около 2К баксов за 1 штуку. То, что оно кривое, знают все, но вариантов нет - либо этот девайс, либо iSystems за 25 штук.
Michael2000
@ 21-01-2006, 15:09
QUOTE (FiL @ 21-01-2006, 06:03) |
странно, что программисты (а ведь такие явно есть на нетлабе) не отзываются. Всё админы/техники.
P.S. Если кого обидел по незнанию, то порстите. Не со зла. |
Ну потому что надо начать а там уже по ходу дела решать по одной.Я вообще на расстоянии никогда не умел,у меня с машинами очный секс. Да и привык к домашним конфигам...
А народ до понедельника глядишь отзовется...
inzerus
@ 21-01-2006, 16:28
QUOTE (FiL @ 21-01-2006, 08:03) |
странно, что программисты (а ведь такие явно есть на нетлабе) не отзываются. Всё админы/техники.
P.S. Если кого обидел по незнанию, то порстите. Не со зла. |
Программисты бывают разные. :) Я, например, программист, но программированием USB и похожими задачами никогда не занимался.
Не успел Воркс... повязали ребят из MI-5 вместе со злополучным камнем... :laugh:
VxWorks
@ 25-01-2006, 01:18
QUOTE (Set @ 24-01-2006, 21:59) |
Не успел Воркс... повязали ребят из MI-5 вместе со злополучным камнем... :laugh: |
Никто никого не повязал... кроме того, что проект накрылся медным тазом из-за начальства, которое выдало гениальную фразу еще в понедельник утром : "клиенту это не нужно, а если и нужно, то х.. с ним, с таким клиентом". Уродыбл ©
Завтра поеду к этому клиенту, разбираться, может, он на мое начальство наедет и мне дадут заняться хоть чем-нибудь интересным...
obaldin
@ 25-01-2006, 02:25
QUOTE (VxWorks @ 25-01-2006, 00:18) |
может, он на мое начальство наедет и мне дадут заняться хоть чем-нибудь интересным... |
А тебя прикалывает такая возня с USB?
VxWorks
@ 25-01-2006, 02:46
QUOTE (obaldin @ 24-01-2006, 23:25) |
QUOTE (VxWorks @ 25-01-2006, 00:18) | может, он на мое начальство наедет и мне дадут заняться хоть чем-нибудь интересным... |
А тебя прикалывает такая возня с USB? |
Ну, мне хоть бы чем заняться, лишь бы не писать маячащие на горизонте два Application Note - первая о том, как устанавливать программу отладки на систему с двумя микроконтроллерами, подключенными через JTAG scan chain (хз как это по-русски будет), а вторая - наглядное пособие о том, как разрабатывать код, который можно перемещать из одного участка памяти в другой (в смысле - загружаться во флешку, а исполняться из RAM) в произвольный момент времени... То есть, программу-пример я уже написал и давно, но начальство требует, чтобы я объяснил, как это все работает, причем так, чтобы даже самому заклятому индусу было понятно. Короче, "планчик-конспектик" на 40 страничках каждый...
Честное слово, я бы лучше с USB повозился...
obaldin
@ 25-01-2006, 02:48
QUOTE (VxWorks @ 25-01-2006, 01:46) |
"планчик-конспектик" на 40 страничках каждый...
Честное слово, я бы лучше с USB повозился... |
Ну, при таком богатстве выбора -- да, USB выглядит очень привлекательно :lol:
Это точно, там вроде как одной API функцией весь процесс запускается. :actu:
obaldin
@ 25-01-2006, 23:47
Процесс чего?