From 996ecb891a2a33ddfffd8032ec7c784377470537 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 14 十月 2023 15:30:09 +0800
Subject: [PATCH] #小车增加提升机进出状态(给牛眼使用)
---
src/main/java/com/zy/core/thread/LiftThread.java | 32 ++++++++++++++++
src/main/java/com/zy/core/thread/NyShuttleThread.java | 63 +++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 4a7d3c0..71a7099 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -32,6 +32,7 @@
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
/**
@@ -87,6 +88,8 @@
case 3:
assignWork((LiftAssignCommand) task.getData());
break;
+ case 4:
+ write2((HashMap<String, Object>) task.getData());
default:
break;
}
@@ -418,6 +421,35 @@
return true;
}
+ //缁欐彁鍗囨満鍐欏叆杩涘嚭鐘舵��
+ private void write2(HashMap<String,Object> data) {
+// //鍑�
+// status = true;
+// //杩�
+// status = false;
+ int lev = Integer.parseInt(data.get("lev").toString());
+ boolean status = Boolean.parseBoolean(data.get("status").toString());
+
+ ArrayList<String> list = new ArrayList<String>(){{
+ add("83.8.0");
+ add("83.8.1");
+ add("83.8.2");
+ add("83.8.3");
+ add("83.8.4");
+ add("83.8.5");
+ add("83.8.6");
+ add("83.8.7");
+ add("83.9.0");
+ add("83.9.1");
+ }};
+ OperateResult result = siemensS7Net.Write("DB" + list.get(lev - 1), status);
+ if (result != null && result.IsSuccess) {
+ News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}]", slave.getId());
+ } else {
+ News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ }
+ }
+
/******************************************************************************************/
/**************************************** 娴嬭瘯涓撶敤 *****************************************/
/*****************************************************************************************/
diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index 9a8b6d1..9ad6f5a 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -35,6 +35,7 @@
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
/**
@@ -385,6 +386,8 @@
if (commands.size() == 0) {
return false;
}
+
+ checkIOSta(commands, commandStep);//妫�娴嬪皬杞︽槸鍚﹁繘鍑烘彁鍗囨満杈撻�佺珯
NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo()));
@@ -803,4 +806,64 @@
}
}
+ //妫�娴嬪皬杞︽槸鍚﹁繘鍑烘彁鍗囨満杈撻�佺珯
+ public void checkIOSta(List<NyShuttleHttpCommand> commands, int commandStep) {
+ if (commandStep != 0) {
+ NyShuttleHttpCommand lastCommand = commands.get(commandStep - 1);//涓婁竴姝ュ懡浠�
+ if (lastCommand.getRequest().getBody().get("requestType").equals("move")) {
+ //妫�娴嬭捣鐐规槸鍚︿负鎻愬崌鏈鸿緭閫佺珯鐐�
+ NyShuttleProtocol.NyShuttlePointClass start = JSON.parseObject(lastCommand.getRequest().getBody().get("start").toString(), NyShuttleProtocol.NyShuttlePointClass.class);
+ int[] startPoint = NavigatePositionConvert.NyXyzToWCSXyz(start.getX(), start.getY(), start.getZ());
+ if (startPoint[0] == 13 && (startPoint[1] == 22 || startPoint[1] == 38 || startPoint[1] == 57)) {
+ //杈撻�佺珯鐐逛綅缃�
+
+ int liftNo;
+ if (startPoint[1] == 22) {
+ liftNo = 1;
+ } else if (startPoint[1] == 38) {
+ liftNo = 2;
+ } else {
+ liftNo = 3;
+ }
+
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("lev", startPoint[2]);
+ data.put("status", false);//鍑鸿緭閫佺珯
+
+ //涓嬪彂浠诲姟
+ MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data));
+ }
+ }
+ }
+
+ if (commands.size() == commandStep) {
+ return;
+ }
+ NyShuttleHttpCommand command = commands.get(commandStep);//褰撳墠鍛戒护
+ if (command.getRequest().getBody().get("requestType").equals("move")) {
+ NyShuttleProtocol.NyShuttlePointClass target = JSON.parseObject(command.getRequest().getBody().get("target").toString(), NyShuttleProtocol.NyShuttlePointClass.class);
+ int[] targetPoint = NavigatePositionConvert.NyXyzToWCSXyz(target.getX(), target.getY(), target.getZ());
+ //妫�娴嬬洰鏍囦綅缃槸鍚︿负鎻愬崌鏈鸿緭閫佺珯鐐�
+ if (targetPoint[0] == 13 && (targetPoint[1] == 22 || targetPoint[1] == 38 || targetPoint[1] == 57)) {
+ //杈撻�佺珯鐐逛綅缃�
+
+ int liftNo;
+ if (targetPoint[1] == 22) {
+ liftNo = 1;
+ } else if (targetPoint[1] == 38) {
+ liftNo = 2;
+ } else {
+ liftNo = 3;
+ }
+
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("lev", targetPoint[2]);
+ data.put("status", true);//杩涜緭閫佺珯
+
+ //涓嬪彂浠诲姟
+ MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data));
+ }
+ }
+ }
+
}
--
Gitblit v1.9.1