From d5449236ef0b3adafb3e4cc872f50479efa0ce7b Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 11 三月 2025 16:10:29 +0800
Subject: [PATCH] 配置信息

---
 src/main/java/com/zy/core/thread/LedThread.java |  399 ++++++++++++++++++++++++++------------------------------
 1 files changed, 184 insertions(+), 215 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index cdc583a..fcc9970 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -1,12 +1,14 @@
 package com.zy.core.thread;
 
-import com.alibaba.fastjson.JSON;
-import com.core.common.Cools;
-import com.zy.common.entity.Parameter;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.CommandInfo;
+import com.zy.asrs.service.CommandInfoService;
+import com.zy.asrs.service.DeviceErrorService;
 import com.zy.common.model.MatDto;
 import com.zy.core.Slave;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.MessageQueue;
+import com.zy.core.enums.CommandStatusType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.LedCommand;
@@ -34,11 +36,11 @@
 @Slf4j
 public class LedThread implements Runnable, ThreadHandler {
 
-    private Slave slave;
-    private Bx5GScreenClient screen;
     ProgramBxFile pf;
     TextCaptionBxArea area;
     DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
+    private Slave slave;
+    private Bx5GScreenClient screen;
     private Set<Integer> workNos = new HashSet<>();
     private boolean ledMk = false;
     private boolean resetStatus = false;    // 澶嶄綅鐘舵��
@@ -54,169 +56,18 @@
         }
     }
 
-    @Override
-    @SuppressWarnings({"InfiniteLoopStatement", "unchecked"})
-    public void run() {
-        connect();
-        close();
-        while (true) {
-            try {
-                Task task = MessageQueue.poll(SlaveType.Led, slave.getId());
-                if (task != null) {
-                    switch (task.getStep()) {
-                        // 鍐欐暟鎹�
-                        case 1:
-                            write((List<LedCommand>)task.getData());
-                            break;
-                        // 澶嶄綅
-                        case 2:
-                            reset();
-                            break;
-                        default:
-                            break;
-                    }
-                }
-
-                Thread.sleep(400);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    private void write(List<LedCommand> list) throws Bx5GException {
-        if (!connect()) {
-            return;
-        }
-        pf = new ProgramBxFile( 0, screen.getProfile());
-        pf.setFrameShow(false);
-        // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight
-        area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile());
-        // 鍒涘缓涓�涓暟鎹〉
-        TextBxPage page = new TextBxPage();
-        for (LedCommand command : list) {
-            page.newLine(command.getTitle() +"锛�"+command.getWorkNo()+")");
-            page.newLine("婧愬簱浣嶏細"+command.getSourceLocNo());
-            page.newLine("鐩爣绔欙細"+command.getStaNo());
-            if (!command.isEmptyMk()) {
-                for (MatDto matDto : command.getMatDtos()) {
-                    //鍘绘帀灏忔暟鐐�
-                    String strQty = matDto.getCount().toString();
-                    int idx = strQty.lastIndexOf(".");
-                    if(idx >= 0){
-                        strQty.substring(0,idx);
-                    }
-                    page.newLine(matDto.getMaknx() + "[鏁伴噺" + strQty +"]");
-//                    page.newLine(matDto.getMaknx() + "銆愭暟閲�" + matDto.getCount() +"銆�");
-                }
-            }
-            page.newLine("\n");
-        }
-
-        // 璁剧疆瀛椾綋
-        page.setFont(new Font("瀹嬩綋",Font.PLAIN,12));
-        // 璁剧疆鏂囨湰棰滆壊
-        page.setForeground(Color.red);
-        // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
-        page.setDisplayStyle(styles[6]);
-        area.clearPages();
-        area.addPage(page);
-        pf.addArea(area);
-        if (pf.validate() != null) {
-            log.info("pf out of range");
-        } else {
-            // 鏇存柊鑺傜洰
-            screen.writeProgram(pf);
-//            resetStatus = false;
-        }
-        close();
-    }
-
-    private void reset() throws Bx5GException {
-        if (!connect()) {
-            return;
-        }
-//        if (resetStatus) {
-//            return;
-//        }
-        pf = new ProgramBxFile( 0, screen.getProfile());
-        pf.setFrameShow(false);
-        // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight
-        area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile());
-        // 鍒涘缓涓�涓暟鎹〉
-        TextBxPage page = new TextBxPage();
-
-//        List<String> list = null;
-//        try {
-//            String ledDefaultMsg = Parameter.get().getLedDefaultMsg();
-//            list = JSON.parseArray(ledDefaultMsg, String.class);
-//        } catch (Exception ignore) {
-//        }
-//        if (!Cools.isEmpty(list)) {
-//            for (String str : list) {
-//                page.newLine(str);
-//            }
-//        } else {
-//            page.newLine("鑷姩鍖栫珛浣撲粨搴�");
-//            page.newLine("瑗挎牸杩堣偂浠芥湁闄愬叕鍙�");
-//        }
-        page.newLine("");
-
-        // 璁剧疆瀛椾綋
-        page.setFont(new Font("瀹嬩綋",Font.PLAIN,13));
-        // 璁剧疆鏂囨湰棰滆壊
-        page.setForeground(Color.red);
-        // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
-        page.setDisplayStyle(styles[6]);
-        area.clearPages();
-        area.addPage(page);
-        pf.addArea(area);
-        // 鏇存柊鑺傜洰
-        if (pf.validate() != null) {
-            log.info("pf out of range");
-        } else {
-            // 鏇存柊鑺傜洰
-            screen.writeProgram(pf);
-//            resetStatus = true;
-        }
-        close();
-    }
-
-    @Override
-    public boolean connect() {
-        boolean connRes = false;
-        try {
-            connRes = screen.connect(slave.getIp(),slave.getPort());
-            screen.turnOn();
-        } catch (Exception ignore) {
-        }
-        if (connRes) {
-            log.info("led杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-        } else {
-            log.error("led杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-        }
-        return connRes;
-    }
-
-    @Override
-    public void close() {
-        screen.disconnect();
-    }
-
-
-
     public static void main(String[] args) throws Exception {
         String strQty = "1234";
         int index = strQty.lastIndexOf(".");
-        if(index>=0) {
-            strQty=strQty.substring(0, index);
+        if (index >= 0) {
+            strQty = strQty.substring(0, index);
         }
-        System.out.println("2==>>"+strQty);
+        System.out.println("2==>>" + strQty);
 
         Bx5GEnv.initial(3000);
         Bx5GScreenClient screen = new Bx5GScreenClient("my");
         DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
-        if (!screen.connect("192.168.10.101",5005)) {
+        if (!screen.connect("192.168.10.101", 5005)) {
             System.err.println("杩炴帴澶辫触锛侊紒锛侊紒");
             return;
         }
@@ -226,10 +77,10 @@
         while (true) {
             Thread.sleep(5000L);
 
-            ProgramBxFile pf = new ProgramBxFile( 0, screen.getProfile());
+            ProgramBxFile pf = new ProgramBxFile(0, screen.getProfile());
             pf.setFrameShow(false);
             // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eigth
-            TextCaptionBxArea area = new TextCaptionBxArea(  0,0,192,96,screen.getProfile());
+            TextCaptionBxArea area = new TextCaptionBxArea(0, 0, 192, 96, screen.getProfile());
 
             // 鍒涘缓涓�涓暟鎹〉
             // 绗竴琛屾暟鎹�
@@ -237,14 +88,14 @@
             page.newLine("婧愬簱浣嶏細0100204");
             page.newLine("鐩爣绔欙細1000");
             // 璁剧疆瀛椾綋
-            page.setFont( new Font("瀹嬩綋",Font.PLAIN,15));
+            page.setFont(new Font("瀹嬩綋", Font.PLAIN, 15));
             // 璁剧疆鏂囨湰棰滆壊
             page.setForeground(Color.red);
             // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
             page.setDisplayStyle(styles[6]);
             area.clearPages();
             area.addPage(page);
-            pf.addArea( area );
+            pf.addArea(area);
 
             // 鏇存柊鑺傜洰
             // 鏇存柊鑺傜洰
@@ -261,37 +112,6 @@
 //        screen.disconnect();
     }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
     public static void main1(String[] args) throws Exception {
         Bx5GEnv.initial(3000);
         // 鍒涘缓screen瀵硅薄锛岀敤浜庡鎺у埗鍣ㄨ繘琛岃闂紝瀹㈡埛绔ā寮�
@@ -300,7 +120,7 @@
         //        Bx5GScreenRS screen = new Bx5GScreenRS("MyScreen");
 
         // 鍦ㄥ鎺у埗鍣ㄤ氦浜掍箣鍓嶏紝闇�瑕佸厛涓庢帶鍒跺櫒寤虹珛杩炴帴
-        boolean conn = screen.connect("192.168.10.61",5005);
+        boolean conn = screen.connect("192.168.10.61", 5005);
         System.out.println(conn);
         // 涓庢帶鍒跺櫒浜や簰瀹屾垚鍚庯紝闇�鏂紑涓庢帶鍒跺櫒涔嬮棿鐨勮繛鎺�
 //        screen.disconnect();
@@ -322,10 +142,9 @@
 //        // 瑙i櫎閿佸畾灞忓箷褰撳墠鐢婚潰
 //        screen.unlock();
 
-        Bx5GScreen.Result <ReturnControllerStatus> result1 =
+        Bx5GScreen.Result<ReturnControllerStatus> result1 =
                 screen.checkControllerStatus();
-        if (result1.isOK())
-        {
+        if (result1.isOK()) {
             ReturnControllerStatus status = result1.reply;
             System.out.println(status.getBrightness());
             System.out.println(status.getRtcDay());
@@ -338,7 +157,7 @@
         // 浠ヤ笅鏄潤鎬佸尯閮ㄥ垎 Demo
 
         // 鍒涘缓鑺傜洰鏂囦欢
-        ProgramBxFile pf = new ProgramBxFile( 0,screen.getProfile() );
+        ProgramBxFile pf = new ProgramBxFile(0, screen.getProfile());
 // 鏄惁鏄剧ず鑺傜洰杈规
         pf.setFrameShow(true);
 // 鑺傜洰杈规鐨勭Щ鍔ㄩ�熷害
@@ -350,21 +169,21 @@
 // 鍒涘缓涓�涓枃鏈尯
         // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eigth
         // 娉ㄦ剰鍖哄煙鍧愭爣鍜屽搴﹂珮搴︼紝涓嶈瓒婄晫
-        TextCaptionBxArea area = new TextCaptionBxArea( 0,0,160,64,screen.getProfile() );
+        TextCaptionBxArea area = new TextCaptionBxArea(0, 0, 160, 64, screen.getProfile());
 
         // 鍒涘缓涓�涓暟鎹〉
         // 绗竴琛屾暟鎹�
         TextBxPage page = new TextBxPage("鍏ュ簱");
         // 绗簩琛屾暟鎹�
-        page.newLine( "鐗╂枡锛�" );
+        page.newLine("鐗╂枡锛�");
         page.newLine("鎺ユ敹鍣� RX18 XH 6V 锛堟暟閲忥細2锛�");
         page.newLine("涓帶 BM钃濈墮 鑻辨枃 6V 锛堟暟閲忥細1锛�");
         page.newLine("绾挎潫 S2588-1-XX 鏃犲疄鐗╋紙鏁伴噺锛�5锛�");
         page.newLine("鐩爣搴撲綅锛�0100204");
         // 璁剧疆瀛椾綋
-        page.setFont( new Font("瀹嬩綋",Font.PLAIN,12) );
+        page.setFont(new Font("瀹嬩綋", Font.PLAIN, 12));
         // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
-        page.setDisplayStyle( styles[2] );
+        page.setDisplayStyle(styles[2]);
 
         // 鏁版嵁椤靛彲浠ユ槸鍥剧墖
 //        ImageFileBxPage iPage = new ImageFileBxPage( "E;a/001.bmp" );
@@ -373,22 +192,14 @@
 //        TextFileBxPage tPage  = new TextFileBxPage("E:a/001.txt");
 
         // 灏嗗墠闈㈢殑page娣诲姞鍒癮rea涓� area涓彲浠ユ坊鍔犲涓猵age 鍏朵腑page鍙互鏄瓧绗︿覆锛屽彲浠ユ槸txt鏂囦欢锛屽彲浠ユ槸鍥剧墖锛屼笉鍙互鏄〃鏍硷紝濡傛灉闇�瑕丩ed灞忎笂鏄剧ず琛ㄦ牸锛岃鍏堝皢琛ㄦ牸缁樺埗鎴愬浘鐗�
-        area.addPage( page );
+        area.addPage(page);
 //        area.addPage( iPage );
 //        area.addPage( tPage );
         // 灏哸rea娣诲姞鍒拌妭鐩腑  鑺傜洰涓彲浠ユ坊鍔犲涓猘rea
-        pf.addArea( area );
+        pf.addArea(area);
 
         // 鏇存柊鑺傜洰
-        screen.writeProgram( pf );
-
-
-
-
-
-
-
-
+        screen.writeProgram(pf);
 
 
         //
@@ -448,4 +259,162 @@
 
     }
 
+    @Override
+    @SuppressWarnings({"InfiniteLoopStatement", "unchecked"})
+    public void run() {
+        connect();
+        close();
+        while (true) {
+            try {
+                Task task = MessageQueue.poll(SlaveType.Led, slave.getId());
+                if (task != null) {
+                    switch (task.getStep()) {
+                        // 鍐欐暟鎹�
+                        case 1:
+                            write((List<LedCommand>) task.getData());
+                            break;
+                        // 澶嶄綅
+                        case 2:
+                            reset();
+                            break;
+                        default:
+                            break;
+                    }
+                }
+
+                Thread.sleep(400);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    private void write(List<LedCommand> list) throws Bx5GException {
+        if (!connect()) {
+            return;
+        }
+        pf = new ProgramBxFile(0, screen.getProfile());
+        pf.setFrameShow(false);
+        // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight
+        area = new TextCaptionBxArea(0, 0, 96, 48, screen.getProfile());
+        // 鍒涘缓涓�涓暟鎹〉
+        TextBxPage page = new TextBxPage();
+        for (LedCommand command : list) {
+            page.newLine(command.getTitle() + "锛�" + command.getWorkNo() + ")");
+            page.newLine("搴撲綅锛�" + (command.getIoType() < 100 ? command.getLocNo() : command.getSourceLocNo()));
+            page.newLine("鐩爣绔欙細" + command.getStaNo());
+            if (!command.isEmptyMk()) {
+                for (MatDto matDto : command.getMatDtos()) {
+                    //鍘绘帀灏忔暟鐐�
+                    String strQty = matDto.getCount().toString();
+                    int idx = strQty.lastIndexOf(".");
+                    if (idx >= 0) {
+                        strQty.substring(0, idx);
+                    }
+                    page.newLine(matDto.getMaknx() + "[鏁伴噺" + strQty + "]");
+//                    page.newLine(matDto.getMaknx() + "銆愭暟閲�" + matDto.getCount() +"銆�");
+                }
+            }
+            page.newLine("\n");
+
+            //鏇存柊鎸囦护鐘舵��
+            CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+            CommandInfo commandInfo = command.getCommandInfo();
+            commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);
+            commandInfoService.updateById(commandInfo);
+        }
+
+        // 璁剧疆瀛椾綋
+        page.setFont(new Font("瀹嬩綋", Font.PLAIN, 12));
+        // 璁剧疆鏂囨湰棰滆壊
+        page.setForeground(Color.red);
+        // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
+        page.setDisplayStyle(styles[6]);
+        area.clearPages();
+        area.addPage(page);
+        pf.addArea(area);
+        if (pf.validate() != null) {
+            log.info("pf out of range");
+        } else {
+            // 鏇存柊鑺傜洰
+            screen.writeProgram(pf);
+//            resetStatus = false;
+        }
+        close();
+    }
+
+    private void reset() throws Bx5GException {
+        if (!connect()) {
+            return;
+        }
+//        if (resetStatus) {
+//            return;
+//        }
+        pf = new ProgramBxFile(0, screen.getProfile());
+        pf.setFrameShow(false);
+        // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight
+        area = new TextCaptionBxArea(0, 0, 96, 48, screen.getProfile());
+        // 鍒涘缓涓�涓暟鎹〉
+        TextBxPage page = new TextBxPage();
+
+//        List<String> list = null;
+//        try {
+//            String ledDefaultMsg = Parameter.get().getLedDefaultMsg();
+//            list = JSON.parseArray(ledDefaultMsg, String.class);
+//        } catch (Exception ignore) {
+//        }
+//        if (!Cools.isEmpty(list)) {
+//            for (String str : list) {
+//                page.newLine(str);
+//            }
+//        } else {
+//            page.newLine("鑷姩鍖栫珛浣撲粨搴�");
+//            page.newLine("瑗挎牸杩堣偂浠芥湁闄愬叕鍙�");
+//        }
+        page.newLine("鍔涙簮鏅鸿兘浠撳偍");
+
+        // 璁剧疆瀛椾綋
+        page.setFont(new Font("瀹嬩綋", Font.PLAIN, 13));
+        // 璁剧疆鏂囨湰棰滆壊
+        page.setForeground(Color.red);
+        // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑�
+        page.setDisplayStyle(styles[6]);
+        area.clearPages();
+        area.addPage(page);
+        pf.addArea(area);
+        // 鏇存柊鑺傜洰
+        if (pf.validate() != null) {
+            log.info("pf out of range");
+        } else {
+            // 鏇存柊鑺傜洰
+            screen.writeProgram(pf);
+//            resetStatus = true;
+        }
+        close();
+    }
+
+    @Override
+    public boolean connect() {
+        boolean connRes = false;
+        try {
+            connRes = screen.connect(slave.getIp(), slave.getPort());
+            screen.turnOn();
+        } catch (Exception ignore) {
+        }
+        DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+        if (connRes) {
+            log.info("led杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            deviceErrorService.deleteDeviceError("led", slave.getId());
+        } else {
+            log.error("led杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            deviceErrorService.addDeviceError("led", slave.getId(), "led杩炴帴澶辫触");
+        }
+        return connRes;
+    }
+
+    @Override
+    public void close() {
+        screen.disconnect();
+    }
+
 }

--
Gitblit v1.9.1