Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi HID Komponente - Komme nicht zurecht (https://www.delphipraxis.net/88108-hid-komponente-komme-nicht-zurecht.html)

TERWI 7. Apr 2008 10:51

Re: HID Komponente - Komme nicht zurecht
 
... schade - omata hüllt sich in Schweigen und behält sein ActiveX-Geheimnis für sich.
Sonst keiner hier im Forum mit einer Idee ? Aus mit nem Sniffer 'dabeizugehen' ?

wschrabi 23. Mär 2016 07:13

AW: HID Komponente - Komme nicht zurecht
 
Hallo,
leider ist dieser Thread schon lange her.
Aber ich habe auch ein Problem. Habe ein HID Device, ohne Interrupt. Also genau so wie eine Maus.
WIe kann ich ohne die hid.dll funktion GetINputReport zu verwenden (da diese nicht auf der Android API verfügbar ist) mit der Jvcl Library einen GetInputReport realisieren.

Kann man da ein ReadFile verwenden? Doch wie wird der USB Request Get_report dann gesendet?
Wäre schön wenn mir einer helfen könnte.
danke
Walter

PS: I have not found an equivalent routine for HidD_GetFeature in Android API.
All I have found is:

Code:
//
// Generated by JavaToPas v1.5 20140918 - 093132
////////////////////////////////////////////////////////////////////////////////
unit android.hardware.usb.UsbDeviceConnection;

interface

uses
  AndroidAPI.JNIBridge,
  Androidapi.JNI.JavaTypes,
  android.hardware.usb.UsbInterface,
  android.hardware.usb.UsbEndpoint;

type
  JUsbRequest = interface; // merged
  JUsbDeviceConnection = interface;

  JUsbDeviceConnectionClass = interface(JObjectClass)
    ['{74BC41F4-07BC-431C-BC50-22DE40E287A9}']
    function bulkTransfer(endpoint : JUsbEndpoint; buffer : TJavaArray<Byte>; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (Landroid/hardware/usb/UsbEndpoint;[BII)I A: $1
    function bulkTransfer(endpoint : JUsbEndpoint; buffer : TJavaArray<Byte>; offset : Integer; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (Landroid/hardware/usb/UsbEndpoint;[BIII)I A: $1
    function claimInterface(intf : JUsbInterface; force : boolean) : boolean; cdecl;// (Landroid/hardware/usb/UsbInterface;Z)Z A: $1
    function controlTransfer(requestType : Integer; request : Integer; value : Integer; &index : Integer; buffer : TJavaArray<Byte>; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (IIII[BII)I A: $1
    function controlTransfer(requestType : Integer; request : Integer; value : Integer; &index : Integer; buffer : TJavaArray<Byte>; offset : Integer; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (IIII[BIII)I A: $1
    function getFileDescriptor : Integer; cdecl;                               // ()I A: $1
    function getRawDescriptors : TJavaArray<Byte>; cdecl;                      // ()[B A: $1
    function getSerial : JString; cdecl;                                       // ()Ljava/lang/String; A: $1
    function releaseInterface(intf : JUsbInterface) : boolean; cdecl;          // (Landroid/hardware/usb/UsbInterface;)Z A: $1
    function requestWait : JUsbRequest; cdecl;                                 // ()Landroid/hardware/usb/UsbRequest; A: $1
    procedure close ; cdecl;                                                   // ()V A: $1
  end;

  [JavaSignature('android/hardware/usb/UsbDeviceConnection')]
  JUsbDeviceConnection = interface(JObject)
    ['{8E5EFAEF-10A2-482F-8862-F8056786D1B9}']
    function bulkTransfer(endpoint : JUsbEndpoint; buffer : TJavaArray<Byte>; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (Landroid/hardware/usb/UsbEndpoint;[BII)I A: $1
    function bulkTransfer(endpoint : JUsbEndpoint; buffer : TJavaArray<Byte>; offset : Integer; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (Landroid/hardware/usb/UsbEndpoint;[BIII)I A: $1
    function claimInterface(intf : JUsbInterface; force : boolean) : boolean; cdecl;// (Landroid/hardware/usb/UsbInterface;Z)Z A: $1
    function controlTransfer(requestType : Integer; request : Integer; value : Integer; &index : Integer; buffer : TJavaArray<Byte>; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (IIII[BII)I A: $1
    function controlTransfer(requestType : Integer; request : Integer; value : Integer; &index : Integer; buffer : TJavaArray<Byte>; offset : Integer; length : Integer; timeout : Integer) : Integer; cdecl; overload;// (IIII[BIII)I A: $1
    function getFileDescriptor : Integer; cdecl;                               // ()I A: $1
    function getRawDescriptors : TJavaArray<Byte>; cdecl;                      // ()[B A: $1
    function getSerial : JString; cdecl;                                       // ()Ljava/lang/String; A: $1
    function releaseInterface(intf : JUsbInterface) : boolean; cdecl;          // (Landroid/hardware/usb/UsbInterface;)Z A: $1
    function requestWait : JUsbRequest; cdecl;                                 // ()Landroid/hardware/usb/UsbRequest; A: $1
    procedure close ; cdecl;                                                   // ()V A: $1
  end;

  TJUsbDeviceConnection = class(TJavaGenericImport<JUsbDeviceConnectionClass, JUsbDeviceConnection>)
  end;

  // Merged from: .\android-19\android.hardware.usb.UsbRequest.pas
  JUsbRequestClass = interface(JObjectClass)
    ['{2D0D4B19-E476-417D-B7E1-C209650DD3BB}']
    function cancel : boolean; cdecl;                                          // ()Z A: $1
    function getClientData : JObject; cdecl;                                   // ()Ljava/lang/Object; A: $1
    function getEndpoint : JUsbEndpoint; cdecl;                                // ()Landroid/hardware/usb/UsbEndpoint; A: $1
    function init : JUsbRequest; cdecl;                                        // ()V A: $1
    function initialize(connection : JUsbDeviceConnection; endpoint : JUsbEndpoint) : boolean; cdecl;// (Landroid/hardware/usb/UsbDeviceConnection;Landroid/hardware/usb/UsbEndpoint;)Z A: $1
    function queue(buffer : JByteBuffer; length : Integer) : boolean; cdecl;   // (Ljava/nio/ByteBuffer;I)Z A: $1
    procedure close ; cdecl;                                                   // ()V A: $1
    procedure setClientData(data : JObject) ; cdecl;                           // (Ljava/lang/Object;)V A: $1
  end;

  [JavaSignature('android/hardware/usb/UsbRequest')]
  JUsbRequest = interface(JObject)
    ['{BBCFD8A0-6F88-48AE-B012-B4EB489C2E4A}']
    function cancel : boolean; cdecl;                                          // ()Z A: $1
    function getClientData : JObject; cdecl;                                   // ()Ljava/lang/Object; A: $1
    function getEndpoint : JUsbEndpoint; cdecl;                                // ()Landroid/hardware/usb/UsbEndpoint; A: $1
    function initialize(connection : JUsbDeviceConnection; endpoint : JUsbEndpoint) : boolean; cdecl;// (Landroid/hardware/usb/UsbDeviceConnection;Landroid/hardware/usb/UsbEndpoint;)Z A: $1
    function queue(buffer : JByteBuffer; length : Integer) : boolean; cdecl;   // (Ljava/nio/ByteBuffer;I)Z A: $1
    procedure close ; cdecl;                                                   // ()V A: $1
    procedure setClientData(data : JObject) ; cdecl;                           // (Ljava/lang/Object;)V A: $1
  end;

  TJUsbRequest = class(TJavaGenericImport<JUsbRequestClass, JUsbRequest>)
  end;


implementation

end.
Can I realize the Get_Report with a Control Transfer (here there would be the function:
Code:
   function controlTransfer(requestType : Integer; request : Integer; value : Integer; &index : Integer; buffer : TJavaArray<Byte>; length : Integer; timeout : Integer) : Integer; cdecl; overload;
)

Any advices are very welcome!
Thanks
Walter


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr.
Seite 6 von 6   « Erste     456   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz