1、阿罗斯机库蛙跳
This commit is contained in:
parent
762fdf1d7b
commit
6d9bd5a7ca
|
|
@ -1,6 +1,8 @@
|
||||||
package com.multictrl.modules.business.dto.flight;
|
package com.multictrl.modules.business.dto.flight;
|
||||||
|
|
||||||
|
import com.multictrl.modules.business.dto.multi.PrivateMultiFlightBindDockInfo;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import java.util.List;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
@ -19,6 +21,7 @@ import lombok.NoArgsConstructor;
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class FlightTaskPrepare {
|
public class FlightTaskPrepare {
|
||||||
|
|
||||||
//计划 ID
|
//计划 ID
|
||||||
private String flight_id;
|
private String flight_id;
|
||||||
//开始执行时间
|
//开始执行时间
|
||||||
|
|
@ -53,10 +56,7 @@ public class FlightTaskPrepare {
|
||||||
private int rth_altitude;
|
private int rth_altitude;
|
||||||
//返航高度模式
|
//返航高度模式
|
||||||
//{"0":"智能高度","1":"设定高度"}
|
//{"0":"智能高度","1":"设定高度"}
|
||||||
/// 智能返航模式下,飞行器将自动规划最佳返航高度。
|
/// 智能返航模式下,飞行器将自动规划最佳返航高度。 大疆机场当前不支持设置返航高度模式,只能选择'设定高度'模式。 当环境,光线不满足视觉系统要求时(譬如傍晚阳光直射、夜间弱光无光), 飞行器将使用您设定的返航高度进行直线返航
|
||||||
/// 大疆机场当前不支持设置返航高度模式,只能选择'设定高度'模式。
|
|
||||||
/// 当环境,光线不满足视觉系统要求时(譬如傍晚阳光直射、夜间弱光无光),
|
|
||||||
/// 飞行器将使用您设定的返航高度进行直线返航
|
|
||||||
private int rth_mode;
|
private int rth_mode;
|
||||||
//遥控器失控动作
|
//遥控器失控动作
|
||||||
//{"0":"返航","1":"悬停","2":"降落"}
|
//{"0":"返航","1":"悬停","2":"降落"}
|
||||||
|
|
@ -86,10 +86,14 @@ public class FlightTaskPrepare {
|
||||||
// 如果不一致则拉取文件更新,如果一致则不处理
|
// 如果不一致则拉取文件更新,如果一致则不处理
|
||||||
private int flight_safety_advance_check;
|
private int flight_safety_advance_check;
|
||||||
|
|
||||||
|
|
||||||
|
private List<PrivateMultiFlightBindDockInfo> private_multi_flight_bind_dock_info;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class BreakPoint {
|
public static class BreakPoint {
|
||||||
|
|
||||||
//断点序号
|
//断点序号
|
||||||
@Schema(description = "断点序号")
|
@Schema(description = "断点序号")
|
||||||
private int index;
|
private int index;
|
||||||
|
|
@ -110,6 +114,7 @@ public class FlightTaskPrepare {
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class ExecutableConditions {
|
public static class ExecutableConditions {
|
||||||
|
|
||||||
//存储容量
|
//存储容量
|
||||||
//可执行任务的机场或飞行器最低存储容量,机场或飞行器存储容量不满足 storage_capacity 时,任务执行失败。
|
//可执行任务的机场或飞行器最低存储容量,机场或飞行器存储容量不满足 storage_capacity 时,任务执行失败。
|
||||||
private int storage_capacity;
|
private int storage_capacity;
|
||||||
|
|
@ -119,6 +124,7 @@ public class FlightTaskPrepare {
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class FileInfo {
|
public static class FileInfo {
|
||||||
|
|
||||||
//文件 URL
|
//文件 URL
|
||||||
private String url;
|
private String url;
|
||||||
//文件签名 文件内容 MD5 签名
|
//文件签名 文件内容 MD5 签名
|
||||||
|
|
@ -130,6 +136,7 @@ public class FlightTaskPrepare {
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class ReadyConditions {
|
public static class ReadyConditions {
|
||||||
|
|
||||||
//电池容量
|
//电池容量
|
||||||
//可执行任务的飞行器电池电量百分比阈值,任务开始执行时的飞行器电量必须大于 battery_capacity。
|
//可执行任务的飞行器电池电量百分比阈值,任务开始执行时的飞行器电量必须大于 battery_capacity。
|
||||||
private int battery_capacity;
|
private int battery_capacity;
|
||||||
|
|
@ -145,6 +152,7 @@ public class FlightTaskPrepare {
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class SimulateMission {
|
public static class SimulateMission {
|
||||||
|
|
||||||
//是否开启模拟器任务
|
//是否开启模拟器任务
|
||||||
//{"0":"不开启","1":"开启"}
|
//{"0":"不开启","1":"开启"}
|
||||||
//当次任务打开或关闭模拟器
|
//当次任务打开或关闭模拟器
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,7 @@ public class MultiServiceImpl implements MultiService {
|
||||||
flightExecute.setPrivateMultiFlightBindDockInfos(privateMultiFlightBindDockInfos);
|
flightExecute.setPrivateMultiFlightBindDockInfos(privateMultiFlightBindDockInfos);
|
||||||
|
|
||||||
log.info("privateMultiDockFlightTaskOutbound-> 下发航线给妙算 flightExecute:{}", flightExecute);
|
log.info("privateMultiDockFlightTaskOutbound-> 下发航线给妙算 flightExecute:{}", flightExecute);
|
||||||
return routeFlightService.flightExecute(multiTaskDTO.getMiaoSuan().getDockSn(), flightExecute);
|
return routeFlightService.flightExecute(multiTaskDTO.getMiaoSuan().getDockSn(), flightExecute, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ public class RouteFlightServiceImpl implements RouteFlightService {
|
||||||
* multiFlightBindDockInfos aros机场蛙跳模式参数,把N个参与到蛙跳的的机场信息给到妙算,返航时,自动计算离哪个机库位置近,就降落到哪个机库
|
* multiFlightBindDockInfos aros机场蛙跳模式参数,把N个参与到蛙跳的的机场信息给到妙算,返航时,自动计算离哪个机库位置近,就降落到哪个机库
|
||||||
*/
|
*/
|
||||||
@Override
|
@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());
|
ReentrantLock lock = cacheLock.computeIfAbsent(dockSn, k -> new ReentrantLock());
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
|
|
@ -129,7 +129,9 @@ public class RouteFlightServiceImpl implements RouteFlightService {
|
||||||
Utils.sleep(1000);
|
Utils.sleep(1000);
|
||||||
String resultMsg = djiBaseService.executeAndReturnResult(dockSn, "flighttask_execute",
|
String resultMsg = djiBaseService.executeAndReturnResult(dockSn, "flighttask_execute",
|
||||||
new JSONObject().set("flight_id", taskId));
|
new JSONObject().set("flight_id", taskId));
|
||||||
flightTaskService.addRouteTask(taskId, dockSn, route.getId());
|
if (isRecord) {
|
||||||
|
flightTaskService.addRouteTask(taskId, dockSn, route.getId());
|
||||||
|
}
|
||||||
return resultMsg;
|
return resultMsg;
|
||||||
} finally {
|
} finally {
|
||||||
Utils.sleep(2000);
|
Utils.sleep(2000);
|
||||||
|
|
|
||||||
|
|
@ -2144,3 +2144,76 @@ INSERT INTO "public"."sys_dict_data" ("id", "dict_type_id", "dict_label", "dict_
|
||||||
VALUES (2060253516358848514, 2060253239434121218, 'Ars550', 'Ars550', '', 0, 1067246875800000001,
|
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');
|
'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 '更新时间';
|
||||||
Loading…
Reference in New Issue