feat:航线增加新的航点动作保存
This commit is contained in:
parent
0fd39cf7f3
commit
73e1deae4e
|
|
@ -158,4 +158,18 @@ public class KmlActionActuatorFuncParam {
|
||||||
|
|
||||||
@XStreamAlias("wpml:recordPointCloudOperate")
|
@XStreamAlias("wpml:recordPointCloudOperate")
|
||||||
private String recordPointCloudOperate;
|
private String recordPointCloudOperate;
|
||||||
|
|
||||||
|
// 间隔拍照参数
|
||||||
|
|
||||||
|
@XStreamAlias("wpml:photoTime")
|
||||||
|
private String photoTime;
|
||||||
|
|
||||||
|
@XStreamAlias("wpml:photoDistance")
|
||||||
|
private String photoDistance;
|
||||||
|
|
||||||
|
@XStreamAlias("wpml:photoType")
|
||||||
|
private String photoType;
|
||||||
|
|
||||||
|
@XStreamAlias("wpml:droneYaw")
|
||||||
|
private String droneYaw;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -165,6 +165,29 @@ public class WayPointUitls {
|
||||||
case 20: // 返航 (使用的是第一个航点的经纬度和高度)
|
case 20: // 返航 (使用的是第一个航点的经纬度和高度)
|
||||||
return String.format("%d\t0\t3\t20\t0\t0\t0\t0\t%s\t%s\t%d.000000\t1", index, point.getLat(), point.getLon(), point.getAlt());
|
return String.format("%d\t0\t3\t20\t0\t0\t0\t0\t%s\t%s\t%d.000000\t1", index, point.getLat(), point.getLon(), point.getAlt());
|
||||||
|
|
||||||
|
case 4000: // 飞行器偏航角
|
||||||
|
return String.format(Locale.US,
|
||||||
|
"%d\t0\t3\t531\t0\t%s\t0\t0\t0\t0\t0.000000\t1",
|
||||||
|
index, point.getDroneYaw());
|
||||||
|
|
||||||
|
case 5000: // 开始等时间隔拍照
|
||||||
|
return String.format(Locale.US,
|
||||||
|
"%d\t0\t3\t205\t%s\t0\t%s\t0\t0\t0\t0.000000\t1",
|
||||||
|
index, point.getPhotoTime(), point.getPhotoType());
|
||||||
|
|
||||||
|
case 6000: // 开始等间距隔拍照
|
||||||
|
return String.format(Locale.US,
|
||||||
|
"%d\t0\t3\t205\t%s\t0\t%s\t0\t0\t0\t0.000000\t1",
|
||||||
|
index, point.getPhotoDistance(), point.getPhotoType());
|
||||||
|
|
||||||
|
case 7000: // 结束间隔拍照
|
||||||
|
return String.format(Locale.US,
|
||||||
|
"%d\t0\t3\t2501\t0\t0\t0\t0\t0\t0\t0.000000\t1", index);
|
||||||
|
|
||||||
|
case 8000: // 全景拍照
|
||||||
|
return String.format(Locale.US,
|
||||||
|
"%d\t0\t3\t2501\t0\t0\t0\t0\t0\t0\t0.000000\t1", index);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("未知命令: " + point.getCommand());
|
throw new IllegalArgumentException("未知命令: " + point.getCommand());
|
||||||
}
|
}
|
||||||
|
|
@ -274,6 +297,66 @@ public class WayPointUitls {
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "panoPhoto":
|
||||||
|
// 全景拍照(命令8000)
|
||||||
|
linePoints.add(buildPoint(
|
||||||
|
8000,
|
||||||
|
"0", "0", 0,
|
||||||
|
"0", "0", "0", "0",
|
||||||
|
0, 0, 0
|
||||||
|
));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "startTimeIntervalPhoto":
|
||||||
|
// 开始等时间隔拍照(命令5000)
|
||||||
|
linePoints.add(buildPoint(
|
||||||
|
5000,
|
||||||
|
"0", "0", 0,
|
||||||
|
"0", "0", "0", "0",
|
||||||
|
0, 0, 0,
|
||||||
|
actionActuatorFuncParam.getPhotoTime(),
|
||||||
|
null,
|
||||||
|
actionActuatorFuncParam.getPhotoType(),
|
||||||
|
null
|
||||||
|
));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "startDistanceIntervalPhoto":
|
||||||
|
// 开始等间距隔拍照(命令6000)
|
||||||
|
linePoints.add(buildPoint(
|
||||||
|
6000,
|
||||||
|
"0", "0", 0,
|
||||||
|
"0", "0", "0", "0",
|
||||||
|
0, 0, 0,
|
||||||
|
null,
|
||||||
|
actionActuatorFuncParam.getPhotoDistance(),
|
||||||
|
actionActuatorFuncParam.getPhotoType(),
|
||||||
|
null
|
||||||
|
));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "stopIntervalPhoto":
|
||||||
|
// 结束间隔拍照(命令7000)
|
||||||
|
linePoints.add(buildPoint(
|
||||||
|
7000,
|
||||||
|
"0", "0", 0,
|
||||||
|
"0", "0", "0", "0",
|
||||||
|
0, 0, 0
|
||||||
|
));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "aircraftYaw":
|
||||||
|
// 飞行器偏航角(命令4000)
|
||||||
|
linePoints.add(buildPoint(
|
||||||
|
4000,
|
||||||
|
"0", "0", 0,
|
||||||
|
"0", "0", "0", "0",
|
||||||
|
0, 0, 0,
|
||||||
|
null, null, null,
|
||||||
|
actionActuatorFuncParam.getDroneYaw()
|
||||||
|
));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log.error("未知动作类型: {}", actionType);
|
log.error("未知动作类型: {}", actionType);
|
||||||
}
|
}
|
||||||
|
|
@ -299,5 +382,19 @@ public class WayPointUitls {
|
||||||
return point;
|
return point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//构建waypoint航点(带间隔拍照参数)
|
||||||
|
public static AirLinePointDTO buildPoint(int command, String lat, String lon, int alt,
|
||||||
|
String loiterTime, String cameraPitch, String cameraRoll, String cameraYaw,
|
||||||
|
int sessionControl, int zoomAbsolute, int rotateDirection,
|
||||||
|
String photoTime, String photoDistance, String photoType, String droneYaw) {
|
||||||
|
AirLinePointDTO point = buildPoint(command, lat, lon, alt, loiterTime, cameraPitch, cameraRoll, cameraYaw,
|
||||||
|
sessionControl, zoomAbsolute, rotateDirection);
|
||||||
|
point.setPhotoTime(photoTime);
|
||||||
|
point.setPhotoDistance(photoDistance);
|
||||||
|
point.setPhotoType(photoType);
|
||||||
|
point.setDroneYaw(droneYaw);
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -75,4 +75,24 @@ public class AirLinePointDTO implements Serializable {
|
||||||
* 转动方向 -1逆时针 1相对机场方向 (硬件定义的)
|
* 转动方向 -1逆时针 1相对机场方向 (硬件定义的)
|
||||||
*/
|
*/
|
||||||
private Integer rotateDirection;
|
private Integer rotateDirection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 间隔拍照时间(秒)- 命令5000
|
||||||
|
*/
|
||||||
|
private String photoTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 间隔拍照距离(米)- 命令6000
|
||||||
|
*/
|
||||||
|
private String photoDistance;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 照片类型(数组1,2,3)- 命令5000/6000
|
||||||
|
*/
|
||||||
|
private String photoType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 飞行器偏航角 - 命令4000
|
||||||
|
*/
|
||||||
|
private String droneYaw;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue