Basura en el puerto serial???
Hola de nuevo,ok pues pregunto esto porque en el siguente fragmento de codigo que estoy analizando buff toma el valor q recibe del puerto serial ( PesoPort.ReadText es la funcion q lee del puerto),despues length calcula la longitud de la cadena buff y si es mayor o igual a 9 realiza la funcion copy ya mencionada,lo q sigue es una conversion de cadena a flotante.Mi pregunta es¿por q aplicarle la funcion length y luego copy a buff ,acaso el puerto serial manda un tipo de basura o datos q se tengan q desechar y por eso aplica un copy del caracter 1 al 9?
buff := PesoPort.ReadText; if length(buff)>=9 then begin buff := copy(buff,1,9); try peso := strtofloat(buff); Muchas gracias por su atencion,ojala puedan sakarme de la duda. |
Hola,
Por favor, ten un poco de paciencia y no repitas Hilos porque puede resultar un lío. Dejaremos este sin cerrar, pero, por favor, revisa la guía de estilo de los Foros. |
Si, es probable que sea para descartar caracteres de control o basura.
Generalmente las balanzas o centrales telefónicas envian más datos o caracteres de los que necesitamos. En el caso de las balanzas, hay algunas de camiones por ejemplo agregan algun caracter cuando el peso esta estabilizado. Seguramente el que hizo el código esta utilizando solo lo que considera necesario, porque además muchas veces no se dispone de la documentación de los datos que se envian y se hace a puro pulmón (probando y probando). Saludos |
La franja horaria es GMT +2. Ahora son las 07:30:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi