hola, estoy interesada en hacer un puerto serie que lea los mensajes que le mando al puerto y me los guarde en un fichero txt. tengo el siguiente codigo, en "ser.read()" me lee solo 1 dato, si por ejemplo pongo mas solo me muestra el primero pero si por pongo ser.read(4), en este caso hasta que no llego a 4 caracteres no me manda el mensaje y me lo escribe en el txt, quiero poder mandarle cualquier mensaje sin limite de caracteres para que se envie y cualquier mensaje que me lo mande, no que vaya de 1 en 1, si no todos, espero que se me entienda, la segunda version del codigo es parecida pero me sale el mismo problema. un saludo.
Código:
import serial
file2=open('params.txt','w')
ser=serial.Serial(
port ='COM17',
baudrate = 115200)
data = ser.read()
data = data.replace(b'\r',b'')
data = data.replace(b'\x1b',b'')
dataASCII = data.decode("ascii")
file2.write(dataASCII)
file2.close
Código:
import serial
archi1=open("datos7.txt",'w')
ser=serial.Serial('COM17',baudrate = 115200)
try:
ser.isOpen()
print ("Reading open")
except:
print ("Error")
exit()
data = ser.read(4)
data = data.replace(b'\r',b'')
data = data.replace(b'\x1b',b'')
dataASCII = data.decode("ascii")
while data:
print(data)
if archi1.write(dataASCII):
break
archi1.close()