From 98c62cb5d06996054110c9fb93025279ca002829 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 05 五月 2023 14:27:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/BarcodeThread.java |   43 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java
index d82420a..2bca652 100644
--- a/src/main/java/com/zy/core/thread/BarcodeThread.java
+++ b/src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -27,7 +27,7 @@
 public class BarcodeThread implements Runnable, ThreadHandler {
 
     private Slave slave;
-    private String barcode;
+    private String barcode = "";
     private Socket socket;
     private DataOutputStream dataOutputStream;
     private DataInputStream dataInputStream;
@@ -36,13 +36,36 @@
         this.slave = slave;
     }
 
+//    // PLC璇诲彇鏉$爜鏁版嵁澶勭悊鏂瑰紡, 1鍒�6鍙锋壂鐮佸櫒----------------------
+//    private StringBuffer barcodePlc = new StringBuffer();
+//
+//    public String getBarcodePlc() {
+//        return barcodePlc.toString();
+//    }
+//
+//    public void setBarcodePlc(String barcodePlc) {
+//        this.barcodePlc.delete(0, this.barcodePlc.length());
+//        this.barcodePlc.append(barcodePlc);
+//        if(!Cools.isEmpty(barcodePlc)) {
+//            log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcodePlc);
+//            JSONObject jsonObject = new JSONObject();
+//            jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
+//            jsonObject.put("barcode", barcodePlc);
+//            if (OutputQueue.BARCODE.size() >= 32) {
+//                OutputQueue.BARCODE.poll();
+//            }
+//            OutputQueue.BARCODE.offer(jsonObject);
+//        }
+//    }
+//    // PLC璇诲彇鏉$爜鏁版嵁澶勭悊鏂瑰紡------------------------------
+
     @Override
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         connect();
         while (true) {
             try {
-                byte[] read = read(8, 100);
+                byte[] read = read(50, 200);
                 if (null != read) {
                     String s = new String(read);
                     if (!Cools.isEmpty(s)) {
@@ -56,10 +79,14 @@
                         }
                         OutputQueue.BARCODE.offer(jsonObject);
                     }
+                }else{
+                    barcode = "";
                 }
-                Thread.sleep(100);
+                Thread.sleep(50);
             } catch (SocketTimeoutException ignore) {
+//                barcode="";
             } catch (Exception e) {
+                barcode="";
 //                e.printStackTrace();
             }
         }
@@ -114,10 +141,10 @@
     }
 
     public byte[] read(int bufferSize, int timeOut) throws IOException {
-//        if (socket == null) {
-//           connect();
-//        }
-        connect();
+        if (socket == null || !socket.isConnected() || socket.isClosed()) {
+            connect();
+        }
+//        connect();
         socket.setSoTimeout(timeOut);
         byte[] bytes = new byte[bufferSize];
         int len = dataInputStream.read(bytes);
@@ -125,6 +152,8 @@
         if (len > 0) {
             tempBytes = new byte[len];
             System.arraycopy(bytes, 0, tempBytes, 0, len);
+        } else {
+            connect();
         }
         return tempBytes;
     }

--
Gitblit v1.9.1