Отправить файл, используя XMODEM в Python

Я пытаюсь передать файл с использованием протокола XMODEM. Я видел решение, представленное в этой ссылке: Пожалуйста, помогите с использованием протокола xmodem, но в моем случае файл можно отправить, но не с этим содержимым, пожалуйста, помогите мне...

вот мой код отправки:

import serial
from xmodem import XMODEM
from time import sleep

s = serial.Serial(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N',     stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.open()

def getc(size, timeout=1):
    return s.read(size)
def putc(data, timeout=1):
    s.write(data)
modem = XMODEM(getc, putc)

f = open('file.txt', 'rb')
stream = f.readlines()
status = modem.send(stream, retry=8)
s.close()
stream.close()

и вот мой код recv:

import serial
from xmodem import XMODEM
from time import sleep

s = serial.Serial(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.open()

def getc(size, timeout=1):
    return s.read(size)
def putc(data, timeout=1):
    s.write(data)
modem = XMODEM(getc, putc)

stream = open('file.txt', 'wb')
modem.recv(stream)
s.close()

2 ответа

Решение

Я думаю, что вы только что открыли файл, но никогда не читали его в своей процедуре отправки.

Попробуй это:

f = open('file.txt', 'rb')

stream = f.readlines()

Попробуйте это в процедуре отправки:

stream = open('file.txt', 'rb')
status = modem.send(stream, retry=8)
Другие вопросы по тегам