hola
yo tengo asi instalado en una bascula
1.-abro el puerto con este codigo
- Code: Select all Expand view
nComm := OpenComm( "COM4",1024,128)
if ! BuildCommDcb( "COM4:9600,e,8,1", @cDcb )
nError = GetCommError( nComm )
MsgInfo( "ERROR DE BASCULA: " + Str( nError ) )
// ? "no hay bascula se cieera"
// quit
ELSE
ENDIF
ya estando abierto el puerto
metes un ciclo en un do while o en un meter como gustes
2.- pongo el ciclo
- Code: Select all Expand view
DO WHILE .T.
pp:=space(80)
for i:= 1 to 2000
next i
READCOMM(NCOMM,@PP)
datos:=ObtenV(PP)
IF datos>=40
? "tomate la foto we jiji",
SELECT BASCU
BASCU->(DBAPPEND())
REPLACE BASCU->REGI WITH "PRIMER WE"
REPLACE BASCU->PESO WITH PENDE
BASCU->(DBUNLOCK())
bASCU->(dbcommit())
ENDIF
pp:=space(60)
Enddo
3.- la funcion obtenv lo que hace es tomar el dato leeido que queda pp y hago x conversion a como manda la informacion el readcom
4.- el dato pp lo puedes mandar a un achivo con fcreate y fwrite
5.- en este ejemplo es para un sistema que tengo que toma la lectura del camion que esta pasando por la bascula
si el pesador no toma el peso el sistema en automatica detecta que si paso algo por la bascula mas de 40 kilos ,, me toma una foto de lo que esta en la buscula ,, lo guarda en archivo dbf,,, y al final en pocas palabras con esto hemos corrido a pesadores jijiji
saludos
Benjamin Casarrubias Moreno
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.comFivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013