From e9a8f72aae8c08f83fcfb3d1096c7bd1e30f4be8 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期六, 19 八月 2023 11:59:56 +0800 Subject: [PATCH] 调整广西来宾仓库背景配置 --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 89 insertions(+), 2 deletions(-) diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java index c00c5cc..0af4436 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java @@ -1,12 +1,24 @@ package com.ld.igds.protocol.modbus.command; +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; import com.ld.igds.io.request.DeviceAutoControlRequest; import com.ld.igds.io.request.DeviceControlRequest; +import com.ld.igds.io.request.ExeDevice; import com.ld.igds.io.request.TempControlRequest; import com.ld.igds.io.response.DeviceControlResponse; +import com.ld.igds.models.Device; +import com.ld.igds.protocol.modbus.ModbusUtil; +import com.ld.igds.protocol.modbus.data.ModbusTcp; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; /** * 褰撳墠鍗忚閽堝鏍囧噯Modbus-TCP鍗忚 @@ -21,15 +33,87 @@ public static final String BEAN_ID = "modbus.remoteControlService"; + @Resource + private CoreDeviceService deviceService; + @Resource + private ModbusUtil modbusUtil; + @Override public String getProtocol() { - return null; + return ProtocolEnum.MODBUS_TCP.getCode(); } @Override public DeviceControlResponse deviceControl(DeviceControlRequest request) { - return null; + List<ExeDevice> deviceList = request.getDeviceList(); + + if (null == deviceList || deviceList.isEmpty()) { + return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "娌℃湁闇�瑕佹墽琛岀殑璁惧"); + } + + + try { + + + Device device; + ModbusTcp modbusTcp; + String[] addr; + String temp; + int addrExe = 65535; + for (ExeDevice exeDevice : deviceList) { + device = deviceService.getCacheDeviceById(exeDevice.getCompanyId(), exeDevice.getId()); + + if (null == device) continue; + + if (null == device.getModbus()) continue; + + modbusTcp = new ModbusTcp(); + modbusTcp.setIp(request.getIp()); + modbusTcp.setPort(request.getPort()); + modbusTcp.setDeviceId(device.getId()); + modbusTcp.setSerId(request.getSerId()); + + //modbus瑙勫垯锛氬紑鍦板潃-鍏冲湴鍧�-鍋滃湴鍧�-寮�鍒颁綅-鍏冲埌浣�-寮�鏁呴殰-鍏虫晠闅滐紝鏃犲湴鍧�鐢∟浠f浛 + addr = device.getModbus().split("-"); + temp = addr[0]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpen(temp); + temp = addr[1]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrClose(temp); + temp = addr[2]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrStop(temp); + temp = addr[3]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenEnd(temp); + temp = addr[4]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseEnd(temp); + temp = addr[5]; + if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenError(temp); + temp = addr[6]; + 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(),addrExe, true); + + } + } catch (Exception e) { + + } + + return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS); } + @Override public DeviceControlResponse closeAll(DeviceControlRequest request) { @@ -48,11 +132,14 @@ @Override public DeviceControlResponse airAutoControl(DeviceAutoControlRequest request) { + + return null; } @Override public DeviceControlResponse n2AutoControl(DeviceAutoControlRequest request) { + return null; } } -- Gitblit v1.9.3