Xiajijian
2026-05-27 402fe914957546a820c60731181501c554826fa4
1. 提交细节修改。
2 files added
5 files modified
283 ■■■■■ changed files
ard-admin/src/main/java/com/ard/web/controller/work/UavSpeakerController.java 1 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/work/UavStrobeLightController.java 50 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java 147 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/domain/dto/speaker/StrobeLightDTO.java 19 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/domain/dto/wayline/PlanLineData.java 4 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/service/ITyService.java 15 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java 47 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/work/UavSpeakerController.java
@@ -43,4 +43,5 @@
        tyService.stopSpeak(stopSpeakDTO);
        return AjaxResult.success();
    }
}
ard-admin/src/main/java/com/ard/web/controller/work/UavStrobeLightController.java
New file
@@ -0,0 +1,50 @@
package com.ard.web.controller.work;
import com.ard.common.core.domain.AjaxResult;
import com.ard.work.domain.dto.speaker.StrobeLightDTO;
import com.ard.work.service.ITyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * UavSpeakerController
 *
 * @author liusuyi
 * @date 2024年10月21日13:52
 **/
@Api(tags = "无人机爆闪灯接口")
@RequestMapping("/uav/strobelight")
@RestController
public class UavStrobeLightController {
    @Resource
    private ITyService tyService;
    @ApiOperation("开启爆闪灯")
    @PostMapping("/open")
    public AjaxResult turnOnLight(@RequestBody StrobeLightDTO strobeLightDTO) {
        tyService.turnOnLight();
        return AjaxResult.success();
    }
    @ApiOperation("关闭爆闪灯")
    @PostMapping("/close")
    public AjaxResult turnOffLight(@RequestBody StrobeLightDTO strobeLightDTO) {
        tyService.turnOffLight();
        return AjaxResult.success();
    }
    @ApiOperation("亮度调节")
    @PostMapping("/adjustBrightness")
    public AjaxResult adjustBrightness(@RequestBody StrobeLightDTO strobeLightDTO) {
        tyService.adjustBrightness();
        return AjaxResult.success();
    }
}
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
@@ -124,151 +124,4 @@
        return zoom / CHANSI_H20T;
    }
    /**
     * 初始化数据
     */
    private void initializationSixHe(){
        ArdRouteChange ardRouteChange = new ArdRouteChange();
        ardRouteChange.setAutoSpeed(8);
        ardRouteChange.setFinishedAction(1);
        ardRouteChange.setHomeHeight(50);
        //ardRouteChange.setInterests(0);
        ardRouteChange.setIsSaveEnergyMode(0);
        ardRouteChange.setLoseAction(0);
        ardRouteChange.setMaxSpeed(15);
        ardRouteChange.setSecurityHeight(50);
        ardRouteChange.setTemplateId(0);
        List<ArdRoutePoints> points = new ArrayList<>();
        //-----------------------------------------------------
        ArdRoutePoints ardRoutePoints00 = new ArdRoutePoints();
        ardRoutePoints00.setDampingDistance(0);
        ardRoutePoints00.setFlightPathMode(1);
        ardRoutePoints00.setGroupIndex(0);
        ardRoutePoints00.setHeading(0);
        ardRoutePoints00.setHeadingMode(0);
        ardRoutePoints00.setHeight(50);
        ardRoutePoints00.setInterestIndex(-1);
        ardRoutePoints00.setLat(31.11339916);
        ardRoutePoints00.setLon(103.75851462);
        ardRoutePoints00.setSafeGohomeFlag(0);
        ardRoutePoints00.setSpeed(8);
        List<ArdRouteActions> actions00 = new ArrayList<>();
        ArdRouteActions ardRouteActions00 = new ArdRouteActions();
        ardRouteActions00.setParam(10);
        ardRouteActions00.setSpeakInfo("");
        ardRouteActions00.setType(1);
        ardRouteActions00.setWaitTime(2);
        ArdRouteActions ardRouteActions01 = new ArdRouteActions();
        ardRouteActions01.setParam(10);
        ardRouteActions01.setSpeakInfo("");
        ardRouteActions01.setType(1);
        ardRouteActions01.setWaitTime(2);
        ArdRouteActions ardRouteActions02 = new ArdRouteActions();
        ardRouteActions02.setParam(10);
        ardRouteActions02.setSpeakInfo("");
        ardRouteActions02.setType(1);
        ardRouteActions02.setWaitTime(2);
        actions00.add(ardRouteActions00);
        actions00.add(ardRouteActions01);
        actions00.add(ardRouteActions02);
        ardRoutePoints00.setActions(actions00);
        //-----------------------------------------------------
        ArdRoutePoints ardRoutePoints10 = new ArdRoutePoints();
        ardRoutePoints10.setDampingDistance(0);
        ardRoutePoints10.setFlightPathMode(1);
        ardRoutePoints10.setGroupIndex(0);
        ardRoutePoints10.setHeading(0);
        ardRoutePoints10.setHeadingMode(0);
        ardRoutePoints10.setHeight(50);
        ardRoutePoints10.setInterestIndex(-1);
        ardRoutePoints10.setLat(31.11339916);
        ardRoutePoints10.setLon(103.75746538);
        ardRoutePoints10.setSafeGohomeFlag(0);
        ardRoutePoints10.setSpeed(8);
        List<ArdRouteActions> actions10 = new ArrayList<>();
        ArdRouteActions ardRouteActions10 = new ArdRouteActions();
        ardRouteActions10.setParam(20);
        ardRouteActions10.setSpeakInfo("");
        ardRouteActions10.setType(9);
        ardRouteActions10.setWaitTime(2);
        ArdRouteActions ardRouteActions11 = new ArdRouteActions();
        ardRouteActions11.setParam(40);
        ardRouteActions11.setSpeakInfo("");
        ardRouteActions11.setType(6);
        ardRouteActions11.setWaitTime(2);
        ArdRouteActions ardRouteActions12 = new ArdRouteActions();
        ardRouteActions12.setParam(40);
        ardRouteActions12.setSpeakInfo("");
        ardRouteActions12.setType(7);
        ardRouteActions12.setWaitTime(2);
        ArdRouteActions ardRouteActions13 = new ArdRouteActions();
        ardRouteActions13.setParam(40);
        ardRouteActions13.setSpeakInfo("");
        ardRouteActions13.setType(8);
        ardRouteActions13.setWaitTime(2);
        actions10.add(ardRouteActions10);
        actions10.add(ardRouteActions11);
        actions10.add(ardRouteActions12);
        ardRoutePoints10.setActions(actions10);
        //-----------------------------------------------------
        ArdRoutePoints ardRoutePoints20 = new ArdRoutePoints();
        ardRoutePoints20.setDampingDistance(0);
        ardRoutePoints20.setFlightPathMode(1);
        ardRoutePoints20.setGroupIndex(0);
        ardRoutePoints20.setHeading(0);
        ardRoutePoints20.setHeadingMode(0);
        ardRoutePoints20.setHeight(50);
        ardRoutePoints20.setInterestIndex(-1);
        ardRoutePoints20.setLat(31.11250084);
        ardRoutePoints20.setLon(103.75746538);
        ardRoutePoints20.setSafeGohomeFlag(0);
        ardRoutePoints20.setSpeed(8);
        List<ArdRouteActions> actions20 = new ArrayList<>();
        ArdRouteActions ardRouteActions20 = new ArdRouteActions();
        ardRouteActions20.setParam(15);
        ardRouteActions20.setSpeakInfo("");
        ardRouteActions20.setType(9);
        ardRouteActions20.setWaitTime(2);
        ArdRouteActions ardRouteActions21 = new ArdRouteActions();
        ardRouteActions21.setParam(3);
        ardRouteActions21.setSpeakInfo("");
        ardRouteActions21.setType(10);
        ardRouteActions21.setWaitTime(2);
        actions20.add(ardRouteActions20);
        actions20.add(ardRouteActions21);
        ardRoutePoints20.setActions(actions20);
        //-----------------------------------------------------
        ArdRoutePoints ardRoutePoints30 = new ArdRoutePoints();
        ardRoutePoints30.setDampingDistance(0);
        ardRoutePoints30.setFlightPathMode(1);
        ardRoutePoints30.setGroupIndex(0);
        ardRoutePoints30.setHeading(0);
        ardRoutePoints30.setHeadingMode(0);
        ardRoutePoints30.setHeight(60);
        ardRoutePoints30.setInterestIndex(-1);
        ardRoutePoints30.setLat(31.11250084);
        ardRoutePoints30.setLon(103.75851462);
        ardRoutePoints30.setSafeGohomeFlag(0);
        ardRoutePoints30.setSpeed(8);
        List<ArdRouteActions> actions30 = new ArrayList<>();
        ArdRouteActions ardRouteActions30 = new ArdRouteActions();
        ardRouteActions30.setParam(1);
        ardRouteActions30.setSpeakInfo("");
        ardRouteActions30.setType(2);
        ardRouteActions30.setWaitTime(2);
        actions30.add(ardRouteActions30);
        ardRoutePoints30.setActions(actions30);
        points.add(ardRoutePoints00);
        points.add(ardRoutePoints10);
        points.add(ardRoutePoints20);
        points.add(ardRoutePoints30);
        ardRouteChange.setPoints(points);
    }
}
ard-work/src/main/java/com/ard/work/domain/dto/speaker/StrobeLightDTO.java
New file
@@ -0,0 +1,19 @@
package com.ard.work.domain.dto.speaker;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * @author 泽鼎研发01
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StrobeLightDTO {
    private String boxSn;
}
ard-work/src/main/java/com/ard/work/domain/dto/wayline/PlanLineData.java
@@ -57,4 +57,8 @@
    /**  起飞点 */
    private PointData takeOffPoint;
    /**  航线类型 */
    private String routeType;
}
ard-work/src/main/java/com/ard/work/service/ITyService.java
@@ -323,4 +323,19 @@
     */
    List<BoxInfoReceiver> getBoxSnToList(String id);
    /**
     * 开启爆闪灯
     */
    Boolean turnOnLight();
    /**
     * 关闭爆闪灯
     */
    Boolean turnOffLight();
    /**
     * 亮度调节
     */
    Boolean adjustBrightness();
}
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -46,6 +46,7 @@
import com.ard.work.domain.dto.settings.VideoStreamSettingDTO;
import com.ard.work.domain.dto.signal.SignalInfo;
import com.ard.work.domain.dto.speaker.*;
import com.ard.work.domain.dto.state.PointData;
import com.ard.work.domain.dto.state.UavState;
import com.ard.work.domain.dto.telemetry.TelemetryData;
import com.ard.work.domain.dto.wayline.*;
@@ -827,11 +828,33 @@
        if (ardDroneInfo == null) {
            throw new ControlException("未找到对应的飞行器信息,boxSn:{}" + boxSn);
        }
        if ("3".equals(wayLineUploadDTO.getWayLineData().getRouteType())){
            CreateWayLineUploadDTO(wayLineUploadDTO);
        }
        //wayLineUploadDTO.setWayLineData(this.CreatePlanLineData());//设置航线数据
        log.info("打印航线上传数据 ++++++++ wayLineUploadDTO:~~~~~~~~~~~~~~~" + wayLineUploadDTO);
        WayLineUploadCmd wayLineUploadCmd = new WayLineUploadCmd(wayLineUploadDTO);
        this.sendMessage(ardDroneInfo.getServerId(), wayLineUploadCmd);
        return true;
    }
    /**
     * 根据航线类型重新加工每个行点的高度
     * 如果行点类型是精细化巡检
     */
    private void CreateWayLineUploadDTO(WayLineUploadDTO wayLineUploadDTO) {
        // 先获取遥测数据
        String boxSn = wayLineUploadDTO.getBoxSn();
        TelemetryData telemetryData = getUavTelemetryData(boxSn);
        if (telemetryData == null) {
            throw new ControlException("获取遥测数据失败, boxSn:{}" + boxSn);
        }
        float altitude = telemetryData.getAltitude();
        for (PointData interest : wayLineUploadDTO.getWayLineData().getInterests()) {
            interest.setHeight(interest.getHeight() - altitude);
        }
    }
    //创建航线
@@ -1180,6 +1203,30 @@
    }
    /**
     * 开启爆闪灯
     */
    @Override
    public Boolean turnOnLight() {
        return null;
    }
    /**
     * 关闭爆闪灯
     */
    @Override
    public Boolean turnOffLight() {
        return null;
    }
    /**
     * 亮度调节
     */
    @Override
    public Boolean adjustBrightness() {
        return null;
    }
    /**
     * 根据[服务器id]查询无人机盒子列表
     */
    private List<ArdDroneInfo> getDroneLs(String serverId) {