Lectura Bascula
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
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
![Shocked :shock:](./images/smilies/icon_eek.gif)
Valores que devuelve
- Code: Select all Expand view
- =042630
- Code: Select all Expand view
- =026525
- Code: Select all Expand view
- =078905
Asumo que son paquetes de datos, pero no se como hacer la traducción de los mismos, alguien entiende este idioma?
![Very Happy :D](./images/smilies/icon_biggrin.gif)
De antemano gracias
El código que compile
- Code: Select all Expand view
#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