0
HID Device
데이터를 읽는 방법 Delphi2010에서 TJvHidDevice
을 사용하여 데이터를 읽습니다. 나는 Ink position
(X와 Y)를 InkTable
으로 읽고 싶다. 내 장치 이름은 DigiMemo
이며 펜 및 태블릿 HID 장치입니다. 감사합니다 모두TJvHidDevice를 사용하여 HID 장치 데이터를 읽는 방법
HID Device
데이터를 읽는 방법 Delphi2010에서 TJvHidDevice
을 사용하여 데이터를 읽습니다. 나는 Ink position
(X와 Y)를 InkTable
으로 읽고 싶다. 내 장치 이름은 DigiMemo
이며 펜 및 태블릿 HID 장치입니다. 감사합니다 모두TJvHidDevice를 사용하여 HID 장치 데이터를 읽는 방법
나는 이것을 PC의 USB 블루투스 동글을 통해 PS3 블루 레이를 읽는 데 사용합니다. 다른 HID 장치를 읽는 데 사용할 수 있습니다. 각 동작에 대한 코드를 검색하기 위해 조금만 실험 해보십시오.
function JvHidDeviceController1Enumerate(HidDev: TJvHidDevice; const Idx: Integer): Boolean;
procedure PS3Read(HidDev: TJvHidDevice; ReportID: Byte; const Data: Pointer; Size: Word);
PS3Dev: TJvHidDevice;
PS3Box: TGroupBox;
PS3BDRemote: TCheckBox;
ps3DemoLabel: TLabel;
function JvHidDeviceController1Enumerate(HidDev: TJvHidDevice; const Idx: Integer): Boolean;
Var Dev: TJvHidDevice;
begin
if HidDev.ProductName = 'BD Remote Control' then
begin
PS3Box.Caption:= 'PS3 - Status: found';
JvHidDeviceController1.CheckOutByIndex(Dev, Idx);
Dev.NumInputBuffers := 128;
Dev.NumOverlappedBuffers := 128;
Dev.OnData := PS3Read;
PS3Dev:= Dev;
end;
Result := True;
end;
procedure test;
begin
if not PS3BDRemote.Checked then
begin
if Assigned(PS3Dev) then
begin
JvHidDeviceController1.CheckIn(PS3Dev);
PS3Dev.OnData := nil;
PS3Dev:= nil;
end;
PS3Box.Caption:= 'PS3 - Disabled';
end
else
begin
if not Assigned(PS3Dev) then JvHidDeviceController1.Enumerate
else PS3Box.Caption:= 'PS3 - Status: found';
end;
end;
procedure PS3Read(HidDev: TJvHidDevice; ReportID: Byte; const Data: Pointer; Size: Word);
var I: Integer;
Str: string;
begin
Str := Format('RD %.2x ', [ReportID]);
for I := 0 to Size - 1 do
Str := Str + Format('%.2x ', [Cardinal(PChar(Data)[I])]);
MyKillChar(Str,' ',false);
if Str = 'RD010000080BFFFFFFFFFF0103' then
begin
// enter was pressed, do stuff here (button down)
Exit;
end;
if Str = 'RD01000000FFFFFFFFFFFF0003' then
begin
// enter was pressed, do stuff here (button up)
Exit;
end;
ps3DemoLabel.Caption:= Str;
Logs.Memo1.lines.add(str);
end;