From 7635dc25bd2a4d565df496b2d96354639966768d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 25 九月 2025 11:09:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/LiftThread.java | 583 ++-------------------------------------------------------
1 files changed, 27 insertions(+), 556 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index c482b12..e2da9fc 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -1,588 +1,59 @@
package com.zy.core.thread;
-import HslCommunication.Core.Transfer.DataFormat;
-import HslCommunication.Core.Types.OperateResult;
-import HslCommunication.Core.Types.OperateResultExOne;
-import HslCommunication.ModBus.ModbusTcpNet;
-import com.alibaba.fastjson.JSON;
-import com.core.common.DateUtils;
-import com.core.common.RadixTools;
-import com.core.common.SpringUtils;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasLift;
-import com.zy.asrs.entity.BasLiftOpt;
-import com.zy.asrs.service.BasLiftOptService;
-import com.zy.asrs.service.BasLiftService;
-import com.zy.common.utils.CommonUtils;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.DevpThread;
-import com.zy.core.News;
+import com.zy.common.ExecuteSupport;
import com.zy.core.ThreadHandler;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
-import com.zy.core.model.LiftSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.*;
+import com.zy.core.model.CommandResponse;
+import com.zy.core.model.command.LiftCommand;
import com.zy.core.model.protocol.LiftProtocol;
-import com.zy.core.model.protocol.StaProtocol;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
+import com.zy.core.model.protocol.LiftStaProtocol;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
-/**
- * 鎻愬崌鏈虹嚎绋�
- */
-@Data
-@Slf4j
-public class LiftThread implements Runnable, ThreadHandler {
+public interface LiftThread extends ThreadHandler {
- private ModbusTcpNet modbusTcpNet;
- private LiftSlave slave;
- private LiftProtocol liftProtocol;
- private RedisUtil redisUtil;
+ LiftProtocol getStatus();//鑾峰彇鎻愬崌鏈虹姸鎬�
- public LiftThread(LiftSlave slave,RedisUtil redisUtil) {
- this.slave = slave;
- this.redisUtil = redisUtil;
- }
+ LiftProtocol getStatus(boolean clone);//鑾峰彇鎻愬崌鏈虹姸鎬�
- @Override
- public void run() {
- this.connect();
- while (true) {
- try {
- int step = 1;
- Task task = MessageQueue.poll(SlaveType.Lift, slave.getId());
- if (task != null) {
- step = task.getStep();
- }
- switch (step) {
- // 璇绘暟鎹�
- case 1:
- readStatus();
- break;
- // 鍐欏叆鏁版嵁
- case 2:
- write((LiftCommand) task.getData());
- break;
- //鍒嗛厤浠诲姟
- case 3:
- assignWork((LiftAssignCommand) task.getData());
- break;
- default:
- break;
- }
- Thread.sleep(500);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
+ List<LiftStaProtocol> getLiftStaProtocols();
- @Override
- public boolean connect() {
- boolean result = false;
- //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
- modbusTcpNet = new ModbusTcpNet(slave.getIp(), slave.getPort(), (byte) 0x02);
- // 褰撲綘闇�瑕佹寚瀹氭牸寮忕殑鏁版嵁瑙f瀽鏃讹紝灏遍渶瑕佽缃笅闈㈢殑杩欎釜淇℃伅
- modbusTcpNet.setDataFormat(DataFormat.ABCD);
- OperateResult connect = modbusTcpNet.ConnectServer();
- if(connect.IsSuccess){
- result = true;
- OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戞彁鍗囨満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.info("鎻愬崌鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
- } else {
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("鎻愬崌鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
- }
- modbusTcpNet.ConnectClose();
- //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
- return result;
- }
+ CommandResponse pickAndPut(LiftCommand command);//鍙栨斁璐ф寚浠�
- @Override
- public void close() {
- modbusTcpNet.ConnectClose();
- }
+ CommandResponse shuttleSwitch(LiftCommand command);//灏忚溅鎹㈠眰
- private void readStatus() {
- try {
- OperateResultExOne<byte[]> result = modbusTcpNet.Read("41117", (short) 50);
- if (result.IsSuccess) {
- if (null == liftProtocol) {
- liftProtocol = new LiftProtocol();
- liftProtocol.setLiftNo(slave.getId().shortValue());
- }
+ CommandResponse move(LiftCommand command);//灏忚溅绉诲姩
- //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
- //鑾峰彇鏁版嵁
- byte[] content = result.Content;
- //鎻愬崌鏈洪攣瀹�
- liftProtocol.setLiftLock(CommonUtils.shortToBoolean(modbusTcpNet.getByteTransform().TransInt16(content, 0)));
- //浣嶇疆鍒拌揪鍙嶉
- liftProtocol.setPositionArrivalFeedback(modbusTcpNet.getByteTransform().TransInt16(content,2));
-
- byte by = modbusTcpNet.getByteTransform().TransByte(content, 5);
- int[] datas = CommonUtils.byteToBits(by);
- //鍑嗗灏辩华
- liftProtocol.setReady(CommonUtils.intToBoolean(datas[0]));
- //杩愯涓�
- liftProtocol.setRunning(CommonUtils.intToBoolean(datas[1]));
- //鑱旀満/鍗曟満
- liftProtocol.setMode(CommonUtils.intToBoolean(datas[2]));
- //杈撻�佺嚎鍓嶇鍏夌數鏈夎揣
- liftProtocol.setLineFrontHasStock(CommonUtils.intToBoolean(datas[3]));
- //杈撻�佺嚎姝h浆鍙嶉
- liftProtocol.setForwardRotationFeedback(CommonUtils.intToBoolean(datas[4]));
- //杈撻�佺嚎鍙嶈浆鍙嶉
- liftProtocol.setReverseFeedback(CommonUtils.intToBoolean(datas[5]));
- //杈撻�佺嚎鐢垫満杩囪浇
- liftProtocol.setMotorOverload(CommonUtils.intToBoolean(datas[6]));
- //杈撻�佺嚎鏈鍏夌數鏈夎揣
- liftProtocol.setLineEndHasStock(CommonUtils.intToBoolean(datas[7]));
- //杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�
- liftProtocol.setInConveyLineCardTrayAlarm(CommonUtils.intToBoolean(datas[8]));
- //鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�
- liftProtocol.setOutConveyLineCardTrayAlarm(CommonUtils.intToBoolean(datas[9]));
- //骞冲彴浣嶇疆鍋忓樊鎶ヨ
- liftProtocol.setPlatPositionDeviationAlarm(CommonUtils.intToBoolean(datas[10]));
- //骞冲彴鎵煩鍋忓樊鎶ヨ
- liftProtocol.setPlatTorqueDeviationAlarm(CommonUtils.intToBoolean(datas[11]));
- //骞冲彴鍥涘悜杞︽娴�
- liftProtocol.setPlatShuttleCheck(CommonUtils.intToBoolean(datas[12]));
+ CommandResponse switchIOMode(LiftCommand command);//鍒囨崲鍑哄叆搴撴ā寮�
+ CommandResponse reset();//澶嶄綅
- //鏈氨缁姸鎬�
- liftProtocol.setNotReady(modbusTcpNet.getByteTransform().TransInt16(content,6));
- //浼烘湇1閿欒
- liftProtocol.setServoError1(modbusTcpNet.getByteTransform().TransInt16(content,8));
- //浼烘湇2閿欒
- liftProtocol.setServoError2(modbusTcpNet.getByteTransform().TransInt16(content,10));
- //浼烘湇3閿欒
- liftProtocol.setServoError3(modbusTcpNet.getByteTransform().TransInt16(content,12));
- //浼烘湇4閿欒
- liftProtocol.setServoError4(modbusTcpNet.getByteTransform().TransInt16(content,14));
- //鎻愬崌鏈哄疄闄呴�熷害鍙嶉
- liftProtocol.setLiftActualSpeed(modbusTcpNet.getByteTransform().TransInt16(content,16));
+ boolean isIdle();//鏄惁绌洪棽
- ///璇诲彇鎻愬崌鏈虹姸鎬�-end
+ boolean isDeviceIdle();//璁惧鏄惁绌洪棽
- //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
- if (liftProtocol.getRunning()) {
- liftProtocol.setPakMk(true);
- }
+ boolean isDeviceIdle(ExecuteSupport support);//璁惧鏄惁绌洪棽
- //鎻愬崌鏈哄浜庢湭杩愯銆佸氨缁�佹爣璁皌rue銆佹湁浠诲姟鍙�
- if (!liftProtocol.getRunning()
- && liftProtocol.getPakMk()
- && liftProtocol.getTaskNo() != 0) {
- //杩樻湁鏈畬鎴愮殑鍛戒护
- executeWork(liftProtocol.getTaskNo());
- }
+ boolean setProtocolStatus(LiftProtocolStatusType status);//璁剧疆宸ヤ綔鐘舵��
- //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
- BasLiftService liftService = SpringUtils.getBean(BasLiftService.class);
- BasLift basLift = liftService.selectById(liftProtocol.getLiftNo());
- if (basLift == null) {
- basLift = new BasLift();
- //鎻愬崌鏈哄彿
- basLift.setLiftNo(slave.getId());
- liftService.insert(basLift);
- }
- basLift.setStatus(liftProtocol.getProtocolStatus());
- basLift.setWrkNo(liftProtocol.getTaskNo().intValue());
- basLift.setUpdateTime(new Date());
- basLift.setPakMk(liftProtocol.getPakMk());
- basLift.setLiftLock(liftProtocol.getLiftLock());
- basLift.setPositionArrivalFeedback(liftProtocol.getPositionArrivalFeedback().intValue());
- basLift.setReady(liftProtocol.getReady());
- basLift.setRunning(liftProtocol.getRunning());
- basLift.setMode(liftProtocol.getMode());
- basLift.setLineFrontHasStock(liftProtocol.getLineFrontHasStock());
- basLift.setForwardRotationFeedback(liftProtocol.getForwardRotationFeedback());
- basLift.setReverseFeedback(liftProtocol.getReverseFeedback());
- basLift.setMotorOverload(liftProtocol.getMotorOverload());
- basLift.setLineEndHasStock(liftProtocol.getLineEndHasStock());
- basLift.setInConveyLineCardTrayAlarm(liftProtocol.getInConveyLineCardTrayAlarm());
- basLift.setOutConveyLineCardTrayAlarm(liftProtocol.getOutConveyLineCardTrayAlarm());
- basLift.setPlatPositionDeviationAlarm(liftProtocol.getPlatPositionDeviationAlarm());
- basLift.setPlatTorqueDeviationAlarm(liftProtocol.getPlatTorqueDeviationAlarm());
- basLift.setPlatShuttleCheck(liftProtocol.getPlatShuttleCheck());
- basLift.setNotReady(liftProtocol.getNotReady().intValue());
- basLift.setServoError1(liftProtocol.getServoError1().intValue());
- basLift.setServoError2(liftProtocol.getServoError2().intValue());
- basLift.setServoError3(liftProtocol.getServoError3().intValue());
- basLift.setServoError4(liftProtocol.getServoError4().intValue());
- basLift.setLiftActualSpeed(liftProtocol.getLiftActualSpeed().intValue());
- if (liftService.updateById(basLift)) {
- OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-// log.info(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
- }
+ boolean setSyncTaskNo(Integer taskNo);//璁剧疆宸ヤ綔鍙�
- }else {
- OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆憑1}鎻愬崌鏈簆lc鐘舵�佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
- throw new CoolException(MessageFormat.format( "鎻愬崌鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
- }
- } catch (Exception e) {
- OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- initLift();
- }
- }
+ int generateDeviceTaskNo(int taskNo, LiftTaskModeType type);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
- private boolean write(LiftCommand command){
- if (null == command) {
- News.error("鎻愬崌鏈哄啓鍏ュ懡浠や负绌�");
- return false;
- }
+ String getCurrentLocNo();
- command.setLiftNo(slave.getId().shortValue());
- // 寮�濮嬩换鍔�
- short[] array = new short[30];
- //寮�濮嬭繍琛�
- array[0] = command.getRun();
- if (command.getDistPosition() != null) {
- //鐩爣浣嶇疆
- array[1] = command.getDistPosition();
- }
- if (command.getSpeed() != null) {
- //杩愯閫熷害
- array[2] = command.getSpeed();
- }
- if (command.getHeight2() != null) {
- //浜屽眰楂樺害璁惧畾
- array[3] = command.getHeight2();
- }
- if (command.getHeight3() != null) {
- //涓夊眰楂樺害璁惧畾
- array[4] = command.getHeight3();
- }
- if (command.getHeight4() != null) {
- //鍥涘眰楂樺害璁惧畾
- array[5] = command.getHeight4();
- }
- if (command.getHeight5() != null) {
- //鍥涘眰楂樺害璁惧畾
- array[6] = command.getHeight5();
- }
- if (command.getLiftLockShortValue() != null) {
- //鎻愬崌鏈洪攣瀹�
- array[29] = command.getLiftLockShortValue();
- }
+ String getRealtimeOriginData();//鑾峰彇瀹炴椂鍘熷鏁版嵁
- if (array[2] == 0) {
- // 寮�濮嬩换鍔�
- short[] tmp = new short[2];
- tmp[0] = array[0];
- tmp[1] = array[1];
- array = tmp;
- }
+ //***************鑾峰彇鍛戒护*****************
- try {
- Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
+ LiftCommand getPickAndPutCommand(Integer taskNo, Integer pick, Integer put);//鍙栨斁璐ф寚浠�
- OperateResult result = modbusTcpNet.Write("41088", array);;
- if (result != null && result.IsSuccess) {
- News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
- OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
- return true;
- } else {
- OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- return false;
- }
- }
+ LiftCommand getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put);//灏忚溅鎹㈠眰
- //鍒嗛厤浠诲姟
- private void assignWork(LiftAssignCommand assignCommand) {
- //鎵嬪姩妯″紡鎸囦护
- if (!assignCommand.getAuto()) {
- LiftCommand command = new LiftCommand();
- //鎻愬崌鏈哄綋鍓嶆ゼ灞�
- Short lev = liftProtocol.getLev();
- List<LiftCommand> commands = assignCommand.getCommands();
- if (commands == null) {
- commands = new ArrayList<LiftCommand>();
- }
- liftProtocol.setTaskNo(assignCommand.getTaskNo());
- switch (assignCommand.getTaskMode()) {
- case 1://绉诲姩鎻愬崌鏈�
- command = getLiftUpDownCommand(assignCommand.getLev());//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
- break;
- case 3://鏃犺揣姝h浆
- command = getLiftTurnCommand(3);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
- break;
- case 4://鏃犺揣鍙嶈浆
- command = getLiftTurnCommand(4);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
- break;
- case 5://鏈夎揣姝h浆
- command = getLiftTurnCommand(1);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
- break;
- case 6://鏈夎揣鍙嶈浆
- command = getLiftTurnCommand(2);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
- break;
- case 7://閾炬潯鍋滄
- command = getLiftTurnCommand(5);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠�
- break;
- case 0://澶嶄綅
- command = getResetCommand();//鑾峰彇澶嶄綅鍛戒护
- break;
- default:
- }
- commands.add(command);
- assignCommand.setCommands(commands);
- }
+ LiftCommand getMoveCommand(Integer taskNo, Integer pick, Integer put);//鎻愬崌鏈虹Щ鍔�
- 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(redisCommand));
- liftProtocol.setAssignCommand(assignCommand);
- liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);
- //鎵ц涓嬪彂浠诲姟
- executeWork(assignCommand.getTaskNo());
- }
+ LiftCommand getSwitchIOCommand(Integer taskNo, LiftIoModeType mode);
- //鎵ц浠诲姟
- private boolean executeWork(Short wrkNo) {
- //璇诲彇redis鏁版嵁
- if (wrkNo == null) {
- return false;
- }
-
- //灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
- liftProtocol.setPakMk(false);
-
- Object o = redisUtil.get("lift_wrk_no_" + wrkNo);
- if (o == null) {
- return false;
- }
- LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class);
- List<LiftCommand> commands = redisCommand.getAssignCommand().getCommands();
- //褰撳墠姝ュ簭
- int commandStep = redisCommand.getCommandStep();
- //鎬绘搴�
- int size = commands.size();
- LiftAssignCommand assignCommand = redisCommand.getAssignCommand();
-
- //鍙栧嚭鍛戒护
- LiftCommand command = commands.get(commandStep);
- if (command.getOperaStaNo() != null && command.getDevpId() != null) {
- //绔欑偣鍜岃緭閫佺嚎ID涓嶄负null锛岄渶瑕佷笅鍙戠珯鐐规寚浠よ皟搴︽寚瀹氱珯鐐硅繘琛岄摼鏉¤浆鍔�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, command.getDevpId());
- StaProtocol staProtocol = devpThread.getStation().get(command.getOperaStaNo().intValue());
- if (!staProtocol.isLiftArrival()) {//閾炬潯杞姩鏉′欢锛岄渶瑕佹湁鎻愬崌鏈哄埌浣嶄俊鍙�
- liftProtocol.setPakMk(true);
- return false;
- }
- staProtocol.setWorkNo(wrkNo);//璁剧疆浠诲姟鍙�
- if (command.getStaNo() != null) {
- staProtocol.setStaNo(command.getStaNo());//璁剧疆鐩爣绔�
- }
-
- if (command.getRotationDire() != null) {
- staProtocol.setRotationDire(command.getRotationDire());//绔欑偣閾炬潯杞姩淇″彿
- }
- Integer devpId = command.getDevpId();
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devpId, new Task(3, staProtocol));//涓嬪彂鍛戒护浣胯緭閫佺嚎閾炬潯杩愯浆
- }
-
- //涓嬪彂鍛戒护
- if (!write(command)) {
- News.error("鎻愬崌鏈哄懡浠や笅鍙戝け璐ワ紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
- return false;
- }else {
- News.info("鎻愬崌鏈哄懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
- liftProtocol.setWrkTime(new Date());//鏇存柊宸ヤ綔鏃堕棿
-
- //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
- BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
- if (liftOptService != null) {
- BasLiftOpt opt = new BasLiftOpt(
- redisCommand.getWrkNo().intValue(),
- redisCommand.getLiftNo().intValue(),
- new Date(),
- null,
- null,
- null,
- JSON.toJSONString(command)
- );
- liftOptService.insert(opt);
- }
-
- //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚
- if (commandStep < size - 1) {
- //鏇存柊redis鏁版嵁
- //姝ュ簭澧炲姞
- commandStep++;
- redisCommand.setCommandStep(commandStep);
- //浠诲姟鏁版嵁淇濆瓨鍒皉edis
- redisUtil.set("lift_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
- }else {
- //宸叉墽琛屽畬鎴�
- //鍒犻櫎redis
- redisUtil.del("lift_wrk_no_" + redisCommand.getWrkNo());
-
- //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
- liftProtocol.setProtocolStatus(LiftProtocolStatusType.WAITING);
- News.info("鎻愬崌鏈轰换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
- }
- }
-
- return true;
- }
-
- /**
- * 鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
- */
- 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) 5);
- command.setLiftLock(false);
- return command;
- }
-
- /**
- * 鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
- */
- public LiftCommand getLiftUpDownCommand(Integer lev) {
- LiftCommand command = new LiftCommand();
- command.setRun((short) 1);//鍗囬檷
- Short position = LiftLevType.getRealLev(lev);//鑾峰彇鎻愬崌鏈哄疄闄呮ゼ灞傛暟鍊�
- command.setDistPosition(position);
-// command.setSpeed((short) 200);
-// command.setHeight2((short) 180);
-// command.setHeight3((short) 1645);
-// command.setHeight4((short) (2 * 1645));
-// command.setHeight5((short) (3 * 1645));
- return command;
- }
-
- /**
- * 鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠�
- */
- public LiftCommand getLiftUpDownCommand(Short liftNo, Short taskNo, Integer lev) {
- LiftCommand command = new LiftCommand();
- Short position = LiftLevType.getRealLev(lev);//鑾峰彇鎻愬崌鏈哄疄闄呮ゼ灞傛暟鍊�
- command.setRun((short) 1);//鍗囬檷
- command.setLiftNo(liftNo);//鎻愬崌鏈哄彿
- command.setTaskNo(taskNo);//浠诲姟鍙�
- command.setDistPosition(position);//鐩爣妤煎眰
-// command.setSpeed((short) 200);
-// command.setHeight2((short) 180);
-// command.setHeight3((short) 1645);
-// command.setHeight4((short) 3290);
-// command.setHeight5((short) 4945);
- return command;
- }
-
- /**
- * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞紝3=>鏃犺揣姝h浆锛�4=>鏃犺揣鍙嶈浆
- */
- public LiftCommand getLiftTurnCommand(Integer direction) {
- LiftCommand command = new LiftCommand();
- Short run = 0;
- switch (direction) {
- case 1:
- run = 6;//鏈夎揣姝h浆
- break;
- case 2:
- run = 3;//鏈夎揣鍙嶈浆
- break;
- case 3:
- run = 2;//鏃犺揣姝h浆
- break;
- case 4:
- run = 7;//鏃犺揣鍙嶈浆
- break;
- case 5:
- run = 4;//閾炬潯鍋滄
- }
- command.setRun(run);
- return command;
- }
-
- /**
- * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞�
- */
- public LiftCommand getLiftTurnCommand(Short liftNo, Short taskNo, Integer direction) {
- LiftCommand command = new LiftCommand();
- Short run = 0;
- switch (direction) {
- case 1:
- run = 6;//鏈夎揣姝h浆
- break;
- case 2:
- run = 3;//鏈夎揣鍙嶈浆
- break;
- case 3:
- run = 2;//鏃犺揣姝h浆
- break;
- case 4:
- run = 7;//鏃犺揣鍙嶈浆
- break;
- case 5:
- run = 4;//閾炬潯鍋滄
- }
- command.setRun(run);
- command.setLiftNo(liftNo);//鎻愬崌鏈哄彿
- command.setTaskNo(taskNo);//浠诲姟鍙�
- return command;
- }
-
- /**
- * 鍒濆鍖栨彁鍗囨満
- */
- private void initLift() {
- if (null == liftProtocol) {
- liftProtocol = new LiftProtocol();
- }
- }
-
- /******************************************************************************************/
- /**************************************** 娴嬭瘯涓撶敤 *****************************************/
- /*****************************************************************************************/
- public static void main(String[] args) throws InterruptedException {
- LiftSlave slave = new LiftSlave();
- slave.setId(1);
- slave.setIp("192.168.4.24");
- slave.setPort(502);
-// LiftThread thread = new LiftThread(slave,);
-// thread.connect();
-// thread.readStatus();
-//
-// LiftCommand command = new LiftCommand();
-// command.setRun((short) 1);
-// command.setDistPosition((short) 12);
-// command.setSpeed((short) 300);
-// command.setHeight2((short) 100);
-// command.setHeight3((short) 200);
-// command.setHeight4((short) 303);
-// command.setLiftLock(true);
-// thread.write(command);
-
- }
+ LiftCommand getResetCommand(Integer taskNo);
}
--
Gitblit v1.9.1