Placa USB HID programar

Post Reply
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Placa USB HID programar

Post by softruz »

Muy buenas foro, me pongo en contacto con ustedes porque acabo de comprar una placa por USB que cambia de color un LED, y no sé como programarla, os digo, lo unico que me han pasado es tenemos que programarla por el HID y me han dado los datos VendorID, ProductID, BufferInSize y BufferOutSize, tambien me han dicho para que cambiar los estados del LED hay que mandar:

Bytes 1 a 3 = 0xF1 = Encender led verde
Bytes 1 a 3 = 0xF2 = Encender led ámbar

Bytes 1 a 3 = 0xA1 = Apagar led verde
Bytes 1 a 3 = 0xA2 = Apagar led ambar

¿alquien sabe como por lo menos conectar con el HID?

Gracias.
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Post by softruz »

Muchas gracias Antonio, ya busque pero lo que encuentro no me dice como conectar, lo que necesito es si alguien del foro ha tenido que tratar este tema, para ver algo de código en nuestro gran lenguaje.

Gracias.
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Post by softruz »

Muy buenas grupo, ya he conseguido conectar con HID USB y tambíen conseguir el Handle del Dispositivo USB, pero tengo un gran problema no se como desarrrollar la funcion de escritir, os dejo lo que he desarrollado para ver si alguien sabría como puedo enviar datos a este dispositivo USB

Los datos de configuración de l HID USB Son

VendorID = 9957
ProductID = 101
BufferInSize = 64 bytes
BufferOutSize = 64 bytes


Lo que no comprendo es cuando en C se pasa un parametro como BYTE, como lo tengo que recoger y tratarlo en C.
Las Funciones Connect y GetHandle funcionan, pero la WriteEx NO

Código Fuente


function Test()
local BufferInSize:=64
local BufferOutSize:=64
local BufferIn:=array(BufferInSize)
local BufferOut:=array(BufferOutSize),i:=0


for i:=1 to len(BufferOut)
if i=4
BufferOut[i]:=241
else
BufferOut[i]:=0
end if
next
if MYHIDCONNECT(n)
if MYHIDGETHANDLE(9957,101)<>0
for i:=1 to len(BufferOut)
msginfo(MYWRITEEX(9957,101,BufferOut[i]))
next

else
msginfo("ERROR. No hay conexion con el USB")
end if
else
msginfo("Error. No hay conexion con HID USB Windows.")
end IF
return


¿Que puede hacer?

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

// Funcion Para Conectar el Dispositivo
BOOL WINAPI Connect( int pHostWin );
HB_FUNC( MYHIDCONNECT )
{
INT pHostWin;
BOOL lReturn;

pHostWin = hb_parni(1);
lReturn = Connect(pHostWin);
hb_retl(lReturn);
}


LONG WINAPI GetHandle( int pVendoID,int pProductID);
HB_FUNC( MYHIDGETHANDLE )
{
INT pVendoID;
INT pProductID;
LONG lReturn;

pVendoID = hb_parni(1);
pProductID = hb_parni(2);
lReturn = GetHandle(pVendoID,pProductID);
hb_retnl(lReturn);
}

BOOL WINAPI WriteEx(int pVendorID,int pProductID,BYTE pData );
HB_FUNC( MYWRITEEX )
{
INT pVendorID;
INT pProductID;
BYTE pData;
BOOL lReturn;

pVendorID = hb_parni(1);
pProductID = hb_parni(2);
pData = hb_parni(3);
lReturn = WriteEx(pVendorID,pProductID,pData);
hb_retl(lReturn);
}


#pragma ENDDUMP



DLL32 function Connect(pHostWin as LONG) AS BOOL PASCAL FROM "Connect" LIB "mcHID.dll"
DLL32 function GetHandle(pVendoID as LONG,pProductID as LONG) As LONG PASCAL FROM "GetHandle" LIB "mcHID.dll"
DLL32 function WriteEx(pVendoID as LONG,pProductID as LONG,pData as BYTE) AS BOOL PASCAL FROM "WriteEx" LIB "mcHID.dll"
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

Prueba a cambiarla asi:

Code: Select all | Expand

HB_FUNC( MYWRITEEX )
{
   hb_retl( WriteEx( hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ) ) );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Post by softruz »

Tambien probado y me retorna .f.

¿sabeis que puede ser?
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

En tu código usas un bucle para llamar a MYWRITEEX() sin embargo en el ejemplo que te copié no lo hacen asi, sino que generan una cadena
y se le envía entera llamando una sola vez a MYWRITEEX()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

En realidad esta función debe ser así:

BOOL WINAPI WriteEx(int pVendorID,int pProductID, unsigned char * pData );

Code: Select all | Expand

HB_FUNC( MYWRITEEX )
{
   hb_retl( WriteEx( hb_parnl( 1 ), hb_parnl( 2 ), hb_parc( 3 ) ) );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

Una única llamada a esta función así:

MYWRITEEX( 9957, 101, Chr( 0 ) + Chr( Asc( "P" ) ) + Chr( Asc( "=" ) ) + Chr( nValorAEnviar ) + Chr( Asc( "T" ) ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Post by softruz »

Muchas gracias, lo del bucle lo utilizé por que no funcionaba y dije de probar así, voy a probar lo que me dices y te comento.

Muchas Gracias Antonio por tu tiempo
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Post by softruz »

Conseguido, muchas gracias Antonio, ya puedo conectar y enviarle datos al USB.

Gracias
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Placa USB HID programar

Post by Antonio Linares »

muy bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply