From 09fcc4ec56a1ce6c0fcb308348d8dd5e2c08d336 Mon Sep 17 00:00:00 2001 From: fyxc <fyxc@qq.com> Date: 星期四, 22 五月 2025 14:33:06 +0800 Subject: [PATCH] server commit files --- src/main/java/com/zy/core/thread/LiftThread.java | 591 ++++++---------------------------------------------------- 1 files changed, 69 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..23f189c 100644 --- a/src/main/java/com/zy/core/thread/LiftThread.java +++ b/src/main/java/com/zy/core/thread/LiftThread.java @@ -1,522 +1,69 @@ -//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.common.model.NavigateNode; +import com.zy.core.ThreadHandler; +import com.zy.core.enums.ForkLiftTaskModeType; +import com.zy.core.enums.LiftCommandModeType; +import com.zy.core.enums.LiftProtocolStatusType; +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 move(LiftCommand command);//鍗囬檷绉诲姩 + + CommandResponse palletInOut(LiftCommand command);//鎵樼洏鍑哄叆 + + CommandResponse lock(LiftCommand command);//閿佸畾鎻愬崌鏈� + + CommandResponse unlock(LiftCommand command);//瑙i攣鎻愬崌鏈� + + CommandResponse reset(LiftCommand command);//澶嶄綅 + + boolean isIdle();//鏄惁绌洪棽 + + boolean isDeviceIdle();//璁惧鏄惁绌洪棽 + + boolean isDeviceIdle(ExecuteSupport support);//璁惧鏄惁绌洪棽 + + boolean setProtocolStatus(LiftProtocolStatusType status);//璁剧疆宸ヤ綔鐘舵�� + + boolean setSyncTaskNo(Integer taskNo);//璁剧疆宸ヤ綔鍙� + + boolean isLock(ExecuteSupport support); + + int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type);//鐢熸垚纭欢璁惧宸ヤ綔鍙� + + String getLiftLocNo(int lev);//鑾峰彇鎻愬崌鏈轰綅缃� + + String getLiftStandByLocNo(int lev, boolean in);//鑾峰彇鎻愬崌鏈哄緟鏈轰綅 + + List<NavigateNode> getLiftStaNodes(int lev); + + Integer getLevToStaNo(int lev); + + //***************鑾峰彇鍛戒护***************** + List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//鎻愬崌鏈虹Щ鍔� + + List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//杞借溅绉诲姩 + + List<LiftCommand> getPalletInCommand(Integer taskNo, Integer sourceLev, Integer targetLev);//鎵樼洏鍏� + + List<LiftCommand> getPalletOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev);//鎵樼洏鍑� + + List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock);//閿佸畾/瑙i攣鎻愬崌鏈� + + List<LiftCommand> getShuttleSignalCommand(Integer taskNo, Boolean signal);//灏忚溅宸插埌浣�/宸查┒绂讳俊鍙� + +} -- Gitblit v1.9.1