Extracción de información por el puerto com

Extracción de información por el puerto com

Postby jose_murugosa » Tue Jan 29, 2008 10:07 am

Hola a todos.

Tengo una aplicación que captura la pesada de una balanza electrónica a través del puerto com1.

Actualmente he resuelto la captura con la lib hbcomm, pero intento deshacerme de estas libs y capturar esos datos con las funciones propias de FWHX.

He hecho algunas pruebas, pero hasta el momento sin éxito.

¿Alguien podría darme información o algún ejemplo de como efectuar esta captura de información desde el puerto com del PC?

Desde ya agradezco la ayuda que siempre me dan.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Antonio Linares » Tue Jan 29, 2008 10:49 am

José,

Revisa fwh\samples\TestComm.prg y Phone.prg
regards, saludos

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

Postby karinha » Tue Jan 29, 2008 11:52 am

Mira se la balanca no tiene una DLL propria. se si, haces asi:

Ejemplo:

Code: Select all  Expand view  RUN
STATIC xDllB             // Para Apertura de la DLL
//
FUNCTION...
        //
        xDllB := LoadLibrary( "FILIZOLA.DLL" )
        //
        DEFINE DIALOG...
        // bla... bla...
        ACTIVATE DIALOG...
        //-> salida
        FreeLibrary( xDllb )
        XDLLB:=NIL
//
RETURN NIL

//-> Tu codigo de trabajo.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7859
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby jose_murugosa » Tue Jan 29, 2008 3:35 pm

Gracias a ambos :D , haré algunas pruebas y les cuento....
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby cmsoft » Wed Jan 30, 2008 10:00 am

Hola Jose:
Yo he hecho comunicar con una registradora fiscal, pero la misma tiene un protocolo particular que hay que respetar. El único problema, es que con la versión de FW que yo tengo, Antonio me envio un archivo COMM.OBJ para enlazar que solucionaba un problema que creo en versiones nuevas está solucionado.
Te envio parte del código de comunicacion con las funciones nativas de FW.
Apertura del puerto
Code: Select all  Expand view  RUN
FUNCTION abrirport(n)
LOCAL IdPort,cDcb,nError
IdPort := OpenComm("COM"+STR(n,1),1024,256)
IF IdPort <= 0
   nError = GetCommError( IdPort)
   MsgInfo( "Error al abrir: " + Str( nError ) )
   ELSE
   MsgRun("Puerto abierto como " + STR(IdPort))
ENDIF
IF ! BuildCommDcb("COM"+STR(n,1)+":9600,n,8,1" , @cDcb)
   nError = GetCommError( IdPort)
   MsgInfo( "Error al Configurar: " + Str( nError ) )
   RETURN 0
   ELSE
   MsgRun("Puerto Configurado")
ENDIF
IF ! SetCommState( IdPort, cDcb )
   nError = GetCommError( IdPort)
   MsgInfo( "Error al setear: " + Str( nError ) )
   RETURN 0
   ELSE
   MsgRun("Puerto Seteado")
ENDIF
RETURN IdPort


Recibir informacion
Code: Select all  Expand view  RUN
FUNCTION  leer_bloque(port,n)
LOCAL bloque:= SPACE(n), nBytes
DO WHILE .t.
   nBytes := ReadComm( port,@bloque)
   IF nBytes >= n
       EXIT
   ENDIF
ENDDO
RETURN bloque

Espero te sirva
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 19 guests