отправить файл на последовательный порт в Python - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь отправить файл ниже '105.8k' на мой счетчик энергии. я использую пример xmodem из pypi, но я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:\Py\mainpy.py", line 68, in <module>
    status = modem.send(f, retry=3)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\xmodem\__init__.py", line 270, in send
    char = self.getc(1)
  File "C:\py\mainpy.py", line 62, in getc
    return ser.read(size) or None
AttributeError: 'str' object has no attribute 'read'

the code i use:

### send file to port###

ser = serialPortCombobox.get().split(" ")[0]

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

f = open('105.8k', 'rb')
status = modem.send(f, retry=3)
ser.close()
stream.close()

thank you for your help.
...