Skip to content

Commit 15401a3

Browse files
iabdalkaderdpgeorge
authored andcommitted
tools/mpremote: Fix exception when using pts.
Setting RTS/DTR raises "Inappropriate ioctl for device" for pts devices. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
1 parent 28919ab commit 15401a3

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

tools/mpremote/mpremote/transport_serial.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import ast, io, os, re, struct, sys, time
3939
import serial
4040
import serial.tools.list_ports
41-
from errno import EPERM
41+
from errno import EPERM, ENOTTY
4242
from .console import VT_ENABLED
4343
from .transport import TransportError, TransportExecError, Transport
4444

@@ -107,8 +107,15 @@ def __init__(self, device, baudrate=115200, wait=0, exclusive=True, timeout=None
107107

108108
def close(self):
109109
# ESP Windows quirk: Prevent target from resetting when Windows clears DTR before RTS
110-
self.serial.rts = False
111-
self.serial.dtr = False
110+
try:
111+
self.serial.rts = False
112+
self.serial.dtr = False
113+
except OSError as er:
114+
if er.errno == ENOTTY:
115+
# Some devices (like QEMU pts) don't support RTS/DTR control
116+
pass
117+
else:
118+
raise er
112119
self.serial.close()
113120

114121
def read_until(

0 commit comments

Comments
 (0)