Серийный Python терпит неудачу 'Несоответствующий ioctl для устройства' - PullRequest
0 голосов
/ 04 октября 2019

Я использую Ubuntu Linux под Windows (WSL) и пытаюсь получить доступ к последовательному порту из Python. Читает и пишет успешно работать. Когда я пытаюсь send_break, вызов не удается.

xxxx@yyyyyyyyyy:~$ python
Python 2.7.15+ (default, Jul  9 2019, 16:51:35)
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial('/dev/ttyS1', timeout=1)   # timeout to make sure read() will actually return
>>> ser.write("Hello!\n")
7
>>> # That call succeeded just fine.
...
>>> ser.read(10)
''
>>> # Nothing returned, but the call was successful
...
>>> ser.send_break()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/xxxx/.local/lib/python2.7/site-packages/serial/serialposix.py", line 613, in send_break
    termios.tcsendbreak(self.fd, int(duration / 0.25))
termios.error: (25, 'Inappropriate ioctl for device')
>>>

Такое ощущение, что это, вероятно, ошибка с модулем Python или драйвером Linux ... так? Есть ли какой-нибудь разумный способ исправить эту проблему и успешно отправить прерывание через последовательный порт из Linux, работающего под WSL?

...