Ver Mensaje Individual
  #3  
Antiguo 06-07-2015
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Reputación: 21
tarco35 Va por buen camino
Hola.

1 .- pues se va a usar tanto en 32 bits como en 64, win xp, 7, 8, ... (hasta ahora cuando he usado el componente solo ha sido para lectura)

2 .- el componente es : HidControler para delphi 6

3 . -al descriptor que me refiero es al que informa la interfaz al preguntarle al dispositivo:

"DragonRise Inc. " "Generic USB Joystick " VID=$0079 PID=$0006
Input Report Size=8
Output Report Size=7
Feature Report Size=0

Button Input
============

0)
UsagePage: Button ($0009)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: True
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
UsageMin: 1 UsageMax: 12
StringMin: 0 StringMax: 0
DesignatorMin: 0 DesignatorMax: 0
DataIndexMin: 6 DataIndexMax: 17

1)
UsagePage: FF00 ($FF00)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
Usage: 1 ($0001)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 18

Value Input
===========

0)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 1
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: Relative Z Axis ($0035)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 0

1)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 1
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: Z Axis ($0032)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 1

2)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 1
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: Z Axis ($0032)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 2

3)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 1
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: Y Axis ($0031)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 3

4)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 1
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: X Axis ($0030)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 4

5)
UsagePage: Generic Desktop ($0001)
ReportID: 0
IsAlias: False
BitField: 66
LinkCollection: 1
LinkUsage: Undefined ($0000)
LinkUsagePage: Generic Desktop ($0001)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: True
BitSize: 4
ReportCount: 1
UnitsExp: 0
Units: 20
LogicalMin: 0
LogicalMax: 7
PhysicalMin: 0
PhysicalMax: 315
Usage: Hat Switch ($0039)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 5

Value Output
============

0)
UsagePage: FF00 ($FF00)
ReportID: 0
IsAlias: False
BitField: 2
LinkCollection: 2
LinkUsage: 0 ($0000)
LinkUsagePage: FF00 ($FF00)
IsRange: False
IsStringRange: False
IsDesignatorRange: False
IsAbsolute: True
HasNull: False
BitSize: 8
ReportCount: 7
UnitsExp: 0
Units: 0
LogicalMin: 0
LogicalMax: 255
PhysicalMin: 0
PhysicalMax: 255
Usage: 2 ($0002)
StringIndex: 0
DesignatorIndex: 0
DataIndex: 0


4 .- el modelo y marca: es generico, no tiene una marca especifica, (de forma es igual que los mandos de la play 3) con feedback

5 .- no se a que codigo te refieres.... si es el código de programa es:
Código Delphi [-]
procedure TForm1.WriteBtnClick(Sender: TObject);
var
  I: Integer;
  Buf: array [0..64] of Byte;
  Written: Cardinal;
  ToWrite: Cardinal;
  Str: string;
begin
  if Assigned(CurrentDevice) then
  begin
    Buf[0] := StrToIntDef('$' + ReportID.Text, 0);
    ReportID.Text := Format('%.2x', [Buf[0]]);
    ToWrite := CurrentDevice.Caps.OutputReportByteLength;
    for I := 1 to ToWrite-1 do
    begin
      Buf[i] := StrToIntDef('$' + Edits[I-1].Text, 0);
      Edits[I-1].Text := Format('%.2x', [Buf[i]]);
    end;
    CurrentDevice.WriteFile(Buf, ToWrite, Written);  
    Str := Format('W %.2x  ', [Buf[0]]);
    for I := 1 to Written-1 do
      Str := Str + Format('%.2x ', [Buf[i]]);
    HistoryListBox.ItemIndex := HistoryListBox.Items.Add(Str);
  end;
end;

La lectura de todos los botones y las palanca se realiza bien.

Lo que necesito saber es que valores hay que enviar para activar esos motorcitos... creo que son dos parametros: tiempo en milisegundos y motor izquierdo / derecho ... pero esto no lo se seguro, es una suposicion mia

Si necesitas alguna info mas, solo pedirla
gracias
Responder Con Cita