From fb02f04ec63f00398e343e4b43eda00cce75c56e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 17 八月 2020 14:18:18 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java | 28 ++------------ src/main/java/com/zy/core/cache/MessageQueue.java | 20 ++++++++++ src/main/java/com/zy/asrs/controller/CrnController.java | 28 ++++++++++--- src/main/java/com/zy/core/thread/CrnThread.java | 18 ++++---- src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 6 +- 5 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index 3be82ea..f4914b9 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSON; import com.core.annotations.ManagerAuth; import com.core.common.R; import com.zy.asrs.domain.enums.CrnStatusType; @@ -9,11 +10,14 @@ import com.zy.asrs.domain.vo.CrnStateTableVo; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WrkMastService; +import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.SlaveType; import com.zy.core.model.CrnSlave; +import com.zy.core.model.Task; +import com.zy.core.model.command.CrnCommand; import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.CrnThread; @@ -25,7 +29,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; /** @@ -46,12 +49,25 @@ @PostMapping("/command/ongoing") public R ongoingCommand(){ List<CommandLogVo> list = new ArrayList<>(); - for (int i=1;i<=4;i++){ + for (CrnSlave crn : slaveProperties.getCrn()) { CommandLogVo vo = new CommandLogVo(); - vo.setCrnNo(String.valueOf(i)); - vo.setStatus(1); - vo.setCommand(UUID.randomUUID().toString()); + vo.setCrnNo(crn.getId()); // 鍫嗗灈鏈哄彿 + vo.setStatus(0); // 鐘舵�� list.add(vo); + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + if (crnThread == null) { + continue; + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + vo.setStatus(1); // 鐘舵�� + Task task = MessageQueue.peek(SlaveType.Crn, crn.getId()); + if (task != null) { + vo.setCommand(JSON.toJSONString((CrnCommand)task.getData())); + } } return R.ok().add(list); } @@ -104,12 +120,10 @@ // 鑾峰彇鍫嗗灈鏈轰俊鎭� CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); if (crnThread == null) { - log.error("{}鍙峰爢鍨涙満杩炴帴澶辫触", crn.getId()); continue; } CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { - log.error("{}鍙峰爢鍨涙満杩炴帴澶辫触", crn.getId()); continue; } // 琛ㄦ牸琛� diff --git a/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java b/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java index 9673fc4..37fa9c0 100644 --- a/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java +++ b/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java @@ -1,12 +1,15 @@ package com.zy.asrs.domain.vo; +import lombok.Data; + /** * Created by vincent on 2020-06-02 */ +@Data public class CommandLogVo { // 鍫嗗灈鏈虹紪鍙� - private String crnNo; + private Integer crnNo; // 鐘舵�� private Integer status; @@ -14,27 +17,4 @@ // 鍛戒护鎶ユ枃 private String command; - public String getCrnNo() { - return crnNo; - } - - public void setCrnNo(String crnNo) { - this.crnNo = crnNo; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public String getCommand() { - return command; - } - - public void setCommand(String command) { - this.command = command; - } } diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java index deb09e8..f2c92ad 100644 --- a/src/main/java/com/zy/core/cache/MessageQueue.java +++ b/src/main/java/com/zy/core/cache/MessageQueue.java @@ -92,4 +92,24 @@ } } + /** + * 鍙栧嚭鍏冪礌锛屽苟涓嶅垹闄�. + */ + public static Task peek(SlaveType type, Integer id) { + switch (type) { + case Crn: + return CRN_EXCHANGE.get(id).peek(); + case Devp: + return DEVP_EXCHANGE.get(id).peek(); + case Barcode: + return BARCODE_EXCHANGE.get(id).peek(); + case Led: + return LED_EXCHANGE.get(id).peek(); + case Scale: + return SCALE_EXCHANGE.get(id).peek(); + default: + return null; + } + } + } diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java index 5383a34..13c51ed 100644 --- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java @@ -129,17 +129,17 @@ /** * X琛岃蛋绾块�熷害m/min */ - private Short xSpeed; + private Float xSpeed; /** * Y琛岃蛋绾块�熷害m/min */ - private Short ySpeed; + private Float ySpeed; /** * Z琛岃蛋绾块�熷害m/min */ - private Short zSpeed; + private Float zSpeed; /** * 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java index d6b9786..c16717e 100644 --- a/src/main/java/com/zy/core/thread/CrnThread.java +++ b/src/main/java/com/zy/core/thread/CrnThread.java @@ -67,7 +67,7 @@ command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� command.setTaskNo((short) 0); // 宸ヤ綔鍙� command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 command.setSourcePosX((short)0); // 婧愬簱浣嶆帓 command.setSourcePosY((short)0); // 婧愬簱浣嶅垪 command.setSourcePosZ((short)0); // 婧愬簱浣嶅眰 @@ -110,7 +110,7 @@ * 璇诲彇鐘舵�� */ private void readStatus(){ - OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46); + OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 56); if (result.IsSuccess) { OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); if (null == crnProtocol) { @@ -131,13 +131,13 @@ crnProtocol.setError1(siemensNet.getByteTransform().TransBool(result.Content, 22, 2)); crnProtocol.setError2(siemensNet.getByteTransform().TransBool(result.Content, 24, 2)); crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 26)); - crnProtocol.setXSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); - crnProtocol.setYSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 30)); - crnProtocol.setZSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32)); - crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 34)); - crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 38)); - crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 42)); - crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 46)); + crnProtocol.setXSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 28)); + crnProtocol.setYSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 32)); + crnProtocol.setZSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 36)); + crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 40)); + crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44)); + crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48)); + crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52)); } else { OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); -- Gitblit v1.9.1