liusuyi
2025-03-04 16fd4235f692777cfd9cceff5090e5450e2173b3
ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -1,34 +1,31 @@
package com.ard.tianyu.service.impl;
import com.ard.common.utils.ByteUtils;
import com.ard.tianyu.aspect.annotation.CheckControlAuthority;
import com.ard.tianyu.aspect.annotation.RequireUavControl;
import com.ard.tianyu.config.TyConfiguration;
import com.ard.tianyu.http.TyClient;
import com.ard.tianyu.model.cache.TyTcpServerCache;
import com.ard.tianyu.model.cache.UavSignalInfoCache;
import com.ard.tianyu.model.cache.UavStateCache;
import com.ard.tianyu.model.cache.UavTelemetryDataCache;
import com.ard.tianyu.model.dto.BoxHistoryDTO;
import com.ard.tianyu.model.dto.BoxPhotosDTO;
import com.ard.tianyu.model.dto.BoxSettingsDTO;
import com.ard.tianyu.model.dto.camera.*;
import com.ard.tianyu.model.dto.control.AbsAngleControlDTO;
import com.ard.tianyu.model.dto.control.AngleControlDTO;
import com.ard.tianyu.model.dto.control.SpeedControlDTO;
import com.ard.tianyu.model.dto.converter.realdata.UavSignalInfoConverter;
import com.ard.tianyu.model.dto.converter.realdata.UavStateConverter;
import com.ard.tianyu.model.dto.converter.realdata.UavTelemetryDataConverter;
import com.ard.tianyu.model.dto.converter.wayline.PlanLineDataConverter;
import com.ard.tianyu.model.dto.manual.*;
import com.ard.tianyu.model.dto.settings.ReturnHeightSettingDTO;
import com.ard.tianyu.model.dto.settings.ReturnPointSettingDTO;
import com.ard.tianyu.model.dto.settings.VideoStreamSettingDTO;
import com.ard.tianyu.model.dto.signal.SignalInfo;
import com.ard.tianyu.model.dto.speaker.*;
import com.ard.tianyu.model.dto.state.UavState;
import com.ard.tianyu.model.dto.telemetry.TelemetryData;
import com.ard.tianyu.model.dto.wayline.*;
import com.ard.tianyu.model.receiver.*;
import com.ard.tianyu.domain.dto.camera.*;
import com.ard.tianyu.domain.dto.manual.*;
import com.ard.tianyu.domain.dto.speaker.*;
import com.ard.tianyu.domain.dto.wayline.*;
import com.ard.tianyu.domain.receiver.*;
import com.ard.tianyu.forest.TyClient;
import com.ard.tianyu.domain.cache.TyTcpServerCache;
import com.ard.tianyu.domain.cache.UavSignalInfoCache;
import com.ard.tianyu.domain.cache.UavStateCache;
import com.ard.tianyu.domain.cache.UavTelemetryDataCache;
import com.ard.tianyu.domain.dto.BoxHistoryDTO;
import com.ard.tianyu.domain.dto.BoxPhotosDTO;
import com.ard.tianyu.domain.dto.BoxSettingsDTO;
import com.ard.tianyu.domain.dto.control.AbsAngleControlDTO;
import com.ard.tianyu.domain.dto.control.AngleControlDTO;
import com.ard.tianyu.domain.dto.control.SpeedControlDTO;
import com.ard.tianyu.domain.dto.converter.wayline.PlanLineDataConverter;
import com.ard.tianyu.domain.dto.settings.ReturnHeightSettingDTO;
import com.ard.tianyu.domain.dto.settings.ReturnPointSettingDTO;
import com.ard.tianyu.domain.dto.settings.VideoStreamSettingDTO;
import com.ard.tianyu.domain.dto.signal.SignalInfo;
import com.ard.tianyu.domain.dto.state.UavState;
import com.ard.tianyu.domain.dto.telemetry.TelemetryData;
import com.ard.tianyu.netty.command.*;
import com.ard.tianyu.netty.TyNettyTcpClient;
import com.ard.tianyu.netty.command.camera.*;
@@ -49,8 +46,8 @@
import com.ard.tianyu.netty.handler.ErrorCodeEnum;
import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
import com.ard.tianyu.service.ITyService;
import com.ard.tianyu.websocket.domain.UavControlType;
import com.ard.tianyu.websocket.utils.WebSocketUtil;
import com.ard.vtdu.domain.ArdVtdu;
import com.ard.vtdu.service.IMediaService;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
@@ -200,6 +197,7 @@
    /**
     * 云台控制基于角度
     */
    @RequireUavControl(UavControlType.PAYLOAD)
    @Override
    public Boolean angleControl(AngleControlDTO angleControlDto) {
        AngleControlCmd controlAngleCommand = new AngleControlCmd(angleControlDto);
@@ -210,6 +208,7 @@
    /**
     * 云台绝对值控制(基于角度)
     */
    @RequireUavControl(UavControlType.PAYLOAD)
    @Override
    public Boolean absAngleControl(AbsAngleControlDTO absAngleControlDto) {
        AbsAngleControlCmd absAngleControlCommand = new AbsAngleControlCmd(absAngleControlDto);
@@ -220,6 +219,7 @@
    /**
     * 云台转动(基于速度)
     */
    @RequireUavControl(UavControlType.PAYLOAD)
    @Override
    public Boolean speedControl(SpeedControlDTO speedControlDto) {
        SpeedControlCmd speedControlCommand = new SpeedControlCmd(speedControlDto);
@@ -327,7 +327,7 @@
    /**
     * 起飞
     */
    @CheckControlAuthority
    @RequireUavControl(UavControlType.FLY)
    @Override
    public Boolean takeOff(TakeOffDTO takeOffDTO) {
        TakeOffCmd takeOffCmd = new TakeOffCmd(takeOffDTO);
@@ -590,20 +590,6 @@
    public void wayLineEnd(WayLineEndDTO wayLineEndDTO) {
        WayLineEndCmd wayLineEndCmd = new WayLineEndCmd(wayLineEndDTO);
        this.sendMessage(tyConfiguration.getIpPort(), wayLineEndCmd);
    }
    /**
     * 点播
     */
    @Override
    public ArdVtdu play(String boxSn) {
        BoxStreamUrlReceiver boxLiveUrl = getBoxLiveUrl(boxSn);
        if(boxLiveUrl == null||boxLiveUrl.getRtsp() == null) {
            return null;
        }
        ArdVtdu ardVtdu = ArdVtdu.builder().name(boxSn).rtspSource(boxLiveUrl.getRtsp()).build();
        ardVtdu = mediaService.addPath(ardVtdu);
        return ardVtdu;
    }
    /**