ZengTao
2024-05-29 6c584c489a317cee78729707890db4bb1ee3f062
springboot-vue3/src/main/java/com/example/springboot/component/PlcLayout.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.sql.SQLException;
@@ -20,6 +21,7 @@
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
@Slf4j
public class PlcLayout extends Thread {
    @Autowired
@@ -52,65 +54,63 @@
        while (this != null) {
            try {
                Thread.sleep(1000);
                JSONObject jsonObject = new JSONObject();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            JSONObject jsonObject = new JSONObject();
                // 注入mapper
            // 注入mapper
                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
            homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                if (S7control.getinstance().CheckConnected() == true) {
                    // 查询报警信息
                    List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                    jsonObject.append("alarmmg", alarmmg);
            if (S7control.getinstance().CheckConnected() == true) {
                // 查询报警信息
            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
            jsonObject.append("alarmmg", alarmmg);
                    // 复位倒计时
                    // 地址104.9.6
                    List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
                    for (Boolean countdowns : countdown) {
                        jsonObject.append("countdown", countdowns);
                    }
                    // jsonObject.append("countdown", true);
                    // 复位完成信号ss
                    List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
                    for (Boolean reset : resetss) {
                        jsonObject.append("reset", reset);
                    }
                // 复位倒计时
                // 地址104.9.6
                List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
                for (Boolean countdowns : countdown) {
                    jsonObject.append("countdown", countdowns);
                }
                // jsonObject.append("countdown", true);
                // 复位完成信号ss
                List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
                for (Boolean reset : resetss) {
                    jsonObject.append("reset", reset);
                }
                // 是否急停
                List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
                for (Boolean emergencystop : emergencystops) {
                    jsonObject.append("emergencystop", emergencystop);
                }
            }
            // jsonObject.append("params", new short[] { 30, 40, });
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
                    if (webserver != null) {
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
                            // // 将最后一个消息转换为整数类型的列表
                            webserver.clearMessages();
                        }
                    // 是否急停
                    List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
                    for (Boolean emergencystop : emergencystops) {
                        jsonObject.append("emergencystop", emergencystop);
                    }
                }
                // jsonObject.append("params", new short[] { 30, 40, });
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        if (webserver != null&& webserver.session.isOpen()) {
                            webserver.sendMessage(jsonObject.toString());
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
                                // // 将最后一个消息转换为整数类型的列表
                                webserver.clearMessages();
                            }
                        }else{
                            log.info("Layout is closed");
                        }
                    }
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}