1 changed files with 40 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||
# 数据计算模块 |
|||
对标anxinyun 3.0的计算模块,用于测点数据公式计算。 |
|||
## 功能说明: |
|||
用于计算测点数据,支持 常规公式计算,和特殊的分组计算。 |
|||
|
|||
|
|||
### 公式id获取 |
|||
针对之前3.0 et版本中,公式id获取不便,设备无法绑定多公式问题,本次优化修改,强调修改如下: |
|||
|
|||
测点配置的时候 将公式 formulaId写入 t_device_sensor 表 |
|||
自测时候 手动 写入公式id |
|||
(后续前端web需要更新,支持公式id写入t_device_sensor表,用于后续支持测点支持多可选公式) |
|||
|
|||
### 通用公式表达式计算 |
|||
特殊公式进行代码定制编写。 |
|||
平台的一些特殊公式本地化暂不支持。 |
|||
|
|||
#### 计算流程: |
|||
- 读取公式表达式 |
|||
- 多级表达式分解 ',' |
|||
- 参数字符替换为实际值 如 c=a * b => c=1.1 * 2 |
|||
- 调用common_calc.CalculateFormula 进行模板计算。 |
|||
|
|||
|
|||
|
|||
|
|||
#### 模板计算: |
|||
|
|||
通用公式表达式计算 引用自研计算模块 common_calc。 |
|||
|
|||
模块核心内容为formulaTemplateCalculate.go |
|||
里面包含: |
|||
- 中缀表达式转后缀表达式 如 -1.1-2 => 0-1.1-2 |
|||
- 数据和操作符 压栈,出栈计算 |
|||
- 操作符优先级定义 |
|||
|
|||
|
|||
|
|||
|
|||
|
Loading…
Reference in new issue