hola
yo tengo asi instalado en una bascula
1.-abro el puerto con este codigo
聽 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
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. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025