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

 
 
> Программирование 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
 
Start new topic
Ответов
smk
сообщение Nov 21 2010, 10:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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   Программирование 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


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

 


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


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