|
Программирование USB, Borland C++ Builder 6 |
|
|
|
 |
Ответов
|
Nov 21 2010, 10:43
|
Гуру
     
Группа: Свой
Сообщений: 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Спасибо.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
Сообщений в этой теме
smk Программирование USB Feb 12 2010, 16:09 MALLOY2 Посмотрите в сторону HID или виртуального ком порт... Feb 12 2010, 16:13 smk Почему не надо? Всеравно обмен по USB. Feb 12 2010, 16:25 Злодей Будете использовать ваш старый софт, работавший с ... Feb 12 2010, 17:43 smk ЦитатаБудете использовать ваш старый софт, работав... Feb 12 2010, 18:13 Xenia Если USB-устройство запрограммировано, как виртуал... Feb 12 2010, 18:44 Злодей Я только запускал примеры LUFA, это USB для AVR. И... Feb 12 2010, 18:53 UniSoft Цитата(smk @ Feb 13 2010, 00:09) Время тр... Feb 12 2010, 19:13 Xenia Может быть кто-то знает, в каких случаях CDC-устро... Feb 12 2010, 20:12 manul78 Цитата(Xenia @ Feb 12 2010, 23:12) Может ... Feb 13 2010, 00:20 smk Цитатаеще можно копнуть в сторону "nrComm Lib... Feb 13 2010, 06:50 UniSoft Цитата(smk @ Feb 13 2010, 14:50) Спасибо... Feb 13 2010, 19:54  smk Цитата(UniSoft @ Feb 13 2010, 21:54) есть... Mar 23 2012, 17:59 smk Посмотрел вот это: http://www.recursion.jp/avrcdc/... Feb 13 2010, 08:18 aaarrr Цитата(smk @ Feb 13 2010, 11:18) Идея пон... Feb 13 2010, 11:46 KSN Для работы с USB в C++Builder 6 можно использовать... Feb 27 2010, 05:28 microsin Цитата(KSN @ Feb 27 2010, 08:28) Для рабо... Mar 2 2010, 08:37 skyled Цитата(KSN @ Feb 27 2010, 09:28) Для рабо... Nov 10 2010, 09:31  demiurg_spb Полагаю, что точно также как и любые другие либы. Nov 10 2010, 12:40 skyled
Кто-то разбирающийся в этих вопросах может мне по... Nov 10 2010, 15:28 MrYuran Цитата(skyled @ Nov 10 2010, 18:28) Кто-т... Nov 10 2010, 15:39  smk Цитата(MrYuran @ Nov 10 2010, 17:39) Можн... Nov 10 2010, 17:51   MrYuran Цитата(smk @ Nov 10 2010, 20:51) По правд... Nov 11 2010, 06:42    GAS Цитата(MrYuran @ Nov 11 2010, 10:42) Я по... Nov 11 2010, 07:45     demiurg_spb По дельфи есть куча специализированных форумов, за... Nov 11 2010, 10:35      редактор Для борланда есть утилита implib.exe в бинах каже... Nov 11 2010, 12:46       MrYuran Цитата(редактор @ Nov 11 2010, 15:46) Для... Nov 11 2010, 12:53        GAS Цитата(MrYuran @ Nov 11 2010, 16:53) Да т... Nov 13 2010, 15:11         smk Цитата(GAS @ Nov 13 2010, 17:11) А носом ... Nov 14 2010, 10:27          GAS Цитата(smk @ Nov 14 2010, 14:27) HIDKompo... Nov 15 2010, 18:43 skyled Подключить bpk получилось, но не работает. Ругаетс... Nov 12 2010, 07:30 smk Так удалось кому-то прикрутить эту библиотечку к B... Nov 16 2010, 19:13 shreck Цитата(smk @ Nov 17 2010, 03:13) Так удал... Nov 17 2010, 03:39 skyled Прикрутить HIDcomponent к билдеру получилось. Тепе... Nov 18 2010, 06:56 shreck Цитата(skyled @ Nov 18 2010, 14:56) Прикр... Nov 18 2010, 08:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|