So geht es:
Delphi-Quellcode:
type
// kein HID-Report kann groesser als 64 Byte sein
THidVersion = packed record
ReportID: Byte;
Data: Array[0..10] of AnsiChar;
end
Version : THidVersion;
begin
FillChar(Version, SizeOf(Version), 0);
repeat
Version.ReportID := ReadVersion;
until (Device.GetFeature(Version,
SizeOf(Version))
And
(Version.ReportID
= ReadVersion)) Or Terminated;
Delphi-Quellcode:
function TJvHidDevice.GetFeature(var Report; const Size: Integer): Boolean;
begin
Result := False;
if OpenFile then
Result := HidD_GetFeature(HidFileHandle, Report, Size);
end;
Das ist recht umständlich, da ich mehrere GetFeature und SetFeature habe.
Deswegen wollte ich die repeat until Schleife in eine eigene Funktion auslagern.