# 数据计算模块 对标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 - 数据和操作符 压栈,出栈计算 - 操作符优先级定义