1、阿罗斯机库蛙跳

This commit is contained in:
zhangchuang 2026-06-05 11:03:44 +08:00
parent 762fdf1d7b
commit 6d9bd5a7ca
4 changed files with 90 additions and 7 deletions

View File

@ -1,6 +1,8 @@
package com.multictrl.modules.business.dto.flight;
import com.multictrl.modules.business.dto.multi.PrivateMultiFlightBindDockInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -19,6 +21,7 @@ import lombok.NoArgsConstructor;
*/
@Data
public class FlightTaskPrepare {
//计划 ID
private String flight_id;
//开始执行时间
@ -53,10 +56,7 @@ public class FlightTaskPrepare {
private int rth_altitude;
//返航高度模式
//{"0":"智能高度","1":"设定高度"}
/// 智能返航模式下飞行器将自动规划最佳返航高度
/// 大疆机场当前不支持设置返航高度模式只能选择'设定高度'模式
/// 当环境光线不满足视觉系统要求时譬如傍晚阳光直射夜间弱光无光
/// 飞行器将使用您设定的返航高度进行直线返航
/// 智能返航模式下飞行器将自动规划最佳返航高度 大疆机场当前不支持设置返航高度模式只能选择'设定高度'模式 当环境光线不满足视觉系统要求时譬如傍晚阳光直射夜间弱光无光 飞行器将使用您设定的返航高度进行直线返航
private int rth_mode;
//遥控器失控动作
//{"0":"返航","1":"悬停","2":"降落"}
@ -86,10 +86,14 @@ public class FlightTaskPrepare {
// 如果不一致则拉取文件更新如果一致则不处理
private int flight_safety_advance_check;
private List<PrivateMultiFlightBindDockInfo> private_multi_flight_bind_dock_info;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class BreakPoint {
//断点序号
@Schema(description = "断点序号")
private int index;
@ -110,6 +114,7 @@ public class FlightTaskPrepare {
@NoArgsConstructor
@AllArgsConstructor
public static class ExecutableConditions {
//存储容量
//可执行任务的机场或飞行器最低存储容量机场或飞行器存储容量不满足 storage_capacity 任务执行失败
private int storage_capacity;
@ -119,6 +124,7 @@ public class FlightTaskPrepare {
@NoArgsConstructor
@AllArgsConstructor
public static class FileInfo {
//文件 URL
private String url;
//文件签名 文件内容 MD5 签名
@ -130,6 +136,7 @@ public class FlightTaskPrepare {
@NoArgsConstructor
@AllArgsConstructor
public static class ReadyConditions {
//电池容量
//可执行任务的飞行器电池电量百分比阈值任务开始执行时的飞行器电量必须大于 battery_capacity
private int battery_capacity;
@ -145,6 +152,7 @@ public class FlightTaskPrepare {
@NoArgsConstructor
@AllArgsConstructor
public static class SimulateMission {
//是否开启模拟器任务
//{"0":"不开启","1":"开启"}
//当次任务打开或关闭模拟器

View File

@ -158,7 +158,7 @@ public class MultiServiceImpl implements MultiService {
flightExecute.setPrivateMultiFlightBindDockInfos(privateMultiFlightBindDockInfos);
log.info("privateMultiDockFlightTaskOutbound-> 下发航线给妙算 flightExecute:{}", flightExecute);
return routeFlightService.flightExecute(multiTaskDTO.getMiaoSuan().getDockSn(), flightExecute);
return routeFlightService.flightExecute(multiTaskDTO.getMiaoSuan().getDockSn(), flightExecute, true);
}
@Override

View File

@ -59,7 +59,7 @@ public class RouteFlightServiceImpl implements RouteFlightService {
* multiFlightBindDockInfos aros机场蛙跳模式参数把N个参与到蛙跳的的机场信息给到妙算返航时自动计算离哪个机库位置近就降落到哪个机库
*/
@Override
public String flightExecute(String dockSn, FlightExecute flightExecute) {
public String flightExecute(String dockSn, FlightExecute flightExecute, Boolean isRecord) {
ReentrantLock lock = cacheLock.computeIfAbsent(dockSn, k -> new ReentrantLock());
lock.lock();
try {
@ -129,7 +129,9 @@ public class RouteFlightServiceImpl implements RouteFlightService {
Utils.sleep(1000);
String resultMsg = djiBaseService.executeAndReturnResult(dockSn, "flighttask_execute",
new JSONObject().set("flight_id", taskId));
if (isRecord) {
flightTaskService.addRouteTask(taskId, dockSn, route.getId());
}
return resultMsg;
} finally {
Utils.sleep(2000);

View File

@ -2144,3 +2144,76 @@ INSERT INTO "public"."sys_dict_data" ("id", "dict_type_id", "dict_label", "dict_
VALUES (2060253516358848514, 2060253239434121218, 'Ars550', 'Ars550', '', 0, 1067246875800000001,
'2026-05-29 14:54:50.617', 1067246875800000001, '2026-05-29 14:54:50.617', 'source-material/Ars550.png');
-- 20260605 aros 蛙跳 by zhangchuang
ALTER TABLE public.bus_dock
ADD scenario varchar(128) NULL;
COMMENT
ON COLUMN public.bus_dock.scenario IS '使用场景';
CREATE TABLE public.bus_multi_group
(
id int8 NOT NULL,
group_name varchar(128) NOT NULL,
group_mark varchar(256) NULL,
dept_id int8 NULL,
creator int8 NULL,
create_date timestamp NULL,
updater int8 NULL,
update_date timestamp NULL
);
COMMENT
ON TABLE public.bus_multi_group IS '跳飞设备组信息';
-- Column comments
COMMENT
ON COLUMN public.bus_multi_group.id IS '组id';
COMMENT
ON COLUMN public.bus_multi_group.group_name IS '组名称';
COMMENT
ON COLUMN public.bus_multi_group.group_mark IS '组描述';
COMMENT
ON COLUMN public.bus_multi_group.dept_id IS '所属组织';
COMMENT
ON COLUMN public.bus_multi_group.creator IS '创建人';
COMMENT
ON COLUMN public.bus_multi_group.create_date IS '创建时间';
COMMENT
ON COLUMN public.bus_multi_group.updater IS '更新人';
COMMENT
ON COLUMN public.bus_multi_group.update_date IS '更新时间';
CREATE TABLE public.bus_multi_group_device
(
id int8 NOT NULL,
groud_id int8 NOT NULL,
gateway_sn varchar(64) NOT NULL,
creator int8 NULL,
create_date timestamp NULL,
updater int8 NULL,
update_date timestamp NULL
);
COMMENT
ON TABLE public.bus_multi_group_device IS '蛙跳任务组绑定的设备编号';
-- Column comments
COMMENT
ON COLUMN public.bus_multi_group_device.id IS '编号';
COMMENT
ON COLUMN public.bus_multi_group_device.groud_id IS '蛙跳组';
COMMENT
ON COLUMN public.bus_multi_group_device.gateway_sn IS '设备编号sn';
COMMENT
ON COLUMN public.bus_multi_group_device.creator IS '创建人';
COMMENT
ON COLUMN public.bus_multi_group_device.create_date IS '创建时间';
COMMENT
ON COLUMN public.bus_multi_group_device.updater IS '更新人';
COMMENT
ON COLUMN public.bus_multi_group_device.update_date IS '更新时间';