USB HID : El componente de la JVCL(JEDI)

 

 

El componente de JVCL JvHidDeviceController, viene con un ejemplo en la carpeta : jvcl\examples\ReadWriteDemo.

Como sabemos se tendra que tener instalada en Delphi la JVCL(Jedi Visual Component Library), que es Free Source, y la podemos descargar de http://sourceforge.net/projects/jvcl/

El ejemplo que presento muy muy simple, usa algunas funciones que no son usadas en el ejemplo que acompaña al componente, ademas que en dicho ejemplo se hace depender el funcionamiento del componente de un ListBox.

El componente de la clase TJvHidDeviceController controla y monitorea todos los dispositivos USB - HID.
Al insertar un nuevo dispositivo el componente enumerara y creara un objeto de la clase TJvHidDevice; es con este que cada dispositivo se indentifica para su manejo.


vamos a usar el mismo proyecto para el PIC que del EJEMPLO 2 del apartado

La mcHID.dll.

No olvidar que los VID y PID deben coincidir, en Delphi y MikroPascal. (tampoco olvidar la resistencia de 330 ohm en los led)

 

 

 

 



En el evento onArrival es donde se creara el objeto para el dispositivo HID que nos interese:

 

Código Delphi [-]

//evento onArrival si un dispositivo es insertado
Procedure TMainForm.JvHidDeviceController1Arrival( HidDev: TJvHidDevice );
Begin
   If ( HidDev.Attributes.VendorID = VID ) And
      ( HidDev.Attributes.ProductID = PID ) Then
   Begin
      DeviceMemo.Lines.Add( HidDev.ProductName + ' : Insertado   - '+
      ( TimeToStr( Now ) ) );

      // AQUI!! el componente crea el objeto MyDev:TJvHidDevice para nuestro
      // dispositivo VID PID
      JvHidDeviceController1.CheckOutByID( MyDev, VID, PID );
      InfoBtn.Enabled := true;
      WriteBtn.Enabled := true;
   End;
End;

//evento onRemoval si un dispositivo es removido
Procedure TMainForm.JvHidDeviceController1Removal( HidDev: TJvHidDevice );
Begin
   If ( HidDev.Attributes.VendorID = VID ) And
      ( HidDev.Attributes.ProductID = PID ) Then
   Begin
      DeviceMemo.Lines.Add( HidDev.ProductName + ' : Removido - ' +
      ( TimeToStr( Now ) ) );

      // hay que liberar el objeto MyDev
      MyDev.Free;
      InfoBtn.Enabled := false;
      WriteBtn.Enabled := false;
   End;
Aqui dejo el proyecto completo para Delphi. Tambien un Help del componente 
que hace algun tiempo encontre por ahi de una version anterior a la 3.33 de la JVCL; es decir este help de este componente ya no esta disponible en las versiones superiores a la 3.33.
Ejemplo JvHidDeviceController.zip
USB - HI EJEMPLO 2 FULL.zip

Escribir comentario

Comentarios: 2
  • #1

    carlosdel (martes, 28 mayo 2013 16:58)

    el segundo ejemplo, el full no tiene ningun componene JEDI,

  • #2

    fenixariel (viernes, 31 mayo 2013 18:33)

    Tienes que instalar la JEDI en Delphi, ahi esta el componente, en el item system.