나는 파이썬과 pyserial 모듈을 사용하여 데이터 전송 프로그램을 만들었습니다. 나는 현재 라스베리 파이와 내 컴퓨터 사이의 무선 장치를 통해 텍스트 파일을 전달하는 데 사용하고 있습니다. 문제는 내가 보내려고하는 파일이 5000 줄의 텍스트를 포함하고 있으며 크기가 93.0 Kb 인 것이 꽤 오래 걸리는 것입니다. 정확히 말하면 약 1 분이 걸립니다. 몇 초 안에 끝내야합니다. 여기에 다음 코드가 있습니다. 파일 읽기와 데이터 전송 속도를 향상시킬 수있는 많은 최적화가 있다고 확신합니다. 내 무선 장치의 데이터 속도는 250kbps이며, 분명히 도달하지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.Python에서 Pyserial을 사용하여 데이터 전송 속도 향상
코드 (내 노트북에)
def r_f_bird(self): #send command to bird to start func,
if ser_open == True:
readline = lambda : iter(lambda:ser.read(1),"\n")
NAME = self.tb2.get()
ser.write('/' + NAME)
print NAME
sleep(0.5)
ser.write('\n<<SENDFILE>>\n')
start = clock()
with open(str(NAME),"wb") as outfile:
while True:
line = "".join(readline())
if line == "<<EOF>>":
break
print >> outfile, line
elapsed = clock() - start
print elapsed
ser.flush()
else:
pass
직렬 포트의 전송 속도를 설정하고 있습니까? 기본적으로 pyserial은 9600으로 설정합니다. – mtrw
나는 9600에서 230400 baud로 전송 속도를 설정해 보았습니다. 오류는 없지만 파일을 보내는 데 걸리는 시간은 정확히 같습니다. 나는 시간을 잰다. 그리고 이상한 점은 코드를 출력하는 데 2 초 밖에 걸리지 않지만 실제 타이머는 프로세스가 거의 2 분이 걸린다는 것을 보여줍니다. – user3117351