我正在使用底部的代码通过串口成功将BIN文件发送到电表。 我的问题是Xmodem在发送完所有128个块之后不会停止,我也不知道如何中断它并再次与电表通信。
请帮助。
def sendFile():
fileSize = os.path.getsize('104_new.BIN')
total = math.ceil(fileSize /128)
ser= serialPort.serialport
ser.flushInput()
print (ser)
def getc(size, timeout=0):
gbytes = ser.read(1)
#sleep(0.008)
print(f'Read Byte: {gbytes}')
return gbytes or None
def putc(data, timeout=0):
pbytes = ser.write(data)
sleep(0.2)
print(f'Put Byte: {pbytes}')
return pbytes or None
modem =XMODEM(getc,putc)
f = open('104_new.BIN', "rb")
modem.send(f,retry=50,callback=total)
f.close()
ser.close()
ser.flushOutput()
senddata_edit.insert(0,'scan\r')