реклама на сайте
подробности

 
 
> Программирование USB, Borland C++ Builder 6
smk
сообщение Feb 12 2010, 16:09
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Время традиционных СОМ-портов ушло. Теперь доминирует USB, по этому если требуется обеспечить работу прибора совместно с РС - следует применять именно USB. Собственно вопрос о том как используя Borland C++ Builder 6 создать необходимое ПО для РС, а именно в той части как обеспечить диалог по USB? Гуглил много, но самая популярная книга рассматривает это по в разрезе Visual C. Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 35)
MALLOY2
сообщение Feb 12 2010, 16:13
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Посмотрите в сторону HID или виртуального ком порта, и не надо будет ничего писать на BC6 для PC

НУ если сильно хочется можете посмотреть в сторону usbio.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 12 2010, 16:25
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Почему не надо? Всеравно обмен по USB.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Злодей
сообщение Feb 12 2010, 17:43
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Будете использовать ваш старый софт, работавший с COM-портом.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 12 2010, 18:13
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Будете использовать ваш старый софт, работавший с COM-портом.

А подробней? Очень заинтриговало! Спасибо! Хотя это по большому счету полумера.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 12 2010, 18:44
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Если USB-устройство запрограммировано, как виртуальный COM-порт (CDC-устройство), то со стороны Windows оно видно, как дополнительный COM-порт, работа с которым почти ничем не отличается от работы с обычным. "Почти" означает, что он, в отличие от настоящего, игнорирует установку бодов, четности, стоп-битов, уровней линий и пр., а всегда работает с максимальной скоростью.

Соотвественно этому, на любом языке программирования крайне просто с ним работать. Открываешь файл с именем "\\.\COM8" (номер порта может быть любой) и кидаешь в него байты или читаешь их оттуда. Всё как при работе с файлом. Предельно просто и удобно.

А вот со стороны устройства приходится потрудиться, чтобы чтобы все это работало. Особенно, если у вас МК со встроенным USB, а вы в USB ничего не понимаете.

С HID-устройствами люди тоже работают, но я их не люблю и не использую. Мне по душе CDC-устройство, которое эмулирует COM-порт. При этом зачастую переход на USB-интерфейс позволяет использовать старые программы, расчитанные на связь по COM-порту. И если в своем устройстве поддерживаешь старый протокол, то программа никогда не узнает, что работает через USB.
Go to the top of the page
 
+Quote Post
Злодей
сообщение Feb 12 2010, 18:53
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Я только запускал примеры LUFA, это USB для AVR. Использование либы тривиально: для МК - подправить какой-нибудь config.h, в программе вызвать что-то вроде init(), и дальше можно писать/читать... При подключении к ПК винде даётся .inf, в системе появлятся COM-порт. Всё что записано в COM-порт c ПК программа микроконтроллере прочитает вызвав одну функцию, и наоборот...

Ищите библиотеку для ваших МК...
Go to the top of the page
 
+Quote Post
UniSoft
сообщение Feb 12 2010, 19:13
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812



Цитата(smk @ Feb 13 2010, 00:09) *
Время традиционных СОМ-портов ушло. Теперь доминирует USB, по этому если требуется обеспечить работу прибора совместно с РС - следует применять именно USB. Собственно вопрос о том как используя Borland C++ Builder 6 создать необходимое ПО для РС, а именно в той части как обеспечить диалог по USB? Гуглил много, но самая популярная книга рассматривает это по в разрезе Visual C. Спасибо.

самое простое это реализовать HID или CDC (т.е. виртуальный ком порт),
большинство производителей микроконтроллеров обычно дают примеры реализации таких устройств.
а также они обычно не требуют написания своих драйверов (в винде уже есть дрова), иногда просто обходятся немного подправленным inf файлом.
Но у этих девайсов есть один недостаток, это скорость...
Если нужна высокая скорость, то придется копать в сторону BULK устройств...
и к ним придется писать свой драйвер
(но можно и схитрить да взять готовый, к примеру из пакета usbio
http://www.thesycon.com/eng/usbio.shtml (но тут он демо, по-моему на 240 минут работы)
и в нем есть также примеры для PC, и еще тут он используется www.tnkernel.com
или еще лучше из PowerPac (там же есть и пример для контроллера и тестовые утилиты для PC под Visual Studio причем на чистом СИ, так что понять легко))
Ну или написать свой BULK драйвер, пример такого драйвера есть в DDK (а ныне WDK).

еще можно копнуть в сторону "nrComm Lib Pro" компонентов, правда не знаю поддерживают ли они 6-ой Builder, так вот в них есть компонента для работы с USB.
и еще можно тут посмотреть кое-какие идеи
https://forums.codegear.com/thread.jspa?thr...2&tstart=30

PS: вот только IAR похоже сильно торопились с релизом PowerPac, и немного накосячили,
(пример для контроллера STM32 для usb так и не завелся, хотя в предыдущей версии PowerPac работал сразу)
а еще они забыли вложить исходники файлов для работы с USB (в прежней версии они есть), да и без них примеры для PC не скомпилятся.
В общем вот эти файлы, во вложении...

Сообщение отредактировал UniSoft - Feb 12 2010, 19:26
Прикрепленные файлы
Прикрепленный файл  USBBULK.rar ( 6.25 килобайт ) Кол-во скачиваний: 74
 
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 12 2010, 20:12
Сообщение #9


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Может быть кто-то знает, в каких случаях CDC-устройство получает команды:
Код
#define SEND_ENCAPSULATED_COMMAND 0x00
#define GET_ENCAPSULATED_COMMAND  0x01

Вот уже год ищу везде, но так ничего и не нашла.
Что надо в устройство послать, чтобы она получила эти экзотические команды?

А с остальными CDC-командами все предельно ясно без описаний:
Код
#define GET_LINE_CODING           0x21
#define SET_LINE_CODING           0x20
#define SET_CONTROL_LINE_STATE    0x22
#define SEND_BREAK                0x23

- тут я сразу догадалась.
Go to the top of the page
 
+Quote Post
manul78
сообщение Feb 13 2010, 00:20
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Xenia @ Feb 12 2010, 23:12) *
Может быть кто-то знает, в каких случаях CDC-устройство получает команды:
Код
#define SEND_ENCAPSULATED_COMMAND 0x00
#define GET_ENCAPSULATED_COMMAND  0x01

Вот уже год ищу везде, но так ничего и не нашла.
Что надо в устройство послать, чтобы она получила эти экзотические команды?


Возможно это поможет... smile.gif
Прикрепленные файлы
Прикрепленный файл  usb_comm.pdf ( 139.92 килобайт ) Кол-во скачиваний: 267
 


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 13 2010, 06:50
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
еще можно копнуть в сторону "nrComm Lib Pro" компонентов, правда не знаю поддерживают ли они 6-ой Builder, так вот в них есть компонента для работы с USB.

Спасибо! Да, поддерживает, да есть USB. Но твм другая беда: trial version with nag screen. Как я понимаю на долгую и плодотворную работу расчитывать не приходится?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 13 2010, 08:18
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Посмотрел вот это: http://www.recursion.jp/avrcdc/cdc-232.html
Идея понравилсь, однако не ясно как использовать два устройсва одновременно поскольку инсталяция следующего требует деинсталяции предидущего: (1) Clean up the previously installed AVR-CDC drivers, if any. See the [Uninstallation] section.

Хотелось бы прояснить вопросы программирования при использовании FTDI микросхем. Там драйвер не есть проблема и серийные номера там я думаю тоже все разные. А как писать ПО со стороны ПК? Как произвести обмен пакетами? FTDI это CDC как я понимаю?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 13 2010, 11:46
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(smk @ Feb 13 2010, 11:18) *
Идея понравилсь, однако не ясно как использовать два устройсва одновременно поскольку инсталяция следующего требует деинсталяции предидущего: (1) Clean up the previously installed AVR-CDC drivers, if any. See the [Uninstallation] section.

Не путайте инсталляцию драйверов и втыкание устройства. Воткнете два - будут работать два.

Цитата(smk @ Feb 13 2010, 11:18) *
FTDI это CDC как я понимаю?

Нет.
Go to the top of the page
 
+Quote Post
UniSoft
сообщение Feb 13 2010, 19:54
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812



Цитата(smk @ Feb 13 2010, 14:50) *
Спасибо! Да, поддерживает, да есть USB. Но твм другая беда: trial version with nag screen. Как я понимаю на долгую и плодотворную работу расчитывать не приходится?

есть, такое...
но можно на-гуглить вот такие ссылки...
http://www.dumpz.ru/showpost.php?p=533673&postcount=390
http://rapidshare.com/files/294620815/nrCo..._7-2010_-_FS.7z
http://www.onlinedisk.ru/file/244810/

Цитата(smk @ Feb 13 2010, 16:18) *
Хотелось бы прояснить вопросы программирования при использовании FTDI микросхем. Там драйвер не есть проблема и серийные номера там я думаю тоже все разные. А как писать ПО со стороны ПК? Как произвести обмен пакетами? FTDI это CDC как я понимаю?

Нет, FTDI это не CDC класс...
А работать с FTDI вообще просто, одно удовольствие...
они могут работать в двух режимах, либо как виртуальный ком порт, либо как D2XX устройство.
Конфигурация (VID, PID, и режимы) программируются в eeprom, обычно весит снаружи,
но есть и с внутренней eeprom'кой (обозначены как R, например FT232R, и в них, кстати, есть уникальный серийный номер, можно использовать для защиты от копирования)...

В режиме ком порта, работать можно как с обычным ком портом...
А в режиме D2XX, ftdichip предоставляют свой набор api функций в DLL, работа через которые намного упрощается...
У них на сайте http://www.ftdichip.com есть и вся необходимая документация, а также множество примеров, под разные компиляторы.
Go to the top of the page
 
+Quote Post
KSN
сообщение Feb 27 2010, 05:28
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Для работы с USB в C++Builder 6 можно использовать бесплатную библиотеку libusb-win32 ( http://libusb-win32.sourceforge.net) Пользуюсь ей регулярно.
Go to the top of the page
 
+Quote Post
microsin
сообщение Mar 2 2010, 08:37
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 27-11-08
Пользователь №: 41 999



Цитата(KSN @ Feb 27 2010, 08:28) *
Для работы с USB в C++Builder 6 можно использовать бесплатную библиотеку libusb-win32 ( http://libusb-win32.sourceforge.net) Пользуюсь ей регулярно.


Абсолютно согласен! Всего-то делов - загрузить в память библиотеку libusb, и дальше просто тупо вызывать оттуда функции. Будет работать не только в Borland C+, но и в Visual Studio C++, Visual Basic, Delphi, GCC и т. д. Примеры готового кода (не только программ для компьютера, но и для firmware USB-устройств) можно найти в библиотеке V-USB. Русифицированную библиотеку V-USB можно скачать тут.
Go to the top of the page
 
+Quote Post
skyled
сообщение Nov 10 2010, 09:31
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Цитата(KSN @ Feb 27 2010, 09:28) *
Для работы с USB в C++Builder 6 можно использовать бесплатную библиотеку libusb-win32 ( http://libusb-win32.sourceforge.net) Пользуюсь ей регулярно.

А Вы как-то ее инсталлировали в C++ Builder?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 10 2010, 12:40
Сообщение #18


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Полагаю, что точно также как и любые другие либы.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
skyled
сообщение Nov 10 2010, 15:28
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Прикрепленный файл  HIDKomponente.zip ( 371.72 килобайт ) Кол-во скачиваний: 569

Кто-то разбирающийся в этих вопросах может мне подсказать как подключить эту библиотеку к Borland C++ Builder? Спасибо.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 10 2010, 15:39
Сообщение #20


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(skyled @ Nov 10 2010, 18:28) *
Кто-то разбирающийся в этих вопросах может мне подсказать как подключить эту библиотеку к Borland C++ Builder? Спасибо.

Можно как обычные исходники, только с пометкой паскаль, а можно в BPL упаковать и забыть паскаль, как страшный сон
Может, немного наврал, года два уже к борланду не прикасался


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 10 2010, 17:51
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(MrYuran @ Nov 10 2010, 17:39) *
Можно как обычные исходники, только с пометкой паскаль, а можно в BPL упаковать и забыть паскаль, как страшный сон
Может, немного наврал, года два уже к борланду не прикасался

По правде сказать почти ничего не понятно. Какая пометка? Как упаковать?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 11 2010, 06:42
Сообщение #22


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(smk @ Nov 10 2010, 20:51) *
По правде сказать почти ничего не понятно. Какая пометка? Как упаковать?

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

В закромах есть Архангельский, но очень тяжёлый, сразу предупреждаю.

У меня где-то был полегче, но видать погиб на обломках сдохшего винта

Я подобное делал в дельфях, правда, давно уже.
Вроде ничего сверхЪестественного, несколько интуитивных движений, и при помощи какой-то матери родилась подключаемая либа


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GAS
сообщение Nov 11 2010, 07:45
Сообщение #23





Группа: Участник
Сообщений: 8
Регистрация: 8-02-05
Пользователь №: 2 495



Цитата(MrYuran @ Nov 11 2010, 10:42) *
Я подобное делал в дельфях, правда, давно уже. Вроде ничего сверхЪестественного, несколько интуитивных движений, и при помощи какой-то матери родилась подключаемая либа
А поподробней можно, как и с помощью, какой матери подключить к DELPHI исходники libusb.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 11 2010, 10:35
Сообщение #24


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



По дельфи есть куча специализированных форумов, задайте вопрос там.
Не теряйте время.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
редактор
сообщение Nov 11 2010, 12:46
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Для борланда есть утилита implib.exe в бинах кажется лежит.
С ее помощью можно "скомпилить" из dll-библиотеки LIB-файл.
Далее этот lib подключить к проекту а в директорию с EXE поместить DLL файл.



--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 11 2010, 12:53
Сообщение #26


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(редактор @ Nov 11 2010, 15:46) *
Для борланда есть утилита implib.exe в бинах кажется лежит.
С ее помощью можно "скомпилить" из dll-библиотеки LIB-файл.
Далее этот lib подключить к проекту а в директорию с EXE поместить DLL файл.

Да там не dll, а исходники на паскале.
В принципе, ничего сложного нет, тем более что файл проекта .bpk тоже присутствует, со всеми настройками.
Есть также папки с готовыми примерами.
Просто у меня сейчас ничего под рукой нет, и ставить нет никакого желания. А по памяти советовать тяжело.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
skyled
сообщение Nov 12 2010, 07:30
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Подключить bpk получилось, но не работает. Ругается, что не может найти файлы, а когда пропишешь путь прямо в исходник, то ругается на некоторые переменные. В path (переменные среды) путь прописан, но не помогает. Как все сделать правильно? Пошагово если можно и поподробнее, чтоб понимание того, что делаю имело шанс на существование. Спасибо.

Да и нет там никаких dll. Может кто подскажет другую библиотечку или еще что. Главное для меня сейчас наладить обмен с HID устройством ну пусть по 16 байт хотябы. Получится - дальше разбираться станет легче.
Go to the top of the page
 
+Quote Post
GAS
сообщение Nov 13 2010, 15:11
Сообщение #28





Группа: Участник
Сообщений: 8
Регистрация: 8-02-05
Пользователь №: 2 495



Цитата(MrYuran @ Nov 11 2010, 16:53) *
Да там не dll, а исходники на паскале. В принципе, ничего сложного нет, тем более что файл проекта .bpk тоже присутствует, со всеми настройками
А носом ткнуть не тяжело, а то не вижу, где лежит sad.gif
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 14 2010, 10:27
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(GAS @ Nov 13 2010, 17:11) *
А носом ткнуть не тяжело, а то не вижу, где лежит sad.gif

HIDKomponente.zip в посте №19 скачать. Если я не ошибаюсь, то с pas расширением это они и есть.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
GAS
сообщение Nov 15 2010, 18:43
Сообщение #30





Группа: Участник
Сообщений: 8
Регистрация: 8-02-05
Пользователь №: 2 495



Цитата(smk @ Nov 14 2010, 14:27) *
HIDKomponente.zip в посте №19 скачать.
Спасибо!
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 16 2010, 19:13
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Так удалось кому-то прикрутить эту библиотечку к Bulderu?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
shreck
сообщение Nov 17 2010, 03:39
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Цитата(smk @ Nov 17 2010, 03:13) *
Так удалось кому-то прикрутить эту библиотечку к Bulderu?

Библиотека устанавливается в билдер точно также (полностью аналогично) как и в делфи. Компонент написан так, чтобы поддерживать установку и туда и сюда, а билдер легко устанавливает такие компоненты.
Единственно, что свежий компонент надо смотреть в составе библиотеки jedi (но это на вкус).
Go to the top of the page
 
+Quote Post
skyled
сообщение Nov 18 2010, 06:56
Сообщение #33


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Прикрутить HIDcomponent к билдеру получилось. Теперь разбираюсь как им пользоваться. Кто-нибудь уже пользовался?
Go to the top of the page
 
+Quote Post
shreck
сообщение Nov 18 2010, 08:03
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Цитата(skyled @ Nov 18 2010, 14:56) *
Прикрутить HIDcomponent к билдеру получилось. Теперь разбираюсь как им пользоваться. Кто-нибудь уже пользовался?

А что там разбираться. К компоненту идут help и несколько примеров. Все просто и понятно.
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 21 2010, 10:43
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Компонент поставил. Все компилится, примеры тоже. Только вот с использованием пока не выходит. Смотрел примеры. Что-то понятно, а что-то нет. Можно простой пример как вывести перечень подключенных устройств? Ну или подсказку какую.
Код
//********************************************************************************
********
// процедура обновляет данные о всех HID устройствах, подключенных к шине USB
void __fastcall TForm1::JvHidDeviceController1DeviceChange(TObject *Sender)
{
    if (DevList == NULL){
        // создать список устройств
        DevList = new TList();
    }
    else{
        // освободить список устройств от всех записей указателей на устройства
        for (int i = 0; i < DevList->Count; i++)
            ((TJvHidDevice *)DevList->Items[i])->Free();
        // очистка списка устройств
        DevList->Clear();
    }

    // очистка компонента ListBox от старых записей названий или идентификаторов устройств
    ListBox1->Clear();

    Form1->Caption  = "";
    // перечисление всех HID устройств, подключенных к шине USB
    JvHidDeviceController1->Enumerate();

    Label1->Font->Color = clPurple;
    Label1->Caption = "USB устройство обмена данными не подключено";
    Label2->Visible = false;
}
//********************************************************************************
********
// процедура получает данные о всех HID устройствах, подключенных к шине USB
bool __fastcall TForm1::JvHidDeviceController1Enumerate(
      TJvHidDevice *HidDev, const int Idx)
{
    AnsiString S;

    // добавление названия или идентификаторов устройства в компонент ListBox
    if (HidDev->ProductName != NULL)
        ListBox1->Items->Add("Подключено устройство:  "
        + HidDev->ProductName);
    else
        ListBox1->Items->Add(S.sprintf("Device VID=%04X PID=%04X",
        HidDev->Attributes.VendorID, HidDev->Attributes.ProductID));

    // получение указателя на устройство
    JvHidDeviceController1->CheckOutByIndex(Dev, Idx);

    // добавление указателя на устройство в список устройств
    DevList->Add(Dev);

    // инкремент индекса записи
    ListBox1->ItemIndex ++;

    // получение указателя на устройство из списка устройств
    TJvHidDevice *Dev = (TJvHidDevice *)DevList->Items[ListBox1->ItemIndex];

    S = "USB устройство обмена данными";
    if (HidDev->ProductName == S){
        CurrentDevice = Dev;                    // активное HID устройство
        // число байтов для записи в HID устройство
        ToWrite = CurrentDevice->Caps.OutputReportByteLength;
        Form1->Caption = HidDev->ProductName;   // название устройства
        if(CurrentDevice != NULL)
            CurrentDevice->OnData = NULL;
        if(CurrentDevice->HasReadWriteAccess)
            CurrentDevice->OnData = ShowRead;
        else
            CurrentDevice->OnData = NULL;
    }
    return(true);
}
//********************************************************************************
********
void __fastcall TForm1::JvHidDeviceController1DeviceDataError(
      TJvHidDevice *HidDev, DWORD Error)
{
    MessageDlg("ОШИБКА чтения из HID. GetLastError=" +
        IntToStr(GetLastError), mtError, TMsgDlgButtons() << mbOK, 0);
}
//********************************************************************************
********

Вот такое есть в примере. Как вызываются эти процедуры? Взято оттуда:
Прикрепленный файл  USB_HID_Wind.rar ( 232.89 килобайт ) Кол-во скачиваний: 495

Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Mar 23 2012, 17:59
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(UniSoft @ Feb 13 2010, 21:54) *


Нагуглил. Как теперь прикрутить к Builder? Примеры не компилятся, а хочется.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 01:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01696 секунд с 7
ELECTRONIX ©2004-2016