wuyouming666
2023-12-12 fb32fb5bb4be336171dca41e62d3d6c6c5803f34
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -28,7 +28,7 @@
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/Alarm.json");
      fileInputStream = new FileInputStream("D:/canadames/Alarm.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
@@ -82,13 +82,13 @@
        e.printStackTrace();
      }
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
//      this.readValue();
//      String PlcAddress = this.name;
//      Integer Plccount = this.count;
      // 根据地址读取PCL数据
      // List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 71);
      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 71);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      // System.out.println(plclist);
      // Boolean[] values = { false, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
@@ -101,39 +101,42 @@
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("params", plclist);
        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("alarm");
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("alarm");
        if (sendwServer != null) {
          sendwServer.sendMessage(jsonObject.toString());
        }
          for (WebSocketServer webserver : sendwServer) {
            webserver.sendMessage(jsonObject.toString());
        // 将获取的布尔类型转换为整数类型
        List<Integer> Intlist = new ArrayList<>();
        for (Boolean value : plclist) {
          Intlist.add(value == true ? 1 : 0);
        }
            // 将获取的布尔类型转换为整数类型
            List<Integer> Intlist = new ArrayList<>();
            for (Boolean value : plclist) {
              Intlist.add(value == true ? 1 : 0);
        // 将Intlist转换为数组
        // System.out.println(Intlist);
        Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
            }
        // 定义的报警内容数组,获取json返回的集合
        List<String> myCollection;
        myCollection = readValue();
        String[] array1 = myCollection.toArray(new String[myCollection.size()]);
            // 将Intlist转换为数组
            // System.out.println(Intlist);
            Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
        alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
        for (short i = 0; i < array1.length; i++) {
          // 查询对应报警信息结束时间为null的条数
          short result = alarmMapper.selectnullti(array1[i]);
          // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0
          // System.out.println(result);
          if (shuzu1[i] == 1 && result == 0) {
            // 填加一条报警信息,有开始时间
            // alarmMapper.Insertalarm(array1[i]);
          } else if (shuzu1[i] == 0 && result > 0) {
            // 修改该条报警信息的结束时间
            alarmMapper.updatealarm(array1[i]);
            // 定义的报警内容数组,获取json返回的集合
            List<String> myCollection;
            myCollection = readValue();
            String[] array1 = myCollection.toArray(new String[myCollection.size()]);
            //  System.out.println(array1.length);
            alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
            for (short i = 0; i < array1.length; i++) {
              // 查询对应报警信息结束时间为null的条数
              short result = alarmMapper.selectnullti(array1[i]);
              // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0
              // System.out.println(result);
              if (shuzu1[i] == 1 && result == 0) {
                // 填加一条报警信息,有开始时间
                alarmMapper.Insertalarm(array1[i]);
              } else if (shuzu1[i] == 0 && result > 0) {
                // 修改该条报警信息的结束时间
                alarmMapper.updatealarm(array1[i]);
              }
            }
          }
        }
      }