package com.ld.igds.protocol.modbus; import com.ld.igds.constant.Constant; import com.ld.igds.constant.DeviceStatus; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; /** * */ public class ServerUtil { public static final String RUN_TAG = "RUN_TAG"; /** * 设备状态返回的结果 KEY= companyId + serId + deviceCode value = 结果状态 */ private static Map contextStatusMap = new HashMap<>(); /** * 设备解析后的装法存放 * * @param serId * @param deviceCode 设备通道ID * @param status 不考虑设备类型,只在通道上标记是OPEN或者CLOSE即可 */ public static void add2StatusMap(String companyId, String serId, String deviceCode, String status) { // System.out.println(mainLink); // //若不为空,则查询主设备状态 // if(StringUtils.isNotEmpty(mainLink)){ // String oldStatus = contextStatusMap.get(ContextUtil.buildDeviceStatusKey(companyId, serId, mainLink)); // //若风窗或风口开 // if(DeviceStatus.OPEN.getCode().equals(oldStatus)){ // //若风机开 // if(DeviceStatus.OPEN.getCode().equals(status)){ // status = DeviceStatus.F_OPEN.getCode(); // } // //若风机关 // if(DeviceStatus.CLOSE.getCode().equals(status)){ // status = DeviceStatus.W_OPEN.getCode(); // } // } // //若风窗或风口开 // if(DeviceStatus.CLOSE.getCode().equals(oldStatus)){ // //若风机开 // if(DeviceStatus.OPEN.getCode().equals(status)){ // status = DeviceStatus.ERROR.getCode(); // } // //若风机关 // if(DeviceStatus.CLOSE.getCode().equals(status)){ // status = DeviceStatus.W_CLOSE.getCode(); // } // } // contextStatusMap.put(ContextUtil.buildDeviceStatusKey(companyId, serId, mainLink), status); // return; // } contextStatusMap.put(ContextUtil.buildDeviceStatusKey(companyId, serId, deviceCode), status); } public static Map getStatusMap() { return contextStatusMap; } public static int getAddrExe(String temp) { if (Constant.YN_N.equals(temp)) return 65535; if (temp.length() > 4) { temp = temp.substring(temp.length() - 4); } return Integer.valueOf(temp) - 1; } }