2012-10-08 80 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大小