From 7eab121b2462e5b83f144fe4f3be93db6128ca0f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 17 八月 2020 10:49:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/cache/OutputQueue.java        |   15 +++++++++++++++
 src/main/java/com/zy/asrs/controller/CrnController.java |   19 ++++++++++++++++---
 src/main/java/com/zy/core/model/command/CrnCommand.java |    2 ++
 src/main/java/com/zy/core/thread/CrnThread.java         |   12 ++++++++++++
 src/main/java/com/zy/core/thread/DevpThread.java        |    7 ++++---
 5 files changed, 49 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index bacf4b6..3be82ea 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -9,6 +9,7 @@
 import com.zy.asrs.domain.vo.CrnStateTableVo;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.CrnModeType;
 import com.zy.core.enums.SlaveType;
@@ -23,7 +24,6 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -137,8 +137,21 @@
     @PostMapping("/output/site")
     @ManagerAuth(memo = "鍫嗗灈鏈烘姤鏂囨棩蹇楄緭鍑�")
     public R crnOutput(){
-        String str = "\n" +new Date().toLocaleString() + "銆�2020-5-29 13:14:22銆戞壂鎻弍lcA 鐩爣绔�--273283723728327636432343234323422732837237283276364323432343234227328372372832763643234323432342";
-        return R.ok().add(str);
+        StringBuilder str = new StringBuilder();
+        String s;
+        int i = 0;
+        while( (s = OutputQueue.CRN.poll()) != null && i <=10) {
+            str.append("\n").append(s);
+            i++;
+        }
+//        str = new StringBuilder("\n" + new Date().toLocaleString() + "銆�2020-5-29 13:14:22銆戞壂鎻弍lcA 鐩爣绔�--273283723728327636432343234323422732837237283276364323432343234227328372372832763643234323432342");
+        return R.ok().add(str.toString());
+    }
+
+    public static void main(String[] args) {
+        for (int i =0; i<10; i++) {
+
+        }
     }
 
     /****************************************************************/
diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java
new file mode 100644
index 0000000..d4881e9
--- /dev/null
+++ b/src/main/java/com/zy/core/cache/OutputQueue.java
@@ -0,0 +1,15 @@
+package com.zy.core.cache;
+
+import java.util.concurrent.ArrayBlockingQueue;
+
+/**
+ * Created by vincent on 2020/8/17
+ */
+public class OutputQueue {
+
+    // 鍫嗗灈鏈鸿緭鍑烘棩蹇�
+    public static ArrayBlockingQueue<String> CRN = new ArrayBlockingQueue<>(32);
+    // 杈撻�佺嚎杈撳嚭鏃ュ織
+    public static ArrayBlockingQueue<String> DEVP = new ArrayBlockingQueue<>(32);
+
+}
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index dc97b19..6a6bbcc 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -1,5 +1,6 @@
 package com.zy.core.model.command;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.zy.core.enums.CrnTaskModeType;
 import lombok.Data;
 
@@ -32,6 +33,7 @@
      */
     private Short taskMode;
 
+    @JSONField(serialize = false)
     private CrnTaskModeType taskModeType;
 
     // 婧愪綅缃帓鍙�
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java
index fa3e72c..16ade31 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/CrnThread.java
@@ -5,8 +5,10 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
+import com.core.common.DateUtils;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
 import com.zy.core.enums.CrnTaskModeType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.CrnSlave;
@@ -15,6 +17,9 @@
 import com.zy.core.model.protocol.CrnProtocol;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
 
 /**
  * 鍫嗗灈鏈虹嚎绋�
@@ -27,6 +32,7 @@
     private SiemensS7Net siemensNet;
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
+
 
     public CrnThread(CrnSlave slave) {
         this.slave = slave;
@@ -90,8 +96,10 @@
         OperateResult connect = siemensNet.ConnectServer();
         if(connect.IsSuccess){
             result = true;
+            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.info("鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
         } 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());
         }
         siemensNet.ConnectClose();
@@ -104,6 +112,7 @@
     private void readStatus(){
         OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46);
         if (result.IsSuccess) {
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
             if (null == crnProtocol) {
                 crnProtocol = new CrnProtocol();
             }
@@ -128,6 +137,7 @@
             crnProtocol.setYDistance(siemensNet.getByteTransform().TransInt32(result.Content, 38));
             crnProtocol.setDuration(siemensNet.getByteTransform().TransInt32(result.Content, 42));
         } 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());
         }
     }
@@ -153,8 +163,10 @@
         array[8] = command.getDestinationPosZ();
         OperateResult result = siemensNet.Write("DB8.0", array);
         if (result.IsSuccess) {
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
             readStatus();
         } 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());
         }
     }
diff --git a/src/main/java/com/zy/core/thread/DevpThread.java b/src/main/java/com/zy/core/thread/DevpThread.java
index be6e10b..387fef4 100644
--- a/src/main/java/com/zy/core/thread/DevpThread.java
+++ b/src/main/java/com/zy/core/thread/DevpThread.java
@@ -140,12 +140,13 @@
         Slave slave = new Slave();
         slave.setIp("192.168.2.125");
         DevpThread devpThread = new DevpThread(slave);
+        devpThread.connect();
         devpThread.read();
         // 鍐�
         StaProtocol staProtocol = devpThread.getStation().get(1);
-        staProtocol.setWorkNo((short) 222);
-        staProtocol.setStaNo((short) 2);
-        staProtocol.setAutoing(false);
+        staProtocol.setWorkNo((short) 232);
+        staProtocol.setStaNo((short) 6);
+        staProtocol.setAutoing(true);
         staProtocol.setEmptyMk(true);
         staProtocol.setInEnable(true);
         devpThread.write(staProtocol);

--
Gitblit v1.9.1