HID-Device

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

HID-Device

Beitrag von Mathias »

Demnächst bekomme ich eine Arduino Leonardo, welcher man Alternativ auch über HID ansprechen kann.

Hat jemand Anhaltspunkte, wie man mit Lazarus auf die HID-Device zugreifen kann ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: HID-Device

Beitrag von Christian »

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Dort werden die JvHidControllerClass, JvComponentBase gebraucht.
Hat man diese unter LAzarus zum laufen gekriegt, da die Package sehr Delphi orientiert ist ?
Dort sind sogar cpp Dateien vorhanden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Ein bisschen weiter bin ich gekommen, ich habe ein C++ Code gefunden, welcher sich auf Anhieb mit Codeblooks kompilieren lies.
https://android.googlesource.com/kernel/common.git/+/android-3.10/samples/hidraw/hid-example.c

Laufen tut dann die Exe nur mit Root-Rechten.

Mal gucken, ob ich den Code auf Lazarus abändern kann. :wink:

Immerhin wurde mein MCP2221 gefunden:

Code: Alles auswählen

tux-To-be-filled-by-O-E-M tux # ./test_mcp2221 
Report Descriptor Size: 28
Report Descriptor:
6 0 ff 9 1 a1 1 19 1 29 40 15 1 25 40 75 8 95 40 81 0 19 1 29 40 91 0 c0
 
Raw Name: Microchip Technology Inc. MCP2221 USB-I2C/UART Combo
Raw Phys: usb-0000:00:1d.0-1.5.2/input2
Raw Info:
   bustype: 3 (USB)
   vendor: 0x04d8
   product: 0x00dd
HIDIOCSFEATURE: Broken pipe
HIDIOCGFEATURE: Broken pipe
write() wrote 2 bytes
read: Resource temporarily unavailable
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

So nun habe ich den Code in Lazarus umgeschrieben.
Code ist im Anhang.
Voraussetzung ist, das man Linux verwendet.
Dateianhänge
HID-Test.zip
(126.33 KiB) 162-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Gibt es wenigsten einfache Beispiele in C/C++ ?

Google kann mir einfach nichts schlaues liefern. :cry:

Ich kann mir nicht vorstellen, das ich der einzige bin, der auf eine HID-Device zugreifen will. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: HID-Device

Beitrag von Achtzig »

Wenn ich Dich richtig verstehe, könntest Du nach

include "hidapi.h"

suchen. Da sind zumindest ein paar Quelltexte dabei.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Diee habe ich auch schon gefunden, aber leider die hidapi.c nicht. :|
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: HID-Device

Beitrag von Achtzig »

Hmmm, auch auf die Gefahr hin, voll daneben zu liegen, suchst Du die?

hid.c: https://github.com/signal11/hidapi/blob ... inux/hid.c
hidapi.c: https://gitlab.cs.txstate.edu/jw1772/ma ... d/hidapi.c

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Dank deiner Hilfe bin ich jetzt weiter gekommen, es braucht nirgends ein fpIOCtl, es geht alles mit fpWrite. 8)

Siehe hier, bei MCP2221: viewtopic.php?f=12&t=10045&p=90931#p90931
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: HID-Device

Beitrag von Achtzig »

Sehr schön, ich war mir nicht ganz sicher, weil ich das sofort gefunden habe.

Ein Tipp noch zu Google, falls Du den noch nicht kennst: Wenn Du Suchworte in doppelte Anführungsstriche setzt ("hidapi.c"), wird (idealerweise) exakt diese Zeichenfolge gesucht/gefunden. Google sieht einen Punkt (Komma ...) sonst als Leerzeichen/Füllzeichen an und sucht dann nach hidapi und c, aber nicht unbedingt nach hidapi.c.

Nachtrag: Kurz noch zu include "hidapi.h": Das war nicht für die Suche nach hidapi.h gedacht, sondern um Beispielquelltexte zu finden, die dieses API einbinden.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Ein Tipp noch zu Google, falls Du den noch nicht kennst: Wenn Du Suchworte in doppelte Anführungsstriche setz

Dies kenne ich, ich habe wahrscheinlich sonst falsch gesucht. :oops:

Ich musste feststellen, das hidapi.c schlussendlich auch nicht viel anderes macht als open und write.
Was es noch hat, sind sehr viel Überprüfungen und Variablen.

Was aber momentan das grössere Problem ist, ist wird zwingen Root-recht verlangt, sonst geht nichts.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: HID-Device

Beitrag von Christian »

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: HID-Device

Beitrag von Mathias »

Christian hat geschrieben:https://puredata.info/docs/faq/how-can-i-set-permissions-so-hid-can-read-devices-in-gnu-linux


Hier sehe ich nicht von /dev/hidraw? oder hängt dies mit /dev/input/event0 zusammen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten