Какое значение размера должно быть предоставлено для метода getc в протоколе xmodem?
Я пытаюсь передать файл, используя протокол XMODEM.
Я видел и не понимал решение, представленное в: Могу ли я использовать протокол xmodem с PySerial?
Я видел ссылку на пакет xmodem.
- Какова стоимость
size
быть предоставленным дляgetc
метод? Ему не присваивается значение, указанное в первой ссылке. - Когда я использую простой метод, как описано во второй ссылке, я получаю сообщение об ошибке:
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"
,
1 ответ
Решение
Вот решение для 1-го вопроса, getc и putc используются XMODEM для считывания размера количества байтов из порта и записи данных в порт соответственно. Они должны быть определены пользователем и предоставлены объекту XMODEM. XMODEM внутренне вызывает getc с размером.