Perdendo dados em string serial recebida
Portanto, parte de um projeto maior precisa receber uma longa cadeia de caracteres hexadecimais de uma porta serial usando um pi de framboesa. Eu pensei que tinha tudo funcionando, mas depois descobri que estava perdendo um pedaço de dados no meio da string.
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
Este é o script usado para recuperar os dados, a taxa de transmissão e os comandos seriais estão definidos corretamente e o script é executado como "unbuffered" (-u), mas a string completa não é salva. A string tem aproximadamente 16384 caracteres, mas apenas aproximadamente 9520 caracteres (varia) estão sendo salvos (não é possível fornecer a string para análise). Alguém sabe o que eu sinto falta? Felicidades por qualquer ajuda que você possa me dar.