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.
Extracción de información por el puerto com
- jose_murugosa
- Posts: 1185
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Extracción de información por el puerto com
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
- karinha
- Posts: 7932
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Mira se la balanca no tiene una DLL propria. se si, haces asi:
Ejemplo:
//-> Tu codigo de trabajo.
Ejemplo:
Code: Select all | Expand
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
- jose_murugosa
- Posts: 1185
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
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
Recibir informacion
Espero te sirva
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
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
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