From 145e705946adf1e47512f2450e8bdd42662751e6 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Sat, 13 Dec 2025 09:38:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java | 83 +++++++++++++++++++++++++++++++----------
1 files changed, 63 insertions(+), 20 deletions(-)
diff --git a/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java b/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
index 7a34b79..8ef4f90 100644
--- a/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
+++ b/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
@@ -8,13 +8,20 @@
import java.util.ArrayList;
import java.util.List;
+import static com.ard.route.util.ToolUtils.getDoublePoint;
+
/**
* 初始化数据
* 测试数据
*/
public class InitializationUtils {
- private static final Double CHANSI_H20 = 23.76237623;
+ // 禅思H20T 公倍数
+ private static final Double CHANSI_H20T = 23.76237623;
+
+ // 禅思H20T 焦距值
+ private static final Double CHANSI_H20_FOCUS = 6.83;
+
private static final String WAYPOINT_TURN_MODE_DEFAULT = "toPointAndStopWithDiscontinuityCurvature";
/**
@@ -44,28 +51,78 @@
if (uavRouteReq.getGlobalWaypointTurnMode() != null){
waypointTurnReq.setWaypointTurnMode(uavRouteReq.getGlobalWaypointTurnMode());
}else {
- waypointTurnReq.setWaypointTurnMode("toPointAndStopWithDiscontinuityCurvature");
+ waypointTurnReq.setWaypointTurnMode(WAYPOINT_TURN_MODE_DEFAULT);
}
uavRouteReq.setWaypointTurnReq(waypointTurnReq);
uavRouteReq.setGimbalPitchMode("usePointSetting");
- //buildZoom(uavRouteReq);
+ // 变焦数值加工
+ buildZoom(uavRouteReq);
+ // 修改每个航点的高度
+ buildHeight(uavRouteReq);
+ // 动作组编号数据加工
+ buildActionGroupReq(uavRouteReq);
return uavRouteReq;
+ }
+
+ /**
+ * 构建动作组编号
+ */
+ public void buildActionGroupReq(UavRouteReq uavRouteReq){
+ int pointActionCounter = 0;
+ for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
+ if (routePointReq.getActionGroupList() != null){
+ for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
+ actionGroupReq.setActionGroupId(pointActionCounter++);
+ actionGroupReq.setActionGroupStartIndex(routePointReq.getRoutePointIndex());
+ actionGroupReq.setActionGroupEndIndex(routePointReq.getRoutePointIndex());
+ actionGroupReq.setActionTriggerType("reachPoint");
+ }
+
+ }
+ }
+ }
+
+ /**
+ * 修改每个航点的高度
+ * 根据起飞点高度减去当前航点高度
+ */
+ public void buildHeight(UavRouteReq uavRouteReq){
+ double takeOffHeight = getDoublePoint(uavRouteReq.getTakeOffRefPoint(),"alt");
+ for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
+ routePointReq.setHeight(routePointReq.getHeight() - takeOffHeight);
+ }
}
/**
* 变焦动作加工
*/
- private UavRouteReq buildZoom(UavRouteReq uavRouteReq){
+ private void buildZoom(UavRouteReq uavRouteReq){
for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
for (PointActionReq action : actionGroupReq.getActions()) {
if (action.getZoom() != null){
- action.setZoom(action.getZoom() * CHANSI_H20);
+ action.setZoom(multiple_23(action.getZoom()));
+ //action.setZoom(multiple_6(action.getZoom()));
}
}
}
}
- return uavRouteReq;
+ }
+
+ public static Double multiple_23(Double zoom){
+ return zoom * CHANSI_H20T;
+ }
+
+ public static Double multiple_6(Double zoom){
+ return zoom * CHANSI_H20_FOCUS;
+ }
+
+ public static Double divided_23(Double zoom){
+ return zoom / CHANSI_H20T;
+ }
+
+ public static Double divided_6(Double zoom){
+ return zoom / CHANSI_H20_FOCUS;
}
/**
@@ -250,18 +307,4 @@
// ardRouteActions2.setWaitTime(2);
// }
- public byte[] testParameters() {
- String data = "74 79 01 3C 44 42 4D 32 35 30 39 37 34 30 36 35 30 30 38 D1 00 10 08 01 15 00 00 70 41 1D 00 00 00 41 22 4A 09 06 9C E7 80 8B F0 59 40 11 08 98 33 BA 07 1D 3F 40 1D 00 00 F0 41 25 00 00 00 41 2A 09 08 01 15 00 00 20 41 18 02 2A 09 08 03 15 00 00 80 3F 18 02 2A 09 08 04 15 00 00 80 3F 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 55 09 F1 BC 12 50 7A F0 59 40 11 08 98 33 BA 07 1D 3F 40 1D 00 00 20 42 25 00 00 00 41 2A 09 08 09 15 00 00 A0 41 18 02 2A 09 08 06 15 00 00 20 42 18 02 2A 09 08 07 15 00 00 20 42 18 02 2A 09 08 08 15 00 00 20 42 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 3F 09 F1 BC 12 50 7A F0 59 40 11 91 92 E4 DA CC 1C 3F 40 1D 00 00 48 42 25 00 00 00 41 2A 09 08 09 15 00 00 70 41 18 02 2A 09 08 0A 15 00 00 40 40 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 34 09 06 9C E7 80 8B F0 59 40 11 91 92 E4 DA CC 1C 3F 40 1D 00 00 70 42 25 00 00 00 41 2A 09 08 02 15 00 00 80 3F 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 30 32 70 32";
- String[] hexStrings = data.split(" ");
- StringBuilder sb = new StringBuilder();
- sb.append("byte[] encodedBytes = {");
- for (int i = 0; i < hexStrings.length; i++) {
- sb.append("(byte) 0x").append(hexStrings[i]);
- if (i < hexStrings.length - 1) {
- sb.append(", ");
- }
- }
- sb.append("};");
- return sb.toString().getBytes();
- }
}
--
Gitblit v1.9.3