|
|
|
@ -92,6 +92,10 @@ public class DeviceControlServiceImpl implements DeviceControlService {
|
|
|
|
|
rtData = handleTimeControl(serialPortModel, deviceCodeParam, controlData, rtData, type, serialPortSingle); |
|
|
|
|
log.info("设备类型为时控==>{}", rtData); |
|
|
|
|
break; |
|
|
|
|
case "温控": |
|
|
|
|
rtData = handleTempControl(serialPortModel, deviceCodeParam, controlData, rtData, type, serialPortSingle); |
|
|
|
|
log.info("设备类型为温控==>{}", rtData); |
|
|
|
|
break; |
|
|
|
|
case "水位开关": |
|
|
|
|
rtData = handleWaterLevelSwitch(serialPortModel, deviceCodeParam, controlData, rtData, type, serialPortSingle); |
|
|
|
|
log.info("设备类型为水位开关==>{}", rtData); |
|
|
|
@ -139,6 +143,57 @@ public class DeviceControlServiceImpl implements DeviceControlService {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String handleTempControl(SerialPortModel serialPortModel, DeviceCodeParamEntity deviceCodeParam, ControlSetEntity controlData, String rtData, String type, SerialPortSingle2 serialPortSingle) { |
|
|
|
|
switch (deviceCodeParam.getParam()) { |
|
|
|
|
case "upperLimit": |
|
|
|
|
// 上限
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0100"); |
|
|
|
|
break; |
|
|
|
|
case "lowerLimit": |
|
|
|
|
// 下限
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0108"); |
|
|
|
|
break; |
|
|
|
|
case "upperUpperLimit": |
|
|
|
|
// 上上限
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0110"); |
|
|
|
|
break; |
|
|
|
|
case "lowerLowerLimit": |
|
|
|
|
// 下下限
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0118"); |
|
|
|
|
break; |
|
|
|
|
case "curTemp": |
|
|
|
|
// 当前温度
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0000"); |
|
|
|
|
break; |
|
|
|
|
case "upperLimitDiff": |
|
|
|
|
// 上限回差
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0104"); |
|
|
|
|
break; |
|
|
|
|
case "lowerLimitDiff": |
|
|
|
|
// 下限回差
|
|
|
|
|
deviceCodeParam.setRegisterAddr("010C"); |
|
|
|
|
break; |
|
|
|
|
case "upperUpperLimitDiff": |
|
|
|
|
// 上上限回差
|
|
|
|
|
deviceCodeParam.setRegisterAddr("0114"); |
|
|
|
|
break; |
|
|
|
|
case "lowerLowerLimitDiff": |
|
|
|
|
// 下下限回差
|
|
|
|
|
deviceCodeParam.setRegisterAddr("011C"); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
if (Constant.READ.equals(type)) { |
|
|
|
|
deviceCodeParam.setFunCode("03"); //功能码读数据
|
|
|
|
|
rtData = serialPortSingle.serialPortSend(deviceCodeParam);//生成并发送指令
|
|
|
|
|
} else { |
|
|
|
|
// 传入值,小数点保留一位,需要乘以10倍
|
|
|
|
|
int setValue = new BigDecimal(serialPortModel.getDataValue()).multiply(new BigDecimal(10)).intValue(); |
|
|
|
|
deviceCodeParam.setDataValue(String.valueOf(setValue)); |
|
|
|
|
deviceCodeParam.setFunCode("10"); //功能码写数据
|
|
|
|
|
} |
|
|
|
|
return rtData; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String handleElectricMeter(SerialPortModel serialPortModel, DeviceCodeParamEntity deviceCodeParam, ControlSetEntity controlData, String rtData, String type, SerialPortSingle2 serialPortSingle) { |
|
|
|
|
rtData = serialPortSingle.serialPortSend(deviceCodeParam); |
|
|
|
|
return rtData; |
|
|
|
|