在 TEDS(传感器电子数据表)模板中,有两种数据类型描述为
ConRes.
“恒定分辨率。这是压缩的自定义数据类型 提供定义的线性映射的浮点值 间隔”
和
ConRelRes。
“恒定相对分辨率。这是一个自定义数据类型 提供对数映射的压缩浮点值 定义的间隔”。
据我了解,它们压缩了最小值/最大值之间的范围,并且仅使用必要的最小位来对范围进行编码。
如果我知道最小值/最大值,如何将此类值转换为 C 类型双精度?
非常简单。例如:
%PhaseCorrection Phase Correction @ ref CAL 6bits ConRes (-3.2 to 3.0, step 0.1)
-3.2 到 3.0 是 6.2。您需要
6.2/.1 + 1 = 63
谨慎的价值观。它以 6 位编码,可以表示 64 个值。
unsigned ConRes6bitIntegerVal = something;
double PhaseCorrection = -3.2 + 0.1 * ConRes6bitIntegerVal;