wangxichen 6 일 전
부모
커밋
e631a2cd14
2개의 변경된 파일20개의 추가작업 그리고 16개의 파일을 삭제
  1. 5 16
      src/com/mes/ui/MesClient.java
  2. 15 0
      src/com/mes/ui/ModbusRtu.java

+ 5 - 16
src/com/mes/ui/MesClient.java

@@ -130,7 +130,8 @@ public class MesClient extends JFrame {
 
                     serialPort = ModbusRtu.connect();
 
-                    checkTimer();
+                    // checkTimer()已移除:原用于每3秒驱动继电器开关(formatDeviceState),
+                    // 继电器功能已不再使用,保留会导致无意义的轮询打印
 
                     // 启动镭雕流程管理器(含本地HTTP服务,接收镭雕软件完成上报)
                     initLaserFlow();
@@ -287,7 +288,7 @@ public class MesClient extends JFrame {
         MesClient.setMenuStatus("请扫工件码",0);
 
         updateMaterailData();
-        getCheckResult();
+        // getCheckResult()调用已移除:原用于驱动继电器(formatDeviceState),继电器功能已不再使用
         // 注释掉换班检查,避免自动退出
         // shiftUserCheck();
     }
@@ -896,20 +897,8 @@ public class MesClient extends JFrame {
                 int selectedIndex = tabbedPane.getSelectedIndex();
                 System.out.println("selectedIndex:"+selectedIndex);
 
-                if(selectedIndex == 0){
-                    // 创建一个单线程的ExecutorService
-                    ExecutorService executorService = Executors.newSingleThreadExecutor();
-
-                    // 提交一个异步任务
-                    executorService.submit(() -> {
-                        System.out.println("异步线程正在运行...");
-                        // 在这里执行异步操作
-                        getCheckResult();
-                    });
-
-                    // 关闭ExecutorService,以优雅的方式
-                    executorService.shutdown();
-                }
+                // getCheckResult()调用已移除:原用于驱动继电器(formatDeviceState),
+                // 继电器功能已不再使用
             }
         });
         

+ 15 - 0
src/com/mes/ui/ModbusRtu.java

@@ -39,6 +39,11 @@ public class ModbusRtu {
         if(serialPort ==null || !serialPort.isOpen()){
             serialPort = reconnect(serialPort);
         }
+        if(serialPort == null){
+            // 串口设备不存在(如COM2未接硬件),跳过操作,避免NPE刷屏
+            System.out.println("Modbus设备未连接,跳过openDevice");
+            return;
+        }
 
         try {
             String writeString = "010600000000"; // 关
@@ -73,6 +78,11 @@ public class ModbusRtu {
         if(serialPort ==null || !serialPort.isOpen()){
             serialPort = reconnect(serialPort);
         }
+        if(serialPort == null){
+            // 串口设备不存在(如COM2未接硬件),跳过操作,避免NPE刷屏
+            System.out.println("Modbus设备未连接,跳过closeDevice");
+            return;
+        }
         try {
             String writeString = "010600000001"; // 开
             String crc = getCRC16_Modbus_Str(writeString);
@@ -106,6 +116,11 @@ public class ModbusRtu {
         if(serialPort ==null || !serialPort.isOpen()){
             serialPort = reconnect(serialPort);
         }
+        if(serialPort == null){
+            // 串口设备不存在(如COM2未接硬件),跳过操作,避免NPE刷屏
+            System.out.println("Modbus设备未连接,跳过readCoil");
+            return false;
+        }
         try {
             String writeString = "010100000"+pos+"01"; // 线圈地址 0/1,目前只有2路
             String crc = getCRC16_Modbus_Str(writeString);