package com.cbsd.client.branch; import com.cbsd.client.branch.IBranchConditionInterface; import java.util.Map; /** * 分支条件脚本示例, 实现 IBranchConditionInterface 接口 * 根据通道绑定的ICD的协议中的字段,对数据进行判断返回需要跳转的指令名称 */ public class BranchConditionTemplate implements IBranchConditionInterface { /** * 分支条件 * * @param originalCommand 原始指令数据 * @param preTreatmentCommand 预处理指令数据,若无预处理,则为原始指令数据 * @param repeatCount 重复次数 * @param hitCount 命中次数 * @param latestHitTime 最后命中时间 * @param dataMap 数据集合,key为协议字段属性名(label),value为物理值 * @return 需要跳转的指令名称,为空则为不跳转 */ @Override public String branchCondition(String originalCommand, String preTreatmentCommand, int repeatCount, int hitCount, String latestHitTime, Map dataMap) { String temperatureStr = dataMap.get("temperature"); if (temperatureStr != null && !temperatureStr.isEmpty()){ double temperature = Double.parseDouble(temperatureStr); if (temperature > 25){ //此处为指令名称 return "打开降温指令"; } } return null; } /** * 描述 * * @return 描述内容 */ @Override public String comment() { return "当温度高于25摄氏度时跳转 打开降温指令"; } }