diff --git a/et_calc/README.md b/et_calc/README.md new file mode 100644 index 0000000..db81d46 --- /dev/null +++ b/et_calc/README.md @@ -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 +- 数据和操作符 压栈,出栈计算 +- 操作符优先级定义 + + + + +