package com.ard.route.util; import com.ard.route.domain.djuav.*; import com.ard.route.domain.sixhe.ArdRouteActions; import com.ard.route.domain.sixhe.ArdRouteChange; import com.ard.route.domain.sixhe.ArdRoutePoints; import java.util.ArrayList; import java.util.List; import static com.ard.route.util.ToolUtils.getDoublePoint; /** * 初始化数据 * 测试数据 */ public class InitializationUtils { // 禅思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"; /** * 初始化KMZ 默认数据 */ public UavRouteReq initialization(UavRouteReq uavRouteReq){ uavRouteReq.setTemplateType("waypoint"); // 起始点默认航线第一个点 if (uavRouteReq.getTakeOffRefPoint().isEmpty()){ uavRouteReq.setTakeOffRefPoint( uavRouteReq.getRoutePointList().get(0).getLatitude() + "," + uavRouteReq.getRoutePointList().get(0).getLongitude() + "," + "0"); } //uavRouteReq.setDroneType(89); uavRouteReq.setSubDroneType(0); uavRouteReq.setPayloadType(43); uavRouteReq.setPayloadPosition(0); uavRouteReq.setImageFormat("wide"); uavRouteReq.setFinishAction("goHome"); uavRouteReq.setExitOnRcLostAction("goBack"); //uavRouteReq.setGlobalHeight(100.0); //uavRouteReq.setAutoFlightSpeed(5.0); WaypointHeadingReq waypointHeadingReq = new WaypointHeadingReq(); waypointHeadingReq.setWaypointHeadingMode("followWayline"); uavRouteReq.setWaypointHeadingReq(waypointHeadingReq); WaypointTurnReq waypointTurnReq = new WaypointTurnReq(); if (uavRouteReq.getGlobalWaypointTurnMode() != null){ waypointTurnReq.setWaypointTurnMode(uavRouteReq.getGlobalWaypointTurnMode()); }else { waypointTurnReq.setWaypointTurnMode(WAYPOINT_TURN_MODE_DEFAULT); } uavRouteReq.setWaypointTurnReq(waypointTurnReq); uavRouteReq.setGimbalPitchMode("usePointSetting"); // 变焦数值加工 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 void buildZoom(UavRouteReq uavRouteReq){ for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) { if (!routePointReq.getActionGroupList().isEmpty()){ for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) { for (PointActionReq action : actionGroupReq.getActions()) { if (action.getZoom() != null){ action.setZoom(multiple_23(action.getZoom())); //action.setZoom(multiple_6(action.getZoom())); } } } } } } 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; } /** * 初始化数据 */ 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 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 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 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 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 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); } // private ArdRoutePoints buildArdRoutePoints(){ // ArdRoutePoints ardRoutePoints1 = new ArdRoutePoints(); // ardRoutePoints1.setDampingDistance(0); // ardRoutePoints1.setFlightPathMode(1); // ardRoutePoints1.setGroupIndex(0); // ardRoutePoints1.setHeading(0); // ardRoutePoints1.setHeadingMode(0); // ardRoutePoints1.setHeight(50); // ardRoutePoints1.setInterestIndex(0); // ardRoutePoints1.setLat(31.11339916); // ardRoutePoints1.setLon(103.75851462); // ardRoutePoints1.setSafeGohomeFlag(0); // ardRoutePoints1.setSpeed(8); // // // } // private ArdRouteActions buildArdRouteActions(){ // ArdRouteActions ardRouteActions0 = new ArdRouteActions(); // ardRouteActions0.setParam(10); // ardRouteActions0.setSpeakInfo(""); // ardRouteActions0.setType(1); // ardRouteActions0.setWaitTime(2); // ArdRouteActions ardRouteActions1 = new ArdRouteActions(); // ardRouteActions1.setParam(10); // ardRouteActions1.setSpeakInfo(""); // ardRouteActions1.setType(1); // ardRouteActions1.setWaitTime(2); // ArdRouteActions ardRouteActions2 = new ArdRouteActions(); // ardRouteActions2.setParam(10); // ardRouteActions2.setSpeakInfo(""); // ardRouteActions2.setType(1); // ardRouteActions2.setWaitTime(2); // } }