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