mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
ci: ttfw: Encode serial port data to whatever the console encoding is
This is a bit of a hack, but gives us a way to always log it
This commit is contained in:
@ -40,6 +40,7 @@ If they using different port then need to implement their DUTPort class as well.
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import time
|
import time
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
import threading
|
import threading
|
||||||
import copy
|
import copy
|
||||||
import functools
|
import functools
|
||||||
@ -78,11 +79,15 @@ def _expect_lock(func):
|
|||||||
def _decode_data(data):
|
def _decode_data(data):
|
||||||
""" for python3, if the data is bytes, then decode it to string """
|
""" for python3, if the data is bytes, then decode it to string """
|
||||||
if isinstance(data, bytes):
|
if isinstance(data, bytes):
|
||||||
# convert bytes to string
|
# convert bytes to string. This is a bit of a hack, we know that we want to log this
|
||||||
|
# later so encode to the stdout encoding with backslash escapes for anything non-encodable
|
||||||
|
out_enc = sys.stdout.encoding
|
||||||
|
if out_enc is None:
|
||||||
|
out_enc = 'ascii'
|
||||||
try:
|
try:
|
||||||
data = data.decode("utf-8", "ignore")
|
return data.decode(out_enc, "backslashreplace")
|
||||||
except UnicodeDecodeError:
|
except (UnicodeDecodeError, TypeError): # Python <3.5 doesn't support backslashreplace
|
||||||
data = data.decode("iso8859-1", )
|
return data.decode(out_enc, "replace")
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user