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