PynquinoでJupyterからZsprinterにG-codeを送信する

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")