Перейти к содержанию
    

Программирование USB

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

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

Единственно, что свежий компонент надо смотреть в составе библиотеки jedi (но это на вкус).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикрутить HIDcomponent к билдеру получилось. Теперь разбираюсь как им пользоваться. Кто-нибудь уже пользовался?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикрутить HIDcomponent к билдеру получилось. Теперь разбираюсь как им пользоваться. Кто-нибудь уже пользовался?

А что там разбираться. К компоненту идут help и несколько примеров. Все просто и понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Компонент поставил. Все компилится, примеры тоже. Только вот с использованием пока не выходит. Смотрел примеры. Что-то понятно, а что-то нет. Можно простой пример как вывести перечень подключенных устройств? Ну или подсказку какую.

//********************************************************************************
********
// процедура обновляет данные о всех 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

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...