wu
2023-12-14 f43c5acc73d15a6bc60d6a3cb66b6d750b257dc6
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -69,7 +69,7 @@
        e.printStackTrace();
      }
   //    手动状态地址
     //  手动状态地址
      List<String> addressList1 = new ArrayList<>();
      addressList1.add("DB103.44");//D01
@@ -152,7 +152,7 @@
//
//      String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"};
//      List<String> paramlist = new ArrayList<>(Arrays.asList(values6));
//      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
@@ -172,7 +172,7 @@
        boolean value = data2.get(i);
        params[i] = value ? (short) 1 : (short) 0;
      }
//
      short[] anniuparams = new short[anniuread.size()];
      for (int i = 0; i < anniuread.size(); i++) {
        boolean value = anniuread.get(i);
@@ -184,94 +184,102 @@
      jsonObject.append("params", data);
      jsonObject.append("params", data3);
      jsonObject.append("params", data4);
      jsonObject.append("jiting", anniuparams);
     jsonObject.append("jiting", anniuparams);
//      WebSocketServer sendwServer = WebSocketServer.getWebSocketServer("Parameter2");
//      if (sendwServer != null) {
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.set("message", "Hello, Parameter2!");
//        sendwServer.sendMessage(jsonObject.toString());
//      }
      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
 if (sendwServer != null) {
 for (WebSocketServer webserver : sendwServer) {
 webserver.sendMessage(jsonObject.toString());
     for (WebSocketServer webserver : sendwServer) {
         webserver.sendMessage(jsonObject.toString());
         if (webserver != null) {
        List<String> messages = webserver.getMessages();
        List<String> addressList = new ArrayList<>();
             List<String> messages = webserver.getMessages();
             List<String> addressList = new ArrayList<>();
        addressList.add("DB101.9.2");
        addressList.add("DB101.9.3");
        addressList.add("DB101.9.4");
        addressList.add("DB101.9.5");
        addressList.add("DB101.9.6");
        addressList.add("DB101.9.7");
        addressList.add("DB101.10.0");
        addressList.add("DB101.10.1");
        addressList.add("DB101.10.2");
        addressList.add("DB101.10.3");
             addressList.add("DB101.9.2");
             addressList.add("DB101.9.3");
             addressList.add("DB101.9.4");
             addressList.add("DB101.9.5");
             addressList.add("DB101.9.6");
             addressList.add("DB101.9.7");
             addressList.add("DB101.10.0");
             addressList.add("DB101.10.1");
             addressList.add("DB101.10.2");
             addressList.add("DB101.10.3");
        if (!messages.isEmpty()) {
          // 将最后一个消息转换为整数类型的列表
          String lastMessage = messages.get(messages.size() - 1);
             if (!messages.isEmpty()) {
                 // 将最后一个消息转换为整数类型的列表
                 String lastMessage = messages.get(messages.size() - 1);
//        System.out.println("lastMessage:" + lastMessage);
          JSONArray messageArray = new JSONArray(lastMessage);
                 JSONArray messageArray = new JSONArray(lastMessage);
          if (messageArray.getJSONArray(0).size() > 0) {
            JSONArray jsonArray3 = messageArray.getJSONArray(0);
            List<Boolean> sValue3 = new ArrayList<>();
            for (int i = 0; i < jsonArray3.size(); i++) {
              Object value = jsonArray3.get(i);
              if (value != null && !value.toString().equals("null")) {
                try {
                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                  boolean val = "1".equals(cleanedValue.trim());
                  sValue3.add(val);
                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                } catch (NumberFormatException e) {
                  // 如果无法解析为 boolean 类型,则忽略该部分
                  System.err.println("Could not parse value: " + value);
                }
              }
            }
            if (!sValue3.isEmpty()) {
             S7control.getinstance().WriteBit(addressList, sValue3);
              System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
            }
          }
          // 将布尔列表写入 PLC
          if (messageArray.getJSONArray(1).size() > 0) {
            JSONArray jsonArray3 = messageArray.getJSONArray(1);
            List<Boolean> sValue3 = new ArrayList<>();
            for (int i = 0; i < jsonArray3.size(); i++) {
              Object value = jsonArray3.get(i);
              if (value != null && !value.toString().equals("null")) {
                try {
                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                  boolean val = "1".equals(cleanedValue.trim());
                  sValue3.add(val);
                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                } catch (NumberFormatException e) {
                  // 如果无法解析为 boolean 类型,则忽略该部分
                  System.err.println("Could not parse value: " + value);
                }
              }
            }
            if (!sValue3.isEmpty()) {
            S7control.getinstance().WriteBit(niuanaddressList3, sValue3);
                 if (messageArray.getJSONArray(0).size() > 0) {
                     JSONArray jsonArray3 = messageArray.getJSONArray(0);
                     List<Boolean> sValue3 = new ArrayList<>();
                     for (int i = 0; i < jsonArray3.size(); i++) {
                         Object value = jsonArray3.get(i);
                         if (value != null && !value.toString().equals("null")) {
                             try {
                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                                 boolean val = "1".equals(cleanedValue.trim());
                                 sValue3.add(val);
                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                             } catch (NumberFormatException e) {
                                 // 如果无法解析为 boolean 类型,则忽略该部分
                                 System.err.println("Could not parse value: " + value);
                             }
                         }
                     }
                     if (!sValue3.isEmpty()) {
           S7control.getinstance().WriteBit(addressList, sValue3);
                         System.out.println("Values " + sValue3 + " written to PLC at address " + addressList);
                     }
                 }
                 // 将布尔列表写入 PLC
                 if (messageArray.getJSONArray(1).size() > 0) {
                     JSONArray jsonArray3 = messageArray.getJSONArray(1);
                     List<Boolean> sValue3 = new ArrayList<>();
                     for (int i = 0; i < jsonArray3.size(); i++) {
                         Object value = jsonArray3.get(i);
                         if (value != null && !value.toString().equals("null")) {
                             try {
                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                                 boolean val = "1".equals(cleanedValue.trim());
                                 sValue3.add(val);
                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                             } catch (NumberFormatException e) {
                                 // 如果无法解析为 boolean 类型,则忽略该部分
                                 System.err.println("Could not parse value: " + value);
                             }
                         }
                     }
                     if (!sValue3.isEmpty()) {
             S7control.getinstance().WriteBit(niuanaddressList3, sValue3);
              System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
            }
          }
                         System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
                     }
                 }
          // 清空消息列表
            webserver.clearMessages();
        }
      }
                 // 清空消息列表
                 webserver.clearMessages();
             }
         }
     }
 }
    }
      }
    }
  }