公式使用指南 (Formula Usage)
EMS Simulate 支持使用自定义公式对原始寄存器数据进行处理,将其转换为具有物理意义的工程值(如电压、电流、温度等)。
1. 公式语法
公式基于 Python 表达式语法,支持基本的算术运算和内置函数。
- 变量
x代表寄存器读取到的原始值。
基本运算
| 运算符 | 说明 | 示例 |
|---|---|---|
+ | 加法 | x + 10 |
- | 减法 | x - 5 |
* | 乘法 | x * 0.1 |
/ | 除法 | x / 100 |
** | 幂运算 | x ** 2 (平方) |
% | 取模 | x % 10 |
2. 内置函数
支持使用 Python math 库中的常用函数。
| 函数 | 说明 | 示例 |
|---|---|---|
abs(x) | 绝对值 | abs(x) |
round(x, n) | 四舍五入 | round(x * 0.1, 2) (保留2位小数) |
math.sin(x) | 正弦 | math.sin(x) |
math.cos(x) | 余弦 | math.cos(x) |
math.sqrt(x) | 平方根 | math.sqrt(x) |
max(x, y) | 取最大值 | max(x, 0) |
min(x, y) | 取最小值 | min(x, 100) |
逻辑运算 (若是支持)
支持简单的条件表达式(三元运算符): value_if_true if condition else value_if_false
- 示例:
x / 10 if x > 0 else 0
3. 典型应用场景
3.1 精度转换
将整数寄存器值转换为浮点数:
- 寄存器值
1234,实际值12.34 - 公式:
x * 0.01或x / 100
3.2 单位转换
- 摄氏度转华氏度:
x * 1.8 + 32 - 分钟转秒:
x * 60
3.3 位操作
提取特定的位(Bit):
- 提取第 0 位:
(x >> 0) & 1 - 提取第 3 位:
(x >> 3) & 1