From b7e0039880d9f6e71230dbf9c13538de4f8135b8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 10 六月 2023 19:23:26 +0800
Subject: [PATCH] 输送线条码读取bug、出入库模式信号、链条控制信号
---
src/main/java/com/zy/core/thread/LiftThread.java | 150 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 99 insertions(+), 51 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index fc9225e..0b39f99 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -26,10 +26,7 @@
import com.zy.core.enums.*;
import com.zy.core.model.LiftSlave;
import com.zy.core.model.Task;
-import com.zy.core.model.command.LiftAssignCommand;
-import com.zy.core.model.command.LiftCommand;
-import com.zy.core.model.command.ShuttleAssignCommand;
-import com.zy.core.model.command.ShuttleCommand;
+import com.zy.core.model.command.*;
import com.zy.core.model.protocol.LiftProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -37,7 +34,6 @@
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
/**
@@ -185,10 +181,9 @@
&& !liftProtocol.getRunning()
&& liftProtocol.getReady()
&& liftProtocol.getPakMk()
- && liftProtocol.getTaskNo() != 0
- && liftProtocol.getAssignCommand() != null) {
+ && liftProtocol.getTaskNo() != 0) {
//杩樻湁鏈畬鎴愮殑鍛戒护
- executeWork(liftProtocol.getAssignCommand());
+ executeWork(liftProtocol.getTaskNo());
}
//灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
@@ -290,9 +285,6 @@
//鍒嗛厤浠诲姟
private void assignWork(LiftAssignCommand assignCommand) {
- //灏嗘map瀛樺叆redis涓�
- HashMap<String, Object> map = new HashMap<>();
-
//鎵嬪姩妯″紡鎸囦护
if (!assignCommand.getAuto()) {
LiftCommand command = new LiftCommand();
@@ -305,22 +297,19 @@
liftProtocol.setTaskNo(assignCommand.getTaskNo());
switch (assignCommand.getTaskMode()) {
case 1://涓婂崌涓�灞�
- command.setRun((short) 1);//鍗囬檷
- command.setDistPosition(++lev);
+ command = getLiftUpDownCommand(++lev);//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
break;
case 2://涓嬮檷涓�灞�
- command.setRun((short) 1);//涓嬮檷
- command.setDistPosition(--lev);
+ command = getLiftUpDownCommand(--lev);//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
break;
case 3://鏈夎揣姝h浆
- command.setRun((short) 6);
+ command = getLiftTurnCommand(1);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
break;
case 4://鏈夎揣鍙嶈浆
- command.setRun((short) 3);
+ command = getLiftTurnCommand(2);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
break;
case 5://澶嶄綅
- command.setRun((short) 0);
- command.setLiftLock(false);
+ command = getResetCommand();//鑾峰彇澶嶄綅鍛戒护
break;
default:
}
@@ -328,42 +317,40 @@
assignCommand.setCommands(commands);
}
- //鎻愬崌鏈哄彿
- map.put("lift_no", assignCommand.getLiftNo());
- //宸ヤ綔鍙�
- map.put("wrk_no", assignCommand.getTaskNo());
- //鍛戒护鎵ц姝ュ簭
- map.put("commandStep", 0);
- //鍛戒护
- map.put("assignCommand", assignCommand);
+ LiftRedisCommand redisCommand = new LiftRedisCommand();
+ redisCommand.setLiftNo(assignCommand.getLiftNo());//鎻愬崌鏈哄彿
+ redisCommand.setWrkNo(assignCommand.getTaskNo());//宸ヤ綔鍙�
+ redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭
+ redisCommand.setAssignCommand(assignCommand);//鍛戒护
//浠诲姟鏁版嵁淇濆瓨鍒皉edis
- redisUtil.set("lift_wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(map));
+ redisUtil.set("lift_wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand));
liftProtocol.setAssignCommand(assignCommand);
liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);
//鎵ц涓嬪彂浠诲姟
- executeWork(assignCommand);
+ executeWork(assignCommand.getTaskNo());
}
//鎵ц浠诲姟
- private boolean executeWork(LiftAssignCommand assignCommand) {
+ private boolean executeWork(Short wrkNo) {
//璇诲彇redis鏁版嵁
- if (assignCommand == null) {
+ if (wrkNo == null) {
return false;
}
//灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
liftProtocol.setPakMk(false);
- Object o = redisUtil.get("lift_wrk_no_" + assignCommand.getTaskNo());
+ Object o = redisUtil.get("lift_wrk_no_" + wrkNo);
if (o == null) {
return false;
}
- HashMap map = JSON.parseObject(o.toString(), HashMap.class);
- List<LiftCommand> commands = assignCommand.getCommands();
+ LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class);
+ List<LiftCommand> commands = redisCommand.getAssignCommand().getCommands();
//褰撳墠姝ュ簭
- int commandStep = Integer.parseInt(map.get("commandStep").toString());
+ int commandStep = redisCommand.getCommandStep();
//鎬绘搴�
int size = commands.size();
+ LiftAssignCommand assignCommand = redisCommand.getAssignCommand();
//鍙栧嚭鍛戒护
LiftCommand command = commands.get(commandStep);
@@ -379,17 +366,17 @@
//鏇存柊redis鏁版嵁
//姝ュ簭澧炲姞
commandStep++;
- map.put("commandStep", commandStep);
+ redisCommand.setCommandStep(commandStep);
//浠诲姟鏁版嵁淇濆瓨鍒皉edis
- redisUtil.set("lift_wrk_no_" + map.get("wrk_no").toString(), JSON.toJSONString(map));
+ redisUtil.set("lift_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
}else {
//宸叉墽琛屽畬鎴�
//淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
if (liftOptService != null) {
BasLiftOpt opt = new BasLiftOpt(
- assignCommand.getTaskNo().intValue(),
- assignCommand.getLiftNo().intValue(),
+ redisCommand.getWrkNo().intValue(),
+ redisCommand.getLiftNo().intValue(),
new Date(),
null,
null,
@@ -399,7 +386,7 @@
liftOptService.insert(opt);
}
//鍒犻櫎redis
- redisUtil.del("lift_wrk_no_" + map.get("wrk_no").toString());
+ redisUtil.del("lift_wrk_no_" + redisCommand.getWrkNo());
if (assignCommand.getAuto()) {
//瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
@@ -407,21 +394,17 @@
News.info("鎻愬崌鏈轰换鍔℃墽琛屽畬鎴愮瓑寰呯‘璁や腑锛屾彁鍗囨満鍙�={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
}else {
//鎵嬪姩妯″紡涓嶆姏鍑虹瓑寰呯姸鎬�
- if (assignCommand.getTaskMode() == 5) {
- liftProtocol.setTaskNo((short) 0);
- liftProtocol.setShuttleNo((short) 0);
- liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
- liftProtocol.setPakMk(true);
- }
+ liftProtocol.setTaskNo((short) 0);
+ liftProtocol.setShuttleNo((short) 0);
+ liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
+ liftProtocol.setPakMk(true);
+ liftProtocol.setSecurityMk(false);
News.info("鎻愬崌鏈烘墜鍔ㄤ换鍔℃墽琛屽畬鎴愶紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
}
//涓嬪彂涓�鏉℃彁鍗囨満瑙i攣鍛戒护
- LiftCommand liftCommand = new LiftCommand();
- liftCommand.setRun((short) 0);
- liftCommand.setLiftNo(command.getLiftNo());
- liftCommand.setLiftLock(false);
- if (write(liftCommand)) {
+ LiftCommand unlockCommand = getUnlockCommand(command.getLiftNo());
+ if (write(unlockCommand)) {
News.info("鎻愬崌鏈虹姸鎬佸凡瑙i攣锛屾彁鍗囨満鍙�={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
}
@@ -432,6 +415,71 @@
}
/**
+ * 鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
+ */
+ public LiftCommand getUnlockCommand(Short liftNo) {
+ LiftCommand command = new LiftCommand();
+ command.setRun((short) 0);
+ command.setLiftNo(liftNo);
+ command.setLiftLock(false);
+ return command;
+ }
+
+ /**
+ * 鑾峰彇澶嶄綅鍛戒护
+ */
+ public LiftCommand getResetCommand() {
+ LiftCommand command = new LiftCommand();
+ command.setRun((short) 0);
+ command.setLiftLock(false);
+ return command;
+ }
+
+ /**
+ * 鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
+ */
+ public LiftCommand getLiftUpDownCommand(Short lev) {
+ LiftCommand command = new LiftCommand();
+ command.setRun((short) 1);//鍗囬檷
+ command.setDistPosition(lev);
+ return command;
+ }
+
+ /**
+ * 鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
+ */
+ public LiftCommand getLiftUpDownCommand(Short liftNo, Short taskNo, Short lev) {
+ LiftCommand command = new LiftCommand();
+ command.setRun((short) 1);//鍗囬檷
+ command.setLiftNo(liftNo);//鎻愬崌鏈哄彿
+ command.setTaskNo(taskNo);//浠诲姟鍙�
+ command.setDistPosition(lev);//鐩爣妤煎眰1灞�
+ command.setLiftLock(true);//閿佸畾鎻愬崌鏈�
+ return command;
+ }
+
+ /**
+ * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞�
+ */
+ public LiftCommand getLiftTurnCommand(Integer direction) {
+ LiftCommand command = new LiftCommand();
+ command.setRun(direction == 1 ? (short) 6 : (short) 3);
+ return command;
+ }
+
+ /**
+ * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞�
+ */
+ public LiftCommand getLiftTurnCommand(Short liftNo, Short taskNo, Integer direction) {
+ LiftCommand command = new LiftCommand();
+ command.setRun(direction == 1 ? (short) 6 : (short) 3);
+ command.setLiftNo(liftNo);//鎻愬崌鏈哄彿
+ command.setTaskNo(taskNo);//浠诲姟鍙�
+ command.setLiftLock(true);//閿佸畾鎻愬崌鏈�
+ return command;
+ }
+
+ /**
* 鍒濆鍖栨彁鍗囨満
*/
private void initLift() {
--
Gitblit v1.9.1