2012-10-08 58 views
1

我正在尝试使用XMODEM协议传输文件。xmodem协议中为getc方法提供的大小值是多少?

我看到的和不理解提供的解决方案:Can I use the xmodem protocol with PySerial?

我看到xmodem package link

  1. 什么是为getc方法提供的size价值?它没有被赋予first link中给出的任何值。
  2. 当我使用如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"

+0

_“错误”_'没有处理程序可以找到记录器“xmodem”'不是一个真正的错误。它只是'xmodem'包警告你它正试图输出日志消息,但没有配置记录器'xmodem'。请参阅:[日志记录软件包文档](http://docs.python.org/library/logging.html)。 –

+0

@PedroRomano - 非常感谢您的回复。 你给了我第二个问题的解决方案。 这里是第一个问题的解决方案,** getc **和** putc **被XMODEM用来从端口读取_size_字节数并将_data_分别写入端口。它们需要由用户定义并提供给XMODEM对象。 XMODEM内部调用** getc **和_size_。 Regards, Manju – manz

回答

0

这里是用来通过XMODEM读取大小数目从端口的字节和分别写数据到端口,用于第一问题的解决方案,GETCputc将。它们需要由用户定义并提供给XMODEM对象。 XMODEM内部调用getc大小