1

我正在尝试使用XMODEM协议传输文件。

我看到但不理解中提供的解决方案:我可以将 xmodem 协议与 PySerial 一起使用吗?

我看到了xmodem 包链接

  1. size为方法提供的价值是什么getc?它没有被赋予第一个链接中给出的任何值。
  2. 当我使用第二个链接中解释的简单方法时,我最终得到了错误:No handlers could be found for logger "xmodem"

这是我发送文件的代码。

import serial
from xmodem import XMODEM, CRC
from time import sleep
def getc(size, timeout=1):
    return port.read(size)
def putc(data, timeout=1):
    port.write(data)
    sleep(0.001) # give device time to send ACK
port = serial.Serial(port='COM10',parity=serial.PARITY_NONE,bytesize=serial.EIGHTBITS,stopbits=serial.STOPBITS_ONE,timeout=0,xonxoff=0,rtscts=0,dsrdtr=0,baudrate=9600)

sleep(2) # give device time to handle command
stream = open('..\\stream\\myfile.bin','rb')
modem = XMODEM(getc, putc)
modem.send(stream, quiet = 0)

我得到错误:No handlers could be found for logger "xmodem"

4

1 回答 1

0

这是第一个问题的解决方案,XMODEM 使用getcputc分别从端口读取大小字节数并将数据写入端口。它们需要由用户定义并提供给 XMODEM 对象。XMODEM 在内部使用size调用getc

于 2012-10-09T10:32:14.910 回答