diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index 8e9bc5413402c94290eb5222c2e0abbdcd59252d..5e169f86b543b7aa7d2a8773ea0e8f898745f7bd 100644 --- a/Ccs/ccs_function_lib.py +++ b/Ccs/ccs_function_lib.py @@ -800,7 +800,11 @@ def read_stream(stream, fmt, pos=None, offbi=0): x = struct.unpack('>{}s'.format(fmt[3:]), data)[0] elif fmt.startswith('ascii'): x = struct.unpack('>{}s'.format(fmt[5:]), data)[0] - x = x.decode() + try: + x = x.decode('ascii') + except UnicodeDecodeError as err: + logger.warning(err) + x = str(data) elif fmt == timepack[0]: x = timecal(data) else: @@ -1296,12 +1300,14 @@ def get_calibrated(pcf_name, rawval, properties=None, numerical=False, dbcon=Non if type_par == timepack[0]: #return timecal(rawval, 'uint:32,uint:15,uint:1') return timecal(rawval) - elif categ == 'T': + elif categ == 'T' or type_par.startswith('ascii'): return rawval + elif type_par.startswith('oct'): + return rawval.hex().upper() elif curtx is None: try: return rawval if isinstance(rawval, int) else rawval[0] - except: + except IndexError: return rawval elif curtx is not None and categ == 'N': # print('CALIBRATED!')