Perdiendo datos en la cadena serial recibida
Por lo tanto, parte de un proyecto más grande necesita recibir una cadena de caracteres hexadecimales larga desde un puerto serie utilizando una pi frambuesa. Pensé que lo tenía todo funcionando pero luego descubrí que estaba perdiendo una parte de los datos en medio de la cadena.
def BUTTON_Clicked(self, widget, data= None):
ser = serial.Serial("/dev/ex_device", 115200, timeout=3)
RECEIVEDfile = open("RECIEVED.txt", "r+", 0) #unbuffered
#Commands sent out
ser.write("*n\r")
time.sleep(1)
ser.flush()
ser.write("*E")
ser.write("\r")
#Read back string rx'd
RECEIVED= ser.read()
RECEIVED= re.sub(r'[\W_]+', '', RECEIVED) #remove non-alphanumeric characters (caused by noise maybe?)
RECEIVEDfile.write(re.sub("(.{4})", "\\1\n", RECEIVED, 0, re.DOTALL)) #new line every 4 characters
RECEIVEDfile.close
ser.write("*i\r")
ser.close
Esta es la secuencia de comandos utilizada para recuperar los datos, la velocidad en baudios y los comandos serie se configuran correctamente y la secuencia de comandos se ejecuta como "sin almacenamiento" (-u), pero aún no se guarda la cadena completa. La cadena tiene aproximadamente 16384 caracteres, pero solo se guardan aproximadamente 9520 caracteres (varía) (no se puede proporcionar la cadena para el análisis). Alguien sabe lo que me estoy perdiendo? Saludos por cualquier ayuda que puedas darme.