Добрый день,
есть следующая задача
Есть программа, написанная на .Net
Эта программа должна:
1) Принимать данные с платы(своей) Объем данных большой (видеозахват)
2) Осуществлять обмен данными меньшего объема
Все это через USB 2.0 Скорость передачи данных очень критична
Подобное не делал, полный ноль в этом вопросе.
Как это делается?
где чего подчитать?
Может, есть пример какой?
В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.
Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)
Спасибо всем заранее
06.12.04 16:54: Перенесено модератором из 'Железо' — AndrewVK
Здравствуйте, Alexei_z_, Вы писали:
A__>Добрый день, A__>есть следующая задача A__>Есть программа, написанная на .Net A__>Эта программа должна: A__>1) Принимать данные с платы(своей) Объем данных большой (видеозахват) A__>2) Осуществлять обмен данными меньшего объема A__>Все это через USB 2.0 Скорость передачи данных очень критична A__>Подобное не делал, полный ноль в этом вопросе.
A__>Как это делается? A__>где чего подчитать? A__>Может, есть пример какой? A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.
A__>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)
A__>Спасибо всем заранее A__>
ниужели никто не в курсе?
Re: Работа с USB2.0
От:
Аноним
Дата:
06.12.04 14:54
Оценка:
Здравствуйте, Alexei_z_, Вы писали:
A__>Добрый день, A__>есть следующая задача A__>Есть программа, написанная на .Net A__>Эта программа должна: A__>1) Принимать данные с платы(своей) Объем данных большой (видеозахват) A__>2) Осуществлять обмен данными меньшего объема A__>Все это через USB 2.0 Скорость передачи данных очень критична A__>Подобное не делал, полный ноль в этом вопросе.
A__>Как это делается? A__>где чего подчитать? A__>Может, есть пример какой? A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.
A__>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)
A__>Спасибо всем заранее A__>
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Alexei_z_, Вы писали:
A__>>Добрый день, A__>>есть следующая задача A__>>Есть программа, написанная на .Net A__>>Эта программа должна: A__>>1) Принимать данные с платы(своей) Объем данных большой (видеозахват) A__>>2) Осуществлять обмен данными меньшего объема A__>>Все это через USB 2.0 Скорость передачи данных очень критична A__>>Подобное не делал, полный ноль в этом вопросе.
A__>>Как это делается? A__>>где чего подчитать? A__>>Может, есть пример какой? A__>>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.
A__>>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)
A__>>Спасибо всем заранее A__>>
А>А драйвера у устройств (у платы и у USB) есть?
У платы — да, конечно
Для USB — своих нет
Но в винде должны быть стандартные?
А>>А драйвера у устройств (у платы и у USB) есть? A__>У платы — да, конечно A__>Для USB — своих нет A__>Но в винде должны быть стандартные?
нет, не должны.
Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа устройств (в первую очередь audio, но по могу сказать так ли это на самом деле), для контроллеров, применяемых в изветсных чипсетах (но это к Вам не относится).
Для остальных устройств интерфейс никак не специфицируется. Система дает интерфейс для драйвера устройства для прозрачной работы с устройством (этим занимается драйвер шины, но ппиложениям он не доступен).
Здравствуйте, TarasCo, Вы писали:
А>>>А драйвера у устройств (у платы и у USB) есть? A__>>У платы — да, конечно A__>>Для USB — своих нет A__>>Но в винде должны быть стандартные?
TC>нет, не должны.
TC>Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа устройств (в первую очередь audio, но по могу сказать так ли это на самом деле), для контроллеров, применяемых в изветсных чипсетах (но это к Вам не относится). TC>Для остальных устройств интерфейс никак не специфицируется. Система дает интерфейс для драйвера устройства для прозрачной работы с устройством (этим занимается драйвер шины, но ппиложениям он не доступен).
А какую нибудь литературу, статьи, примеры, не посоветуете?
Я драйверов раньше не писал, вообще никаких. Но придется. Поэтому надо быстро в это все въехать хоть на каком-то уровне
Спасибо
Re[5]: Работа с USB2.0
От:
Аноним
Дата:
07.12.04 15:39
Оценка:
Здравствуйте, Alexei_z_, Вы писали:
A__>А какую нибудь литературу, статьи, примеры, не посоветуете? A__>Я драйверов раньше не писал, вообще никаких. Но придется. Поэтому надо быстро в это все въехать хоть на каком-то уровне A__>Спасибо
Если устройство не особо сложное, можно использовать Windriver (получится не сложнее, чем с Filestream:) ), если же хочется написать свой драйвер, то в книге тов. Oney "Programming Microsoft Windows Driver Model" работа с USB разобрана достаточно подробно.
A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля
Я бы забыл про .NET, и делал бы DirectShow драйвер. Преимущество — сразу совместимость со всеми апликациями видеозахвата, от MSN Messenger до тяжелых.
DirectShow драйвер для реальной железки (в отличие от виртуальной камеры) делается как KS/AVStream драйвер в ядре. В юзер моде от него только KSPROXY.AX болтается.
Сэмплы таких драйверов были в DDK, была 1394DCAM и USBшный аналог вроде как.
Еще вариант — написать юзермодную DLL драйвера Video For Windows, это старье жуткое, но пишется просто и работает во всех апликациях (DirectShow над ней эмулится автоматом средствами QCAP.DLL).
Такая DLL будет общаться с драйвером в ядре — как левая нога захочет, или ReadFile, или DeviceIoControl. В ядре — драйвер USBшной железки, безо всякого знания о DirectShow.
Только вот башки и доки к VfW драйверам у нас только в Windows 95 DDK
TC>Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа
Для HID, для storage (от флешек до DVD-RAM writers), в какой-то степени для сериальных портов (там только подмножество фич, для TAPI хватит, для HyperTerminal — нет), для Ethernet-over-USB — это называется Remote NDIS.
Для аудио вроде тоже, но там интерфейс слабо специфицирован, в итоге вендоры обычно пишут свой собственный драйвер, потому как системный половину фич не поддержит.
Господа!
Еще один вопрос.
Как получить интерфейс USB устройства. Задача заключается в том, чтобы при подключении устройства определять, что именно подключается. Например принтер и флэшки. Класс у флэшки 8 подкласс 6. Это известно, но вот получить эго у меня никак не получается. Подскажите плиз. А лучше набор функций. Насколько я понял, первое это получение дескриптора кофигурации. А дальше-то что? Может у кого есть сорцы.
P.S. Это драйвер.