import time BUFSIZE = 6 FAST_DELAY_TIME = 0.01 with open('data/octo.gcode') as file: lines = file.readlines() line_number = 0 buflen_accum_last = 0 buflen_accum = 0 bufdiff = 0 buflen_accum_finished = 0 buflen_accum_finished_last = 0 buflen_accum_finished_diff = 0 for idx,line in enumerate(lines): cmd = line.strip()+'\n' if(cmd[0]==';'): continue print(idx,line.strip()) buflen_accum = int(arduino.read_buflen_accum()[0]) buflen = int(arduino.read_buflen()[0]) bufdiff = int(buflen_accum)-int(buflen_accum_last) arduino.write(cmd) cnt=0 while(bufdiff<1): next_buffer_head = int(arduino.read_next_buffer_head()[0]) buflen_accum_last = buflen_accum buflen_accum = int(arduino.read_buflen_accum()[0]) bufdiff = int(buflen_accum)-int(buflen_accum_last) time.sleep(FAST_DELAY_TIME) cnt += 1 cnt=0 buflen = int(arduino.read_buflen()[0]) buflen_accum_finished = int(arduino.read_buflen_accum_finished()[0]) if(buflen>=(BUFSIZE-1)): while True: time.sleep(FAST_DELAY_TIME) buflen_accum_finished_last = buflen_accum_finished buflen_accum_finished = int(arduino.read_buflen_accum_finished()[0]) buflen_accum_finished_diff = int(buflen_accum_finished)-int(buflen_accum_finished_last) buflen = int(arduino.read_buflen()[0]) next_buffer_head = int(arduino.read_next_buffer_head()[0]) if(buflen_accum_finished_diff>0): break cnt += 1 print() print("done")