Какое значение размера должно быть предоставлено для метода getc в протоколе xmodem?

Я пытаюсь передать файл, используя протокол XMODEM.

Я видел и не понимал решение, представленное в: Могу ли я использовать протокол xmodem с PySerial?

Я видел ссылку на пакет xmodem.

  1. Какова стоимость size быть предоставленным для getc метод? Ему не присваивается значение, указанное в первой ссылке.
  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",

1 ответ

Решение

Вот решение для 1-го вопроса, getc и putc используются XMODEM для считывания размера количества байтов из порта и записи данных в порт соответственно. Они должны быть определены пользователем и предоставлены объекту XMODEM. XMODEM внутренне вызывает getc с размером.

Другие вопросы по тегам