1

XMODEMプロトコルを使用してファイルを転送しようとしています。

提供されている解決策を見ましたが、理解できませんでした: Can I use the xmodem protocol with PySerial?

xmodem パッケージのリンクを見ました。

  1. メソッドsizeに提供される値は何ですか? 最初のリンクgetcで指定された値は割り当てられません。
  2. 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

これが最初の質問の解決策です。getcputcは、XMODEMによって使用され、ポートからサイズのバイト数を読み取り、ポートにデータを書き込みます。これらはユーザーが定義し、XMODEMオブジェクトに提供する必要があります。XMODEMは、サイズがでgetcを内部的に呼び出します。

于 2012-10-09T10:32:14.910 に答える