From 8faab4042151c842167342d62304dfd35fdaab1d Mon Sep 17 00:00:00 2001 From: Eduard Date: Wed, 18 Dec 2024 15:56:12 +0100 Subject: [PATCH] store multiple scalings per signal (LDF-import) --- src/canmatrix/canmatrix.py | 2 +- src/canmatrix/formats/ldf.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/canmatrix/canmatrix.py b/src/canmatrix/canmatrix.py index f88f5a53..487318b2 100644 --- a/src/canmatrix/canmatrix.py +++ b/src/canmatrix/canmatrix.py @@ -191,7 +191,7 @@ class Signal(object): cycle_time = attr.ib(default=0) # type: int initial_value = attr.ib(converter=float_factory, default=float_factory(0.0)) # type: canmatrix.types.PhysicalValue - + scale_ranges = attr.ib(factory=list) min = attr.ib( converter=lambda value, float_factory=float_factory: ( float_factory(value) diff --git a/src/canmatrix/formats/ldf.py b/src/canmatrix/formats/ldf.py index 51de6da8..7b4ba715 100644 --- a/src/canmatrix/formats/ldf.py +++ b/src/canmatrix/formats/ldf.py @@ -25,6 +25,12 @@ def load(f, **options): # type: (typing.IO, **typing.Any) -> canmatrix.CanMatri if isinstance(converter, ldfparser.encoding.LogicalValue): cm_signal.add_values(converter.phy_value, converter.info) if isinstance(converter, ldfparser.encoding.PhysicalValue): + cm_signal.scale_ranges.append({ + "min" : converter.phy_min, + "max" : converter.phy_max, + "factor" : converter.scale, + "offset" : converter.offset, + "unit" : converter.unit}) cm_signal.offset = converter.offset cm_signal.factor = converter.scale cm_signal.unit = converter.unit