package com.ard.work.component.websocket.handler; import com.ard.work.domain.cache.UavSignalInfoCache; import com.ard.work.domain.cache.UavStateCache; import com.ard.work.domain.cache.UavTelemetryDataCache; import com.ard.work.domain.dto.signal.SignalInfo; import com.ard.work.domain.dto.state.UavState; import com.ard.work.domain.dto.telemetry.TelemetryData; import com.ard.work.service.control.UavControlService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @Component public class UavAllManager extends BaseSubscriptionManager> { @Resource private UavControlService uavControlService; @Override protected Map getData(String boxSn) { Map map=new HashMap<>(); UavState uavState = UavStateCache.getUavState(boxSn); if (uavState != null) { uavState.calculateFieldAngle();// 计算当前无人机的FieldAngle } map.put("state", uavState); TelemetryData uavTelemetryData = UavTelemetryDataCache.getUavTelemetryData(boxSn); map.put("telemetry", uavTelemetryData); SignalInfo uavSignalInfo = UavSignalInfoCache.getUavSignalInfo(boxSn); map.put("signal", uavSignalInfo); // 获取当前控制飞行的用户ID Long flyUserId = uavControlService.getCurrentController(boxSn, "fly"); // 将飞行当前控制者用户ID添加到映射中 map.put("flyController", flyUserId); // 获取当前控制载荷的用户ID Long payloadUserId = uavControlService.getCurrentController(boxSn, "payload"); // 将载荷当前控制者用户ID添加到映射中 map.put("payloadController", payloadUserId); return map; } @Override protected String getMessageType() { return "all"; } }