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 | 581 +++++----------------------------------------------------
1 files changed, 59 insertions(+), 522 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 2854b0a..e2da9fc 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -1,522 +1,59 @@
-//package com.zy.core.thread;
-//
-//import HslCommunication.Core.Types.OperateResult;
-//import HslCommunication.Core.Types.OperateResultExOne;
-//import HslCommunication.Profinet.Siemens.SiemensPLCS;
-//import HslCommunication.Profinet.Siemens.SiemensS7Net;
-//import com.alibaba.fastjson.JSON;
-//import com.core.common.DateUtils;
-//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.entity.DeviceDataLog;
-//import com.zy.asrs.mapper.WrkMastMapper;
-//import com.zy.asrs.service.BasLiftOptService;
-//import com.zy.asrs.service.BasLiftService;
-//import com.zy.asrs.service.DeviceDataLogService;
-//import com.zy.asrs.utils.Utils;
-//import com.zy.common.utils.RedisUtil;
-//import com.zy.core.News;
-//import com.zy.core.ThreadHandler;
-//import com.zy.core.cache.MessageQueue;
-//import com.zy.core.cache.OutputQueue;
-//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.protocol.LiftStaProtocol;
-//import com.zy.core.model.protocol.LiftProtocol;
-//import com.zy.core.model.protocol.StaProtocol;
-//import lombok.Data;
-//import lombok.extern.slf4j.Slf4j;
-//
-//import java.text.MessageFormat;
-//import java.util.*;
-//
-///**
-// * 鎻愬崌鏈虹嚎绋�
-// */
-//@Data
-//@Slf4j
-//public class LiftThread implements Runnable, ThreadHandler {
-//
-// private SiemensS7Net siemensS7Net;
-// private LiftSlave slave;
-// private LiftProtocol liftProtocol;
-// private RedisUtil redisUtil;
-// private List<LiftStaProtocol> liftStaProtocols = new ArrayList<>();
-//
-// public LiftThread(LiftSlave slave,RedisUtil redisUtil) {
-// this.slave = slave;
-// this.redisUtil = redisUtil;
-//
-// //鍒濆鍖栫珯鐐�
-// for (LiftSlave.Sta sta : this.slave.getSta()) {
-// LiftStaProtocol liftStaProtocol = new LiftStaProtocol();
-// liftStaProtocol.setStaNo(sta.getStaNo());//绔欑偣鍙�
-// liftStaProtocol.setLev(sta.getLev());//绔欑偣妤煎眰
-// String locNo = Utils.getLocNo(this.slave.getStaRow(), this.slave.getStaBay(), sta.getLev());
-// liftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙�
-// liftStaProtocol.setLiftNo(sta.getLiftNo());//鎻愬崌鏈哄彿
-// liftStaProtocols.add(liftStaProtocol);
-// }
-//
-// }
-//
-// @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:
-// read();
-// break;
-// // 鍐欏叆鏁版嵁
-// case 2:
-// write((NyLiftCommand) task.getData());
-// break;
-// //鍒嗛厤浠诲姟
-// case 3:
-// assignWork((LiftAssignCommand) task.getData());
-// break;
-// case 4:
-// write2((HashMap<String, Object>) task.getData());
-// default:
-// break;
-// }
-// Thread.sleep(500);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
-// }
-//
-// @Override
-// public boolean connect() {
-// boolean result = false;
-// //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
-// siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
-// OperateResult connect = siemensS7Net.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());
-// }
-// siemensS7Net.ConnectClose();
-// //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
-// return result;
-// }
-//
-// @Override
-// public void close() {
-// siemensS7Net.ConnectClose();
-// }
-//
-// private void read() {
-// try {
-// readStatus();
-//
-// //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓篺alse
-// if (liftProtocol.getBusy()) {
-// liftProtocol.setPakMk(false);
-// }
-//
-// //鎻愬崌鏈哄浜庢湭杩愯銆佸氨缁�佹爣璁皌rue銆佹湁浠诲姟鍙�
-// if (!liftProtocol.getBusy()
-// && !liftProtocol.getPakMk()
-// && liftProtocol.getTaskNo() != 0) {
-// //杩樻湁鏈畬鎴愮殑鍛戒护
-// executeWork(liftProtocol.getTaskNo());
-// }
-// } 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()));
-// }
-// }
-//
-// private void readStatus() {
-// try {
-// //鑾峰彇鎻愬崌鏈烘暟鎹�
-// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB82.4.0", (short) 10);
-// if (result1.IsSuccess) {
-// if (null == liftProtocol) {
-// liftProtocol = new LiftProtocol();
-// liftProtocol.setLiftNo(slave.getId().shortValue());
-// }
-// //璇诲彇4.0-4.7鏁版嵁
-// boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result1.Content, 0, 1);
-// //璇诲彇5.0-5.7鏁版嵁
-// boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result1.Content, 1, 1);
-// //妯″紡
-// liftProtocol.setModel(status1[0]);
-// //蹇欓棽
-// liftProtocol.setBusy(!status1[1]);
-// //鍓嶈秴闄�
-// liftProtocol.setFrontOverrun(status1[4]);
-// //鍚庤秴闄�
-// liftProtocol.setBackOverrun(status1[5]);
-// //宸﹁秴闄�
-// liftProtocol.setLeftOverrun(status1[6]);
-// //鍙宠秴闄�
-// liftProtocol.setRightOverrun(status1[7]);
-// //瓒呴珮
-// liftProtocol.setOverHeight(status2[0]);
-// //瓒呴噸
-// liftProtocol.setOverWeight(status2[1]);
-// //鏈夋墭鐩�
-// liftProtocol.setHasTray(status2[5]);
-// //鏈夊皬杞�
-// liftProtocol.setHasCar(status2[6]);
-// //璁惧鏁呴殰
-// liftProtocol.setDeviceError(status2[7]);
-// //浠诲姟鍙�
-// liftProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
-// //鐩殑鍦板潃
-// liftProtocol.setDistAddress(siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
-// //宸插畬鎴愪换鍔″彿
-// liftProtocol.setCompleteTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
-// //褰撳墠妤煎眰
-// short lev = siemensS7Net.getByteTransform().TransInt16(result1.Content, 8);
-// if (lev >= 7 && lev <= 9) {
-// lev -= 2;
-// } else if (lev >= 12 && lev <= 14) {
-// lev -= 4;
-// }
-// liftProtocol.setLev(lev);
-//
-// //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
-// 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.setDeviceStatus(JSON.toJSONString(liftProtocol));
-// 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()));
-// }
-// }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()));
-// }
-// Thread.sleep(200);
-//
-// //鑾峰彇鎻愬崌鏈虹珯鐐规暟鎹�
-// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB82.14.0", (short) (10 * liftStaProtocols.size()));
-// if (result1.IsSuccess) {
-// for (int i = 0; i < slave.getSta().size(); i++) {
-// LiftStaProtocol liftStaProtocol = liftStaProtocols.get(i);
-// int i1 = 0 + (i * 10);
-// int i2 = 1 + (i * 10);
-// //璇诲彇x4.0-x4.7鏁版嵁
-// boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result2.Content, i1, 1);
-// //璇诲彇x5.0-x5.7鏁版嵁
-// boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result2.Content, i2, 1);
-// //妯″紡
-// liftStaProtocol.setModel(status1[0]);
-// //蹇欓棽
-// liftStaProtocol.setBusy(!status1[1]);
-// //鏈夋墭鐩�
-// liftStaProtocol.setHasTray(status1[2]);
-// //鏈夊皬杞�
-// liftStaProtocol.setHasCar(status2[6]);
-// //璁惧鏁呴殰
-// liftStaProtocol.setDeviceError(status2[7]);
-// //浠诲姟鍙�
-// liftStaProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt16(result2.Content, 2));
-// }
-// }
-//
-// Thread.sleep(100);
-// //鑾峰彇鎻愬崌鏈哄紓甯告暟鎹�
-// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB82.22.0", (short) 2);
-// if (result3.IsSuccess) {
-// liftProtocol.setErrorCode(siemensS7Net.getByteTransform().TransInt16(result3.Content, 0));//閿欒鐮�
-// }
-//
-// if (System.currentTimeMillis() - liftProtocol.getDeviceDataLog() > 1000 * 5) {
-// //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
-// //淇濆瓨鏁版嵁璁板綍
-// DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
-// DeviceDataLog deviceDataLog = new DeviceDataLog();
-// deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result1.Content));
-// deviceDataLog.setWcsData(JSON.toJSONString(liftProtocol));
-// deviceDataLog.setType("lift");
-// deviceDataLog.setDeviceNo(liftProtocol.getLiftNo().intValue());
-// deviceDataLog.setCreateTime(new Date());
-// deviceDataLogService.insert(deviceDataLog);
-//
-// //鏇存柊閲囬泦鏃堕棿
-// liftProtocol.setDeviceDataLog(System.currentTimeMillis());
-// }
-//
-// } 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()));
-// }
-// }
-//
-// private boolean write(NyLiftCommand command){
-// if (null == command) {
-// News.error("鎻愬崌鏈哄啓鍏ュ懡浠や负绌�");
-// return false;
-// }
-//
-// command.setLiftNo(slave.getId().shortValue());
-// short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
-//
-// OperateResult result = siemensS7Net.Write("DB83.0", array);
-// if (result != null && result.IsSuccess) {
-// liftProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-// 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;
-// }
-// }
-//
-// //鑾峰彇鍛戒护鎶ユ枃
-// private short[] getCommandArr(NyLiftCommand command) {
-// // 寮�濮嬩换鍔�
-// short[] array = new short[4];
-// if (command.getTaskModel() != null) {
-// //浠诲姟绫诲瀷
-// array[0] = command.getTaskModel();
-// }
-// if (command.getSourceSta() != null) {
-// //婧愮珯鍙扮紪鍙�
-// array[1] = command.getSourceSta();
-// }
-// if (command.getTargetSta() != null) {
-// //鐩爣绔欏彴缂栧彿
-// array[2] = command.getTargetSta();
-// }
-// if (command.getTaskNo() != null) {
-// //浠诲姟鍙�
-// array[3] = command.getTaskNo();
-// }
-// return array;
-// }
-//
-// //鍒嗛厤浠诲姟
-// private void assignWork(LiftAssignCommand assignCommand) {
-// LiftRedisCommand redisCommand = new LiftRedisCommand();
-// redisCommand.setLiftNo(assignCommand.getLiftNo());//鎻愬崌鏈哄彿
-// redisCommand.setWrkNo(assignCommand.getTaskNo());//宸ヤ綔鍙�
-// redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭
-// redisCommand.setAssignCommand(assignCommand);//鍛戒护
-// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-// redisUtil.set(RedisKeyType.LIFT.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand));
-// liftProtocol.setAssignCommand(assignCommand);
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);
-// //鎵ц涓嬪彂浠诲姟
-// executeWork(assignCommand.getTaskNo());
-// }
-//
-// //鎵ц浠诲姟
-// private boolean executeWork(Short wrkNo) {
-// //璇诲彇redis鏁版嵁
-// if (wrkNo == null) {
-// return false;
-// }
-//
-// if (wrkNo >= 20000 && wrkNo <= 30000) {
-// //鎻愬崌鏈鸿澶囧伐浣滃彿锛岄渶瑕佹煡璇㈠搴斾换鍔″彿
-// BasLiftOptService basLiftOptService = SpringUtils.getBean(BasLiftOptService.class);
-// BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString(), liftProtocol.getLiftNo().intValue());
-// if (basLiftOpt != null) {
-// wrkNo = basLiftOpt.getWrkNo().shortValue();
-// }
-// }
-//
-// Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo);
-// if (o == null) {
-// return false;
-// }
-// LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class);
-// List<NyLiftCommand> commands = redisCommand.getAssignCommand().getCommands();
-// //褰撳墠姝ュ簭
-// int commandStep = redisCommand.getCommandStep();
-// //鎬绘搴�
-// int size = commands.size();
-//
-// if (!redisCommand.getLiftNo().equals(liftProtocol.getLiftNo())) {
-// return false;
-// }
-//
-// if (commandStep != 0) {
-// //鍒ゆ柇涓婁竴鏉℃寚浠ゆ槸鍚﹀仛瀹�
-// NyLiftCommand lastCommand = commands.get(commandStep - 1);//涓婁竴鏉℃寚浠�
-// if (!liftProtocol.getBusy() && liftProtocol.getTaskNo().equals(lastCommand.getTaskNo())) {
-// //鎻愬崌鏈虹┖闂层�佷笖鎻愬崌鏈哄伐浣滃彿涓庝笂涓�鏉℃寚浠ゅ伐浣滃彿鐩稿悓
-// lastCommand.setComplete(true);//鏍囪浠诲姟瀹屾垚
-// }
-//
-// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-// redisUtil.set(RedisKeyType.LIFT.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
-//
-// if (!lastCommand.getComplete()) {
-// //涓婁竴鏉′换鍔℃湭瀹屾垚锛岀姝笅鍙戝懡浠�
-// return false;
-// }
-//
-// //鍒ゆ柇鏄惁涓烘渶鍚庝竴鏉″懡浠や笖鍛戒护鎵ц瀹屾垚锛屾姏鍑虹瓑寰呯‘璁ょ姸鎬�
-// NyLiftCommand endCommand = commands.get(commands.size() - 1);
-// if (endCommand.getComplete()) {
-// //宸叉墽琛屽畬鎴�
-// //鍒犻櫎redis
-// redisUtil.del(RedisKeyType.LIFT.key + redisCommand.getWrkNo());
-//
-// //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.WAITING);
-// News.info("鎻愬崌鏈轰换鍔℃墽琛屼笅鍙戝畬鎴愭墽琛岀粨鏉燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", redisCommand.getLiftNo(), JSON.toJSON(redisCommand));
-// }
-//
-// }
-//
-// //鍙栧嚭鍛戒护
-// NyLiftCommand command = commands.get(commandStep);
-//
-// //涓嬪彂鍛戒护
-// if (!write(command)) {
-// News.error("鎻愬崌鏈哄懡浠や笅鍙戝け璐ワ紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
-// return false;
-// }
-//
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);
-// News.info("鎻愬崌鏈哄懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
-//
-// //灏嗘爣璁扮疆涓簍rue(闃叉閲嶅彂)
-// liftProtocol.setPakMk(true);
-//
-// //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
-// BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
-// if (liftOptService != null) {
-// short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
-// BasLiftOpt opt = new BasLiftOpt(
-// redisCommand.getWrkNo().intValue(),
-// liftProtocol.getLiftNo().intValue(),
-// new Date(),
-// null,
-// null,
-// null,
-// JSON.toJSONString(command),
-// JSON.toJSONString(liftProtocol)
-// );
-// opt.setDeviceWrk(command.getTaskNo().toString());//璁惧宸ヤ綔鍙�
-// liftOptService.insert(opt);
-// }
-//
-// //鏇存柊redis鏁版嵁
-// //姝ュ簭澧炲姞
-// commandStep++;
-// redisCommand.setCommandStep(commandStep);
-// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-// redisUtil.set(RedisKeyType.LIFT.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
-//
-//// //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚
-//// if (commandStep < size - 1) {
-//// //鏇存柊redis鏁版嵁
-//// //姝ュ簭澧炲姞
-//// commandStep++;
-//// redisCommand.setCommandStep(commandStep);
-//// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-//// redisUtil.set(RedisKeyType.LIFT.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
-//// }else {
-//// //宸叉墽琛屽畬鎴�
-//// //鍒犻櫎redis
-//// redisUtil.del(RedisKeyType.LIFT.key + redisCommand.getWrkNo());
-////
-//// //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
-//// liftProtocol.setProtocolStatus(LiftProtocolStatusType.WAITING);
-//// News.info("鎻愬崌鏈轰换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
-//// }
-//
-// if (redisCommand.getAssignCommand().getTaskMode() == NyLiftTaskModelType.RESET.id.shortValue()) {
-// //澶嶄綅鍛戒护
-// //宸ヤ綔鍙锋竻闆�
-// liftProtocol.setTaskNo((short) 0);
-// //浠ょ墝娓呴浂
-// liftProtocol.setToken(0);
-// //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-// //浠诲姟鎸囦护娓呴浂
-// liftProtocol.setAssignCommand(null);
-// }
-//
-// 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());
-// }
-// }
-//
-// /******************************************************************************************/
-// /**************************************** 娴嬭瘯涓撶敤 *****************************************/
-// /*****************************************************************************************/
-// 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);
-//
-// }
-//
-//}
+package com.zy.core.thread;
+
+import com.zy.common.ExecuteSupport;
+import com.zy.core.ThreadHandler;
+import com.zy.core.enums.*;
+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.LiftStaProtocol;
+
+import java.util.List;
+
+public interface LiftThread extends ThreadHandler {
+
+ LiftProtocol getStatus();//鑾峰彇鎻愬崌鏈虹姸鎬�
+
+ LiftProtocol getStatus(boolean clone);//鑾峰彇鎻愬崌鏈虹姸鎬�
+
+ List<LiftStaProtocol> getLiftStaProtocols();
+
+ CommandResponse pickAndPut(LiftCommand command);//鍙栨斁璐ф寚浠�
+
+ CommandResponse shuttleSwitch(LiftCommand command);//灏忚溅鎹㈠眰
+
+ CommandResponse move(LiftCommand command);//灏忚溅绉诲姩
+
+ CommandResponse switchIOMode(LiftCommand command);//鍒囨崲鍑哄叆搴撴ā寮�
+
+ CommandResponse reset();//澶嶄綅
+
+ boolean isIdle();//鏄惁绌洪棽
+
+ boolean isDeviceIdle();//璁惧鏄惁绌洪棽
+
+ boolean isDeviceIdle(ExecuteSupport support);//璁惧鏄惁绌洪棽
+
+ boolean setProtocolStatus(LiftProtocolStatusType status);//璁剧疆宸ヤ綔鐘舵��
+
+ boolean setSyncTaskNo(Integer taskNo);//璁剧疆宸ヤ綔鍙�
+
+ int generateDeviceTaskNo(int taskNo, LiftTaskModeType type);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
+
+ String getCurrentLocNo();
+
+ String getRealtimeOriginData();//鑾峰彇瀹炴椂鍘熷鏁版嵁
+
+ //***************鑾峰彇鍛戒护*****************
+
+ LiftCommand getPickAndPutCommand(Integer taskNo, Integer pick, Integer put);//鍙栨斁璐ф寚浠�
+
+ LiftCommand getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put);//灏忚溅鎹㈠眰
+
+ LiftCommand getMoveCommand(Integer taskNo, Integer pick, Integer put);//鎻愬崌鏈虹Щ鍔�
+
+ LiftCommand getSwitchIOCommand(Integer taskNo, LiftIoModeType mode);
+
+ LiftCommand getResetCommand(Integer taskNo);
+
+}
--
Gitblit v1.9.1