Lectura Bascula
Posted: Mon May 27, 2019 3:40 pm
Buenas tardes para todos, me surge la necesidad en este momento de leer el peso desde una báscula, la cual está conectada a un puerto COMM y con un convertidor TREND NET USB. Buscando en este maravilloso foro encontre algo de código, logrando que la báscula me entregue una respuesta, el problema es que la respuesta me la entrega en un idioma que no entiendo.
Valores que devuelve
Asumo que son paquetes de datos, pero no se como hacer la traducción de los mismos, alguien entiende este idioma?
y me podria indicar como traducirlos.
De antemano gracias
El código que compile

Valores que devuelve
Code: Select all
=042630
Code: Select all
=026525
Code: Select all
=078905

De antemano gracias
El código que compile
Code: Select all
#include 'Fivewin.ch'
#include 'fileio.ch'
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNCTION LeeBascula()
LOCAL nComm, cBloque
nComm := AbrePuertoCom( "1" )
cBloque := LeePuertoCom( nComm,31 )
CloseComm( nComm )
MsgInfo( "Lectura bascula: |" + cBloque + "|",Str( Len( cBloque ) ) )
Return Val( SubStr( cBloque,1,7 ) )
/////////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION AbrePuertoCom( cPuerto )
LOCAL nComm, cDcb, nError
nComm := OpenComm( "COM" + cPuerto + ":9600,N,8,1",2048,512)
If nComm <= 0
nError := GetCommError( nComm )
MsgInfo( "Error al abrir bascula: " + Str( nError ) )
EndIf
If ! BuildCommDcb( "COM" + cPuerto + ":9600,n,8,1" , @cDcb )
nError := GetCommError( nComm )
MsgInfo( "Error al Configurar bascula: " + Str( nError ) )
Return 0
EndIf
If ! SetCommState( nComm, cDcb )
nError := GetCommError( nComm )
MsgInfo( "Error al setear bascula: " + Str( nError ) )
Return 0
EndIf
Return nComm
////////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION LeePuertoCom( nComm,n )
LOCAL cBloque := Space( n ), bcc1, nBytes, i :=1, nWBytes, c
Do While .t.
nBytes := ReadComm( nComm, @cBloque )
i++
If Empty( cBloque )
MsgWait( "Leyendo báscula...","Espere",0.1 )
If ( nWBytes := WriteComm( nComm, Chr( 80 ) ) ) <= 0 // <------ aqui le envias el codigo para que te devuelva el peso
MsgStop( "Error en la báscula al enviar datos","Error" )
Return " "
EndIf
EndIf
If i > 20 .or. cBloque <> Space( n )
Exit
EndIf
EndDo
Return cBloque