програмирование USB
От: kaiuk  
Дата: 25.11.03 15:05
Оценка:
Необходимо общаться с USB устройством под винды 98. Необходимо посылать на него команды и принимать ответ. Как это делать через COM-порт понятно, а вот USB не очень. Я знаю что можно использовать виртуальный СОМ. Хочется узнать, как это сделать обоими способами, хотя бы общий алгоритм. Спасибо.
Re: програмирование USB
От: Zhenya_  
Дата: 26.11.03 08:08
Оценка:
Здравствуйте, kaiuk, Вы писали:

K> Необходимо общаться с USB устройством под винды 98. Необходимо посылать на него команды и принимать ответ. Как это делать через COM-порт понятно, а вот USB не очень. Я знаю что можно использовать виртуальный СОМ. Хочется узнать, как это сделать обоими способами, хотя бы общий алгоритм. Спасибо.


Если устройство покупное, то для него должен быть драйвер. А дальше:
HANDLE h = CreateFile("\\\\YOUR_USB_DEVICE_LINK", ...);
...
DeviceIoControl(h, ...);
...
WriteFile(h, ...);
...
ReadFile(h, ...);
...
CloseHandle(h);
...

Если же устройство "самодельное" — то к нему нужно писать свой драйвер (vxd — под Windows'9X или sys — Windows 2000-2003)
Re[2]: програмирование USB
От: .h  
Дата: 26.11.03 12:56
Оценка:
Здравствуйте, Zhenya_, Вы писали:

Z_>Здравствуйте, kaiuk, Вы писали:


K>> Необходимо общаться с USB устройством под винды 98. Необходимо посылать на него команды и принимать ответ. Как это делать через COM-порт понятно, а вот USB не очень. Я знаю что можно использовать виртуальный СОМ. Хочется узнать, как это сделать обоими способами, хотя бы общий алгоритм. Спасибо.


Z_>Если устройство покупное, то для него должен быть драйвер. А дальше:

Z_>
Z_>HANDLE h = CreateFile("\\\\YOUR_USB_DEVICE_LINK", ...);
Z_>...
Z_>DeviceIoControl(h, ...);
Z_>...
Z_>WriteFile(h, ...);
Z_>...
Z_>ReadFile(h, ...);
Z_>...
Z_>CloseHandle(h);
Z_>...
Z_>

A к более-менее приличным устройствам прилагается свой SDK.
Z_>Если же устройство "самодельное" — то к нему нужно писать свой драйвер (vxd — под Windows'9X или sys — Windows 2000-2003)
Для 98 можно тоже sys, а для HID устройств можно обойтись без написания своего драйвера.
Кроме того, есть такие вещи как Windriver
Re[3]: програмирование USB
От: kaiuk  
Дата: 03.12.03 09:34
Оценка:
Здравствуйте, .h, Вы писали:

.h>Для 98 можно тоже sys, а для HID устройств можно обойтись без написания своего драйвера.

.h>Кроме того, есть такие вещи как Windriver

А есть ли возможность напрямую послать данные на какой-нибудь USB port? Ведь изначально драйвер USB портов стоит.

P.S. Что такое HID устройства ?

Спасибо.
Re[3]: програмирование USB
От: kaiuk  
Дата: 03.12.03 09:43
Оценка:
Здравствуйте, .h, Вы писали:

.h>Здравствуйте, Zhenya_, Вы писали:


Z_>>Если устройство покупное, то для него должен быть драйвер. А дальше:

Z_>>
Z_>>HANDLE h = CreateFile("\\\\YOUR_USB_DEVICE_LINK", ...);
Z_>>...
Z_>>DeviceIoControl(h, ...);
Z_>>...
Z_>>WriteFile(h, ...);
Z_>>...
Z_>>ReadFile(h, ...);
Z_>>...
Z_>>CloseHandle(h);
Z_>>...
Z_>>


Забыл спросить, что такое "\\\\YOUR_USB_DEVICE_LINK" ?
Re[4]: програмирование USB
От: Zhenya_  
Дата: 03.12.03 10:34
Оценка:
Здравствуйте, kaiuk, Вы писали:

K>Забыл спросить, что такое "\\\\YOUR_USB_DEVICE_LINK" ?


Это символическая ссылка на устройство (например COM-порт №1 будет "\\\\COM1"). А "\\\\YOUR_USB_DEVICE_LINK" принимает свое значение в зависимости от реализации драйвера устройства.
...
Поправка
От: Zhenya_  
Дата: 03.12.03 10:41
Оценка:
COM-порт №1 будет "\\\\.\\COM1")
и соответственно "\\\\.\\YOUR_USB_DEVICE_LINK"
"\\\\." — означает, что это локальная машина.
...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.