diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java index 9bc8078..1563003 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java @@ -1,27 +1,18 @@ package com.ruoyi.web.controller.system; -import com.alibaba.fastjson.JSON; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.CxSelect; -import com.ruoyi.common.core.domain.entity.PrimaryRadarData; -import com.ruoyi.common.core.domain.entity.SysIdentifier; + import com.ruoyi.common.core.domain.entity.SysRadar; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableSupport; -import com.ruoyi.common.json.JSONObject; -import com.ruoyi.common.json.JSONObject.JSONArray; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.bean.ModbusResponse; import com.ruoyi.common.utils.modbus.ModbusUtils; import com.ruoyi.framework.web.domain.server.Sys; import com.ruoyi.system.service.ISysRadarService; import com.ruoyi.system.service.PrimaryRadarDataService; import com.ruoyi.system.service.impl.IdentifierStatusServiceImpl; +import com.ruoyi.web.core.config.RadarStatusWebSocket; import com.serotonin.modbus4j.ModbusMaster; -import com.serotonin.modbus4j.exception.ErrorResponseException; -import com.serotonin.modbus4j.exception.ModbusTransportException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -36,7 +27,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; /** - * 标识器状态 + * 雷达状态 * * @author ruoyi */ @@ -86,7 +77,7 @@ public class RadarStatusController modbusResponse = ModbusUtils.holdingRegister(); System.out.println(modbusResponse); - + RadarStatusWebSocket.sendToAll(modbusResponse.toString()); } } catch (Exception e) { System.err.println("从串口读取失败:" + e.getMessage()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RadarStatusWebSocket.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RadarStatusWebSocket.java new file mode 100644 index 0000000..b8b9503 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RadarStatusWebSocket.java @@ -0,0 +1,33 @@ +package com.ruoyi.web.core.config; + +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +@ServerEndpoint("/websocket") +public class RadarStatusWebSocket { + + private static Set sessions = new HashSet<>(); + + @OnOpen + public void onOpen(Session session) { + sessions.add(session); + } + + @OnClose + public void onClose(Session session) { + sessions.remove(session); + } + + public static void sendToAll(String message) { + for (Session session : sessions) { + try { + session.getBasicRemote().sendText(message); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} \ No newline at end of file