diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
index 5d89569a3..59f633ce6 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
@@ -80,55 +80,191 @@ public class NDCAgvServiceImpl implements NDCAgvService {
log.info("sendAgvInstToNDC 指令下发NDC:" + "inst_code:" + inst.getInstruction_code() + ",agv_system_type:" + agv_system_type + ",agv_inst_type:" + inst.getAgv_inst_type() +
",priority:" + inst.getPriority() + ",startAddress:" + inst.getStart_point_code() +
",nextAddress:" + inst.getNext_point_code());
- if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) {
- String instcode = inst.getInstruction_code();
- int type = Integer.parseInt(inst.getInstruction_type());
- int priority = Integer.parseInt(inst.getPriority()) + 128;
- DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
- DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class);
- int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code());
- int nextAddress = deviceService.queryAddressBydeviceCode(inst.getNext_point_code());
- byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode));
- byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode));
- byte typehigh = (byte) IntToHexHigh(type);
- byte typelow = (byte) IntToHexLow(type);
- byte qhdhigh = (byte) IntToHexHigh(startAddress);
- byte qhdlow = (byte) IntToHexLow(startAddress);
- byte fhdhigh = (byte) IntToHexHigh(nextAddress);
- byte fhdlow = (byte) IntToHexLow(nextAddress);
- byte prioritylow = (byte) IntToHexLow(priority);
- String str = "十进制下发:";
- String str1 = "十六进制下发:";
- str += "ikey:" + (Integer.parseInt(instcode));
- str1 += "ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
- str += "/type:" + (type);
- str1 += "/type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF);
- str += "/qhd:" + (startAddress);
- str1 += "/qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF);
- str += "/fhd:" + (nextAddress);
- str1 += "/fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF);
- str += "/priority:" + (priority);
- str1 += "/priority:" + hexToString(prioritylow & 0xFF);
- System.out.println(str);
- System.out.println(str1);
- byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
- (byte) 0X00, (byte) 0X08,
- (byte) 0X00, (byte) 0X12,
- (byte) 0X00, (byte) 0X01,
- (byte) 0X00, (byte) 0X71,
- (byte) 0X00, (byte) 0X0E,
- (byte) 0X01, prioritylow,
- (byte) 0X00, (byte) 0X01,
- (byte) ikeyhigh, (byte) ikeylow,
- (byte) ikeyhigh, (byte) ikeylow,
- (byte) typehigh, (byte) typelow,
- (byte) qhdhigh, (byte) qhdlow,
- (byte) fhdhigh, (byte) fhdlow
- };
- log.info("下发AGV作业指令--{}", str1);
-// OneNDCSocketConnectionAutoRun.write(b);
- TwoNDCSocketConnectionAutoRun.write(b);
- System.out.println("下发agv指令数据:" + Bytes2HexString(b));
+ if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
+ if (!StrUtil.equals(agv_system_type, "1")) {
+ String instcode = inst.getInstruction_code();
+ int type = Integer.parseInt(inst.getAgv_inst_type());
+ int priority = Integer.parseInt(inst.getPriority()) + 128;
+ DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
+ DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class);
+ int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code());
+ int nextAddress = deviceService.queryAddressBydeviceCode(inst.getNext_point_code());
+ int startAddress2 = deviceService.queryAddressBydeviceCode(inst.getStart_point_code2());
+ int nextAddress2 = deviceService.queryAddressBydeviceCode(inst.getNext_point_code2());
+ byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode));
+ byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode));
+ byte typehigh = (byte) IntToHexHigh(type);
+ byte typelow = (byte) IntToHexLow(type);
+ byte qhdhigh = (byte) IntToHexHigh(startAddress);
+ byte qhdlow = (byte) IntToHexLow(startAddress);
+ byte qhdhigh2 = (byte) IntToHexHigh(startAddress2);
+ byte qhdlow2 = (byte) IntToHexLow(startAddress2);
+ byte fhdhigh = (byte) IntToHexHigh(nextAddress);
+ byte fhdlow = (byte) IntToHexLow(nextAddress);
+ byte fhdhigh2 = (byte) IntToHexHigh(nextAddress2);
+ byte fhdlow2 = (byte) IntToHexLow(nextAddress2);
+ byte prioritylow = (byte) IntToHexLow(priority);
+
+ String str = "十进制下发:";
+ String str1 = "十六进制下发:";
+ str += "任务号 ikey:" + (Integer.parseInt(instcode));
+ str1 += "任务号 ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
+
+ str += "指令类型 /type:" + (type);
+ str1 += "指令类型 /type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF);
+
+ str += "取货点 /qhd:" + (startAddress);
+ str1 += "取货点 /qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF);
+ str += "放货点 /fhd:" + (nextAddress);
+ str1 += "放货点 /fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF);
+
+ str += "取货点2 /qhd2:" + (startAddress2);
+ str1 += "取货点2 /qhd2:" + hexToString(qhdhigh2 & 0xFF) + hexToString(qhdlow2 & 0xFF);
+ str += "放货点2 /fhd2:" + (nextAddress2);
+ str1 += "放货点2 /fhd2:" + hexToString(fhdhigh2 & 0xFF) + hexToString(fhdlow2 & 0xFF);
+
+ str += "优先级 /priority:" + (priority);
+ str1 += "优先级 /priority:" + hexToString(prioritylow & 0xFF);
+
+ byte[] b = new byte[]{};
+ if (type == 1) {
+ b = new byte[]{(byte) 0X87, (byte) 0XCD,
+ (byte) 0X00, (byte) 0X08,
+ (byte) 0X00, (byte) 0X16,
+ (byte) 0X00, (byte) 0X01,
+ (byte) 0X00, (byte) 0X71,
+ (byte) 0X00, (byte) 0X12,
+ (byte) 0X01, prioritylow,
+ (byte) 0X00, (byte) 0X01,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) typehigh, (byte) typelow,
+ (byte) qhdhigh, (byte) qhdlow,
+ (byte) qhdhigh2, (byte) qhdlow2,
+ (byte) fhdhigh, (byte) fhdlow,
+ (byte) fhdhigh2, (byte) fhdlow2
+ };
+ } else if (type == 2) {
+ b = new byte[]{(byte) 0X87, (byte) 0XCD,
+ (byte) 0X00, (byte) 0X08,
+ (byte) 0X00, (byte) 0X16,
+ (byte) 0X00, (byte) 0X01,
+ (byte) 0X00, (byte) 0X71,
+ (byte) 0X00, (byte) 0X12,
+ (byte) 0X01, prioritylow,
+ (byte) 0X00, (byte) 0X01,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) typehigh, (byte) typelow,
+ (byte) qhdhigh, (byte) qhdlow,
+ (byte) 0X00, (byte) 0X00,
+ (byte) fhdhigh, (byte) fhdlow,
+ (byte) 0X00, (byte) 0X00
+ };
+ } else if (type == 3) {
+ b = new byte[]{(byte) 0X87, (byte) 0XCD,
+ (byte) 0X00, (byte) 0X08,
+ (byte) 0X00, (byte) 0X16,
+ (byte) 0X00, (byte) 0X01,
+ (byte) 0X00, (byte) 0X71,
+ (byte) 0X00, (byte) 0X12,
+ (byte) 0X01, prioritylow,
+ (byte) 0X00, (byte) 0X01,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) typehigh, (byte) typelow,
+ (byte) qhdhigh, (byte) qhdlow,
+ (byte) qhdhigh2, (byte) qhdlow2,
+ (byte) fhdhigh, (byte) fhdlow,
+ (byte) fhdhigh2, (byte) fhdlow2
+ };
+ }
+ log.info("下发AGV作业指令 --{}", str1);
+ log.info("下发AGV作业指令--{}", str);
+ log.info("下发agv指令数据--{}", Bytes2HexString(b));
+
+ if (StrUtil.equals(agv_system_type, "2")) {
+ TwoNDCSocketConnectionAutoRun.write(b);
+ }
+ } else {
+
+ String instcode = inst.getInstruction_code();
+ int startHeight = Integer.parseInt(StrUtil.isEmpty(inst.getStart_height()) ? "0" : inst.getStart_height());
+ int nextHeight = Integer.parseInt(StrUtil.isEmpty(inst.getNext_height()) ? "0" : inst.getNext_height());
+ //默认取货放货高度都为0
+ //int type = Integer.parseInt(inst.getInstruction_type());
+ int type = 4;
+ if (startHeight != 0 && nextHeight != 0) {
+ //取货放货高度都不为0
+ type = 1;
+ } else if (startHeight != 0 && nextHeight == 0) {
+ //取货高度不为0 放货高度为0
+ type = 2;
+ } else if (startHeight == 0 && nextHeight != 0) {
+ //取货高度为0 放货高度不为0
+ type = 3;
+ }
+ int priority = Integer.parseInt(inst.getPriority()) + 128;
+ DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
+ DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class);
+ int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code());
+ int nextAddress = deviceService.queryAddressBydeviceCode(inst.getNext_point_code());
+
+ byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode));
+ byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode));
+ byte typehigh = (byte) IntToHexHigh(type);
+ byte typelow = (byte) IntToHexLow(type);
+ byte qhdhigh = (byte) IntToHexHigh(startAddress);
+ byte qhdlow = (byte) IntToHexLow(startAddress);
+ byte fhdhigh = (byte) IntToHexHigh(nextAddress);
+ byte fhdlow = (byte) IntToHexLow(nextAddress);
+ byte prioritylow = (byte) IntToHexLow(priority);
+
+ byte shhigh = (byte) IntToHexHigh(startHeight);
+ byte shlow = (byte) IntToHexLow(startHeight);
+
+ byte nhhigh = (byte) IntToHexHigh(nextHeight);
+ byte nhlow = (byte) IntToHexLow(nextHeight);
+
+ String str = "十进制下发:";
+ String str1 = "十六进制下发:";
+ str += "ikey:" + (Integer.parseInt(instcode));
+ str1 += "ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
+
+ str += "/type:" + (type);
+ str1 += "/type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF);
+
+ str += "/qhd:" + (startAddress);
+ str1 += "/qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF);
+ str += "/fhd:" + (nextAddress);
+ str1 += "/fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF);
+
+ str += "/priority:" + (priority);
+ str1 += "/priority:" + hexToString(prioritylow & 0xFF);
+
+ System.out.println(str);
+ System.out.println(str1);
+ byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
+ (byte) 0X00, (byte) 0X08,
+ (byte) 0X00, (byte) 0X16,
+ (byte) 0X00, (byte) 0X01,
+ (byte) 0X00, (byte) 0X71,
+ (byte) 0X00, (byte) 0X12,
+ (byte) 0X01, prioritylow,
+ (byte) 0X00, (byte) 0X01,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) ikeyhigh, (byte) ikeylow,
+ (byte) typehigh, (byte) typelow,
+ (byte) qhdhigh, (byte) qhdlow,
+ (byte) fhdhigh, (byte) fhdlow,
+ (byte) shhigh, (byte) shlow,
+ (byte) nhhigh, (byte) nhlow
+ };
+ log.info("下发AGV作业指令 --{}", str1);
+ log.info("下发AGV作业指令--{}", str);
+ log.info("下发agv指令数据--{}", Bytes2HexString(b));
+ OneNDCSocketConnectionAutoRun.write(b);
+ }
}
}
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/log/NDCAgvServiceImpl.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/log/NDCAgvServiceImpl.xml
new file mode 100644
index 000000000..8f4151a72
--- /dev/null
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/log/NDCAgvServiceImpl.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+ ${LOG_HOME}/一楼NDC系统/%d{yyyy-MM-dd}.%i.log
+
+ 15
+
+ 200MB
+
+ 2GB
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
+ ${log.charset}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
index f53004205..ab174d9ef 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
@@ -21,6 +21,7 @@ https://juejin.cn/post/6844903775631572999
+