• patrick1968 © (15.05.18 21:35) [0]
    Добрый день. Вопрос короткий: какую технологию лучше использовать при работе с USB портом в XE10 Seattle, я в этой области новичок, поэтому посоветуйте оптимальные варианты. Заранее благодарен
  • ку ку (15.05.18 21:40) [1]
    с усб портом никто не работал и не работает.

    хотя бы потому, что такого устройства нет.

    это все равно что пытаться работать с молексом, или rj45.
  • Patrick1968 © (15.05.18 21:46) [2]
    но тогда с HID если это более вернее
  • Styx © (15.05.18 23:19) [3]
    Присоединяюсь к вопросу - сейчас очень просто самому сделать устройство с USB интерфейсом и сделать к нему HID драйвер. А вот написать на Delphi программу, с этим драйвером работающую - как?  По идее, я так понимаю, должно быть не сильно сложнее, чем для RS232... Что местные железячники скажут?
  • Павиа (16.05.18 07:03) [4]
    Удалено модератором
  • KSergey © (16.05.18 08:23) [5]
    А в самом деле, расскажите кратко слова для загугливания.
    я читал, и про HID читал
    Но не сложилась картинка в голове никак.

    Кратенько бы общую картику нарисовал бы кто, кто знает как / делал, а там уже догуглим

    Спасибо заранее.
  • KSergey © (16.05.18 08:24) [6]
    Особенно картинку взаимодествия: через какое API (какими функциями) что читать/писать для обмена
  • Pavia © (23.05.18 11:37) [7]
    Как бы все слова есть.  HID USB DELPHI

    1)
    https://github.com/project-jedi/jvcl/tree/da50fb96078856a6d21f1096240bd5515ce25b79/tests/restructured/common
    https://github.com/project-jedi/jvcl/tree/master/jvcl/examples/JvHIDController/ReadWriteDemo

    Скомпилированный можно взять тут.
    http://janaxelson.com/hidpage.htm
    2)
    https://sourceforge.net/projects/libusbk/
    https://github.com/SimaWB/libusbkDelphi

    Только с мышкой не экспериментируйте она заблокирована под виндоусом. Как разблокировать это вопрос.

    Что касается libusb, то надо ставить драйвер libusbk для каждого устройства. Без него не все функции будут работать.
    Без него в принципе работает HID_REPORT_TYPE_FEATURE. Так что жить можно и без установки доп драйверов для мелочей хватит.

    function hid_get_report(handle:PLibusbDeviceHandle; id:UInt8; var raport:TArrayByte):integer;
    var ck:Integer;
    const HID_GET_REPORT=$01;
    const HID_GET_IDLE=$02;
    const HID_REPORT_TYPE_INPUT=$01;
    const HID_REPORT_TYPE_OUTPUT=$02;
    const HID_REPORT_TYPE_FEATURE=$03;
    begin
    ck:= libusb_control_transfer(Handle, LIBUSB_REQUEST_TYPE_CLASS or LIBUSB_RECIPIENT_INTERFACE or LIBUSB_ENDPOINT_IN,
      HID_GET_REPORT,
      (HID_REPORT_TYPE_FEATURE shl 8) or id,
      InterfaceNumber, @raport[0], Length(Raport),1000); // 1000 ìñ
    result:=ck;
    end;


    Открываем устройство по паре VID, PID а дальше читаем и пишем рапорты.
    В нулевом байте рапорта указывается RaportID. По RaporID находим в Capablis раздел с Usage который описывает тип данного рапорта.

    Онлайн парсер для разбора Capablis descriptos
    http://eleccelerator.com/usbdescreqparser/#
    В линуксе можно получить черз hiddump.

    Помимо типа нужно знать ещё протокол устройства. Есть стандартные таблицы. К примеру на безперебойники
    http://www.usb.org/developers/docs/devclass_docs/pdcv10.pdf
    На релейные-ключи кто во что горазд лепит. Там проще снифером посмотреть какие биты включают отключают.

    Снифер есть в составе WireShark - во время установки нужно выбрать галкой.
    Или тут взять
    http://desowin.org/usbpcap/

    Тут можно посмотреть адреса HID устройств для HIDAPI что-бы не городить огород с перечислением.
  • KSergey © (23.05.18 16:00) [8]
    Pavia, Спасибо большое за такой подробный подбор и растолковывание!
  • kilkennycat © (24.05.18 00:49) [9]
    У джеди с усб лет 5 назад были нехилые проблемы. Исправили что-ль?


    > Только с мышкой не экспериментируйте она заблокирована под
    > виндоусом. Как разблокировать это вопрос.


    Никаких проблем с мышкой не было. Прекрасно переключал разрешение, на мышках с кучей кнопок читал кнопки. Правда, не в делфи. Собственно, из-за неудобной (для меня) связки делфи-усб, делфи у меня осталось лишь ради старых проектов.
Есть новые Нет новых   [134427   +34][b:0][p:0]