Placa USB HID programar

Placa USB HID programar

Postby softruz » Wed Nov 09, 2016 6:06 pm

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.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Postby Antonio Linares » Thu Nov 10, 2016 8:29 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Placa USB HID programar

Postby softruz » Thu Nov 10, 2016 10:43 am

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

Postby softruz » Thu Nov 17, 2016 10:28 am

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"
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Postby Antonio Linares » Thu Nov 17, 2016 10:46 am

Prueba a cambiarla asi:

Code: Select all  Expand view
HB_FUNC( MYWRITEEX )
{
   hb_retl( WriteEx( hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ) ) );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Placa USB HID programar

Postby softruz » Thu Nov 17, 2016 1:17 pm

Tambien probado y me retorna .f.

¿sabeis que puede ser?
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Placa USB HID programar

Postby Antonio Linares » Thu Nov 17, 2016 6:45 pm

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: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Placa USB HID programar

Postby Antonio Linares » Thu Nov 17, 2016 6:50 pm

En realidad esta función debe ser así:

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

Code: Select all  Expand view
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: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Placa USB HID programar

Postby Antonio Linares » Thu Nov 17, 2016 6:53 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Placa USB HID programar

Postby softruz » Fri Nov 18, 2016 8:17 am

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

Postby softruz » Fri Nov 18, 2016 12:17 pm

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

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

Re: Placa USB HID programar

Postby Antonio Linares » Fri Nov 18, 2016 5:37 pm

muy bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41329
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 11 guests