Skip to content

Commit da61227

Browse files
committed
Visually separate verification trace data
1 parent 4294d88 commit da61227

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

bauer_bsm/bsm/md.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,32 @@ def update_md_from_point(md, point, trace=None):
9393
(value, scaler) = md_value_and_scaler_for_point(point)
9494

9595
data = None
96+
trace_data_slicer = None
9697

9798
if type_ in _MD_UNSIGNED_TYPES:
9899
data = data_for_scaled_uint32(md, value, scaler, dlms_unit)
100+
trace_data_slicer = lambda s: [s[:4], s[4:5], s[5:]]
99101
elif type_ in _MD_SIGNED_TYPES:
100102
data = data_for_scaled_int32(md, value, scaler, dlms_unit)
103+
trace_data_slicer = lambda s: [s[:4], s[4:5], s[5:]]
101104
elif type_ == suns.SUNS_TYPE_STRING:
102105
data = data_for_string(md, value)
106+
trace_data_slicer = lambda s: [s[:4], s[4:]]
103107
else:
104108
raise TypeError('Unsupported point type \'{}\'.'.format(type_))
105109

106110
md.update(data)
107111

108112
if trace:
113+
# Render trace data separated by spaces to improve readability if
114+
# slicing has been provided.
115+
if trace_data_slicer:
116+
rendered = ' '.join(map(lambda x: x.hex(), trace_data_slicer(data)))
117+
else:
118+
rendered = data.hex()
119+
109120
trace('{}:\n value: {}\n data: {}\n'.format(point.point_type.id,
110-
fmt.format_point_value(point), data.hex()))
121+
fmt.format_point_value(point), rendered))
111122

112123

113124
def data_for_scaled_int32(md, value, scaler, unit):

0 commit comments

Comments
 (0)