1
我正在尝试使用XMODEM协议传输文件。xmodem协议中为getc方法提供的大小值是多少?
我看到的和不理解提供的解决方案:Can I use the xmodem protocol with PySerial?
- 什么是为
getc
方法提供的size
价值?它没有被赋予first link中给出的任何值。 - 当我使用如second link中所解释的简单方法时,我最终得到错误:
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"
。
_“错误”_'没有处理程序可以找到记录器“xmodem”'不是一个真正的错误。它只是'xmodem'包警告你它正试图输出日志消息,但没有配置记录器'xmodem'。请参阅:[日志记录软件包文档](http://docs.python.org/library/logging.html)。 –
@PedroRomano - 非常感谢您的回复。 你给了我第二个问题的解决方案。 这里是第一个问题的解决方案,** getc **和** putc **被XMODEM用来从端口读取_size_字节数并将_data_分别写入端口。它们需要由用户定义并提供给XMODEM对象。 XMODEM内部调用** getc **和_size_。 Regards, Manju – manz