Saludos estimado colega:
Esa bascula envía texto, no te preocupes en cuanto a eso.
Pero debes saber, que para recibir no es en la misma secuencia de código, lo que quiero decir que no te funciona:
if ComForm.Testcom.CommEvent = 2 AND ComForm.Testcom.InBufferCount > 0
*!* vBufferCOM = vBufferCOM + ComForm.Testcom.Input &&CHR(VAL(ComForm.Testcom.Input))
for i=1 to 350
vbuffercom = vbuffercom + ComForm.Testcom.Input && leo el valor del buffers de entrada y lo almaceno
endfor
endif
thisform.txtPeso.value = ALLTRIM(vBufferCOM)
thisform.txtPeso.Refresh
messagebox (vBufferCOM)
ComForm.Testcom.PortOpen = .F.
Hay dos posibilidades:
1. Usar el método OnComm
a. Funciona si en la propiedad RThreshold le pones un valor que no sea 0.
b. En este método pones tu código de recepción de datos.
c. NOTA: debes tomar en cuenta que si no recibe nada no se cerrara el puerto.
i. ComForm.Testcom.PortOpen = .F.
2. Usar un objeto Timer
a. Deberia activarse agregando el código adjunto en la solicitud de peso
i. Thisform.Timer.Interval = (Valor mayor que 0)
b. Estara viendo el contenido del buffer del puerto (InBufferCount), al encontrar un valor mayor que 0 podes tomar lo que está en Input.
Perdona lo escueta de mi respuesta, pero espero que te sirva para entender porque no ves lo que envía la bascula.
Bendiciones.
Carlos Alfaro