| | |
| | | |
| | | import com.ld.igds.common.CoreDeviceService; |
| | | import com.ld.igds.constant.Constant; |
| | | import com.ld.igds.constant.DeviceStatus; |
| | | import com.ld.igds.io.RemoteControlService; |
| | | import com.ld.igds.io.constant.OrderRespEnum; |
| | | import com.ld.igds.io.constant.ProtocolEnum; |
| | |
| | | ModbusTcp modbusTcp; |
| | | String[] addr; |
| | | String temp; |
| | | int addrExe = 65535; |
| | | for (ExeDevice exeDevice : deviceList) { |
| | | device = deviceService.getCacheDeviceById(exeDevice.getCompanyId(), exeDevice.getId()); |
| | | |
| | |
| | | //modbus规则:开地址-关地址-停地址-开到位-关到位-开故障-关故障,无地址用N代替 |
| | | addr = device.getModbus().split("-"); |
| | | temp = addr[0]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpen(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpen(temp); |
| | | temp = addr[1]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrClose(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrClose(temp); |
| | | temp = addr[2]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrStop(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrStop(temp); |
| | | temp = addr[3]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenEnd(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenEnd(temp); |
| | | temp = addr[4]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseEnd(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseEnd(temp); |
| | | temp = addr[5]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenError(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenError(temp); |
| | | temp = addr[6]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseError(Integer.valueOf(temp)); |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseError(temp); |
| | | |
| | | |
| | | //根据设备目标目标状态,选择需要执行的通道 |
| | | if (DeviceStatus.CLOSE.getCode().equals(device.getTargetStatus())) { |
| | | addrExe = Integer.valueOf(modbusTcp.getAddrClose()); |
| | | } |
| | | |
| | | if(DeviceStatus.OPEN.getCode().equals(device.getTargetStatus())){ |
| | | addrExe = Integer.valueOf(modbusTcp.getAddrOpen()); |
| | | } |
| | | |
| | | |
| | | //TODO 其他状态待定 |
| | | |
| | | //根据设备目标状态,调用MODBUS执行 |
| | | modbusUtil.writeCoil(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrOpen(), true); |
| | | |
| | | modbusUtil.writeCoil(modbusTcp.getIp(), modbusTcp.getPort(),addrExe, true); |
| | | |
| | | } |
| | | } catch (Exception e) { |