From 100f4dcea20a32663a07e91525de111f7515eb79 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 21 十一月 2025 17:25:53 +0800
Subject: [PATCH] 可发布版本202517.25

---
 src/publicway/SerialProtocolParser.java |   47 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/src/publicway/SerialProtocolParser.java b/src/publicway/SerialProtocolParser.java
index c80bf15..e68a786 100644
--- a/src/publicway/SerialProtocolParser.java
+++ b/src/publicway/SerialProtocolParser.java
@@ -5,7 +5,13 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+import chuankou.SerialPortService;
+import chushihua.SlotManager;
+import chushihua.lunxun;
+import dialog.Charulog;
+import dialog.Dingshidialog;
 import publicway.ProtocolParser01.ParseResult;
+import xitongshezhi.SystemDebugDialog;
 
 public class SerialProtocolParser {
     
@@ -45,7 +51,7 @@
      */
     public void start() {
         if (isRunning) {
-            System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡缁忓湪杩愯涓�");
+            //System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡缁忓湪杩愯涓�");
             return;
         }
         
@@ -58,7 +64,7 @@
         processorThread.setDaemon(true);
         processorThread.start();
         
-        System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡鍚姩");
+        //System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡鍚姩 - 鐙珛浜庤疆璇㈢姸鎬佽繍琛�");
     }
     
     /**
@@ -97,7 +103,7 @@
         batchQueue.clear();
         bufferPosition = 0;
         
-        System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡鍋滄");
+        //System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡鍋滄");
     }
     
     /**
@@ -112,15 +118,15 @@
      */
     public void receiveData(byte[] rawData) {    	
         if (!isRunning) {
-            System.out.println("璀﹀憡: 涓插彛鍗忚瑙f瀽鍣ㄦ湭鍚姩锛屽拷鐣ユ帴鏀剁殑鏁版嵁");
-            return;
+            // 濡傛灉瑙f瀽鍣ㄦ湭杩愯锛岃嚜鍔ㄥ惎鍔�
+            start();
         }
         
         if (rawData == null || rawData.length == 0) {
             return;
         }
         
-        // 灏嗘暟鎹坊鍔犲埌鎵归噺闃熷垪
+        // 灏嗘暟鎹坊鍔犲埌鎵归噺闃熷垪 - 纭繚濮嬬粓鎵ц
         if (!batchQueue.offer(rawData)) {
             System.err.println("鎵归噺闃熷垪宸叉弧锛屼涪寮冩暟鎹�");
         }
@@ -166,7 +172,7 @@
         long maxMem = runtime.maxMemory();
         
         if (usedMem > maxMem * 0.8) {
-            System.out.println("鍐呭瓨浣跨敤鐜囪秴杩�80%锛屽綋鍓嶄娇鐢�: " + (usedMem / 1024 / 1024) + "MB");
+            //System.out.println("鍐呭瓨浣跨敤鐜囪秴杩�80%锛屽綋鍓嶄娇鐢�: " + (usedMem / 1024 / 1024) + "MB");
         }
     }
     
@@ -273,11 +279,11 @@
      */
     private void parsePacket(byte[] packet) {
         try {
+        	SerialPortService.getReceivedDataCount();
             // 瑙f瀽鍩烘湰瀛楁
             byte hostAddress = packet[4];        // 涓绘満鍦板潃
             byte slotAddress = packet[5];        // 鍗℃Ы鍦板潃
-            byte functionCode = packet[6];       // 鍔熻兘鐮�
-            
+            byte functionCode = packet[6];       // 鍔熻兘鐮�           
             // 鏁版嵁闀垮害 (浠庡崗璁腑璇诲彇)
             int dataLength = ((packet[2] & 0xFF) << 8) | (packet[3] & 0xFF);
             
@@ -296,33 +302,40 @@
                         // 浣跨敤浼樺寲鐨勫瓧鑺傛暟缁勮В鏋愭柟娉曪紝閬垮厤瀛楃涓茶浆鎹�
                         ParseResult rst = ProtocolParser01.parseDDCC01Data(packet);
                         rst.fuzhi();
-                        rst.toString();
+//                        System.out.println(rst.toString());      
+                        if (lunxun.DEBUG_ENABLED) {
+                            SystemDebugDialog.appendAsciiData(rst.toString());
+                        }
+                        
                     }
                     break;
                 case FUNCTION_51:
                     // 璋冪敤 ProtocolParser51 澶勭悊鏁版嵁
                     String hexPacket = bytesToHex(packet);
                     int result = ProtocolParser51.parse(hexPacket);
+                    int slot = slotAddress;
                     if (result == 1) {
-                        System.out.println("鍔熻兘鐮� 0x51 - 寮�闂ㄦ帶鍒舵垚鍔�");
+//                    	Dingshidialog.showTimedDialog(null, 5,slot+"鍙峰崱妲藉嚭鍗℃垚鍔熻鍙栬蛋鍗�...");
+                    	SlotManager.changgehaska(slot, result);
                     } else {
-                        System.out.println("鍔熻兘鐮� 0x51 - 寮�闂ㄦ帶鍒跺け璐ユ垨鎶ユ枃涓嶅悎娉�");
+                    	String message=slot+"鍙峰崱妲藉彇鍗″け璐�";
+                        Charulog.logOperation(message);
                     }
                     break;
                 case FUNCTION_52:
-                    System.out.println("鍔熻兘鐮� 0x52 - LED浜害鎺у埗");
+                    //System.out.println("鍔熻兘鐮� 0x52 - LED浜害鎺у埗");
                     break;
                 case FUNCTION_80:
-                    System.out.println("鍔熻兘鐮� 0x80 - 宸ュ崱鍗囩骇浣胯兘");
+                    //System.out.println("鍔熻兘鐮� 0x80 - 宸ュ崱鍗囩骇浣胯兘");
                     break;
                 case FUNCTION_81:
-                    System.out.println("鍔熻兘鐮� 0x81 - 宸ヤ綔鍗″崌绾ф暟鎹寘");
+                    //System.out.println("鍔熻兘鐮� 0x81 - 宸ヤ綔鍗″崌绾ф暟鎹寘");
                     break;
                 case FUNCTION_82:
-                    System.out.println("鍔熻兘鐮� 0x82 - 鍗曟澘鍗囩骇浣胯兘");
+                    //System.out.println("鍔熻兘鐮� 0x82 - 鍗曟澘鍗囩骇浣胯兘");
                     break;
                 case FUNCTION_83:
-                    System.out.println("鍔熻兘鐮� 0x83 - 鍗曟澘鍗囩骇鏁版嵁鍖�");
+                    //System.out.println("鍔熻兘鐮� 0x83 - 鍗曟澘鍗囩骇鏁版嵁鍖�");
                     break;
                 default:
                     System.err.println("鏈煡鍔熻兘鐮�: 0x" + Integer.toHexString(functionCode & 0xFF));

--
Gitblit v1.9.3