|
|
|
|
@ -331,7 +331,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
|
|
|
|
|
log.info("正帝热泵解析 - 地址: {}, 原始值: {}, 解析结果: {}", regAddr, value, parsedValue); |
|
|
|
|
|
|
|
|
|
// 根据不同的寄存器地址处理不同的业务逻辑
|
|
|
|
|
processZhengDiData(regAddr, parsedValue, value, buildingId, buildingName, addr, dataType); |
|
|
|
|
processZhengDiData(regAddr, parsedValue, value, buildingId, buildingName, addr, dataType, deviceCodeParamEntity.getDeviceName()); |
|
|
|
|
sValue = String.valueOf(parsedValue); |
|
|
|
|
// 这里根据com口、deviceType、brand、deviceAddr、buildingId查询对应deviceInstall的ID值
|
|
|
|
|
Integer deviceInstallId = deviceInstallService.selectDeviceByOtherParams(deviceCodeParamEntity); |
|
|
|
|
@ -353,8 +353,8 @@ public class HeatPumpStrategy implements DeviceStrategy {
|
|
|
|
|
* 处理正帝热泵解析后的数据 |
|
|
|
|
*/ |
|
|
|
|
private void processZhengDiData(String regAddr, Object parsedValue, int rawValue, |
|
|
|
|
String buildingId, String buildingName, String addr, |
|
|
|
|
StringBuffer dataType) { |
|
|
|
|
String buildingId, String buildingName, String addr, |
|
|
|
|
StringBuffer dataType, String deviceName) { |
|
|
|
|
try { |
|
|
|
|
// 温度相关数据
|
|
|
|
|
if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_DISPLAY_WATER_TEMP) || |
|
|
|
|
@ -363,14 +363,32 @@ public class HeatPumpStrategy implements DeviceStrategy {
|
|
|
|
|
dataType.setLength(0); |
|
|
|
|
dataType.append("waterTemp"); |
|
|
|
|
String tempStr = parsedValue.toString(); |
|
|
|
|
|
|
|
|
|
// 保存公共数据
|
|
|
|
|
String avgTemp = nowDataService.selectAve(buildingId); |
|
|
|
|
NowPublicDataEntity publicData = new NowPublicDataEntity(); |
|
|
|
|
publicData.setBuildingId(buildingId); |
|
|
|
|
publicData.setSingleTemp(tempStr); |
|
|
|
|
publicData.setUseWaterTemp(avgTemp); |
|
|
|
|
publicData.setBackWaterTemp(avgTemp); |
|
|
|
|
String pumpId = nowDataService.selectMinPumpId(buildingId); |
|
|
|
|
// 如果是华夏,则取新增得字段标识为热泵ID
|
|
|
|
|
String name = dealDataService.customName(); |
|
|
|
|
if (name.contains(Constant.CUSTOM_NAME_HUAXIA)) { |
|
|
|
|
pumpId = deviceInstallService.selectSinglePumpId(buildingId, addr); |
|
|
|
|
} |
|
|
|
|
log.info("---------------addr:" + addr + ",pumpId:" + pumpId + " ---------------"); |
|
|
|
|
if (addr.equals(pumpId)) { //取ID最小的热泵为单箱温度
|
|
|
|
|
publicData.setSingleTemp(tempStr); |
|
|
|
|
log.info("---------------单箱温度:" + tempStr + "---------------"); |
|
|
|
|
} |
|
|
|
|
nowPublicDataService.saveNowHistoryPublicData(publicData); |
|
|
|
|
log.info("楼栋名称:" + buildingName + ",热泵编号:" + addr); |
|
|
|
|
|
|
|
|
|
log.info("楼栋名称:{}, 热泵编号:{}, 水箱温度:{}", buildingName, addr, tempStr); |
|
|
|
|
// // 保存公共数据
|
|
|
|
|
// NowPublicDataEntity publicData = new NowPublicDataEntity();
|
|
|
|
|
// publicData.setBuildingId(buildingId);
|
|
|
|
|
// publicData.setSingleTemp(tempStr);
|
|
|
|
|
// nowPublicDataService.saveNowHistoryPublicData(publicData);
|
|
|
|
|
//
|
|
|
|
|
// log.info("楼栋名称:{}, 热泵编号:{}, 水箱温度:{}", buildingName, addr, tempStr);
|
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_OUTLET_TEMP)) { |
|
|
|
|
// 出水温度
|
|
|
|
|
@ -394,25 +412,25 @@ public class HeatPumpStrategy implements DeviceStrategy {
|
|
|
|
|
// 制冷设置温度
|
|
|
|
|
dataType.setLength(0); |
|
|
|
|
dataType.append("coolSetTemp"); |
|
|
|
|
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); |
|
|
|
|
//pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
|
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HEAT_SET_TEMP)) { |
|
|
|
|
// 制热设置温度
|
|
|
|
|
dataType.setLength(0); |
|
|
|
|
dataType.append("heatSetTemp"); |
|
|
|
|
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); |
|
|
|
|
//pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
|
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HOT_WATER_SET_TEMP)) { |
|
|
|
|
// 热水设置温度
|
|
|
|
|
dataType.setLength(0); |
|
|
|
|
dataType.append("hotWaterSetTemp"); |
|
|
|
|
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); |
|
|
|
|
pumpSetService.updatePumpSetTempAndPumpName(parsedValue.toString(), buildingId, addr, deviceName); |
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_CONSTANT_TEMP_SET)) { |
|
|
|
|
// 恒温设置温度
|
|
|
|
|
dataType.setLength(0); |
|
|
|
|
dataType.append("constantTempSet"); |
|
|
|
|
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); |
|
|
|
|
// pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
|
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_MODE)) { |
|
|
|
|
// 运行模式
|
|
|
|
|
@ -436,7 +454,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
|
|
|
|
|
dataType.append("isFault"); |
|
|
|
|
|
|
|
|
|
String faultStatus = (rawValue == 0) ? "无故障" : "有故障"; |
|
|
|
|
deviceInstallService.updateDeviceFault((rawValue == 0) ? "0" : "1", addr, "热泵"); |
|
|
|
|
deviceInstallService.updateDeviceFaultAndDeviceName((rawValue == 0) ? "0" : "1", addr, "热泵", deviceName); |
|
|
|
|
log.info("楼栋名称:{}, 热泵编号:{}, 故障状态:{}", buildingName, addr, faultStatus); |
|
|
|
|
|
|
|
|
|
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_INPUT_SWITCH_STATUS)) { |
|
|
|
|
|