mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
idf_monitor: Ignore OS-level errors writing to Windows Console
Windows Console write or flush may fail (throwing WindowsError, a subclass of OSError) if the data written can't be displayed. This may be the case if the serial port is producing garbage bytes. Ignore the error, in the hope that the serial port may "come good" and write non-garbage later.
This commit is contained in:
parent
e8db1c4da0
commit
2e43d107b4
@ -899,10 +899,13 @@ if os.name == 'nt':
|
||||
self.output.write(data.decode())
|
||||
else:
|
||||
self.output.write(data)
|
||||
except IOError:
|
||||
except (IOError, OSError):
|
||||
# Windows 10 bug since the Fall Creators Update, sometimes writing to console randomly throws
|
||||
# an exception (however, the character is still written to the screen)
|
||||
# Ref https://github.com/espressif/esp-idf/issues/1136
|
||||
# Ref https://github.com/espressif/esp-idf/issues/1163
|
||||
#
|
||||
# Also possible for Windows to throw an OSError error if the data is invalid for the console
|
||||
# (garbage bytes, etc)
|
||||
pass
|
||||
|
||||
def write(self, data):
|
||||
@ -939,7 +942,12 @@ if os.name == 'nt':
|
||||
self.matched = b''
|
||||
|
||||
def flush(self):
|
||||
self.output.flush()
|
||||
try:
|
||||
self.output.flush()
|
||||
except OSError:
|
||||
# Account for Windows Console refusing to accept garbage bytes (serial noise, etc)
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user