diff --git a/conf/flight_plans/flight_plan.dtd b/conf/flight_plans/flight_plan.dtd index 7aa9874b980..6581fe28f26 100644 --- a/conf/flight_plans/flight_plan.dtd +++ b/conf/flight_plans/flight_plan.dtd @@ -28,18 +28,17 @@ - + - - + + - @@ -188,21 +187,6 @@ nav_type CDATA #IMPLIED nav_params CDATA #IMPLIED until CDATA #IMPLIED> - - 0) ? duration : 1; nav_heli_spinup.throttle = throttle * MAX_PPRZ; +#ifdef COMMAND_ROLL + stabilization_cmd[COMMAND_ROLL] = 0; +#endif +#ifdef COMMAND_PITCH + stabilization_cmd[COMMAND_PITCH] = 0; +#endif +#ifdef COMMAND_YAW + stabilization_cmd[COMMAND_YAW] = 0; +#endif nav.throttle = 0; - nav.cmd_roll = 0; - nav.cmd_pitch = 0; - nav.cmd_yaw = 0; - nav.horizontal_mode = NAV_HORIZONTAL_MODE_ATTITUDE; + + nav.horizontal_mode = NAV_HORIZONTAL_MODE_NONE; nav.vertical_mode = NAV_VERTICAL_MODE_MANUAL; } @@ -59,11 +67,18 @@ bool nav_heli_spinup_run(void) return false; } - nav.cmd_roll = 0; - nav.cmd_pitch = 0; - nav.cmd_yaw = 0; - nav.horizontal_mode = NAV_HORIZONTAL_MODE_MANUAL; - nav.vertical_mode = NAV_VERTICAL_MODE_MANUAL; +#ifdef COMMAND_ROLL + stabilization_cmd[COMMAND_ROLL] = 0; +#endif +#ifdef COMMAND_PITCH + stabilization_cmd[COMMAND_PITCH] = 0; +#endif +#ifdef COMMAND_YAW + stabilization_cmd[COMMAND_YAW] = 0; +#endif nav.throttle = stage_time * nav_heli_spinup.throttle / nav_heli_spinup.duration; + + nav.horizontal_mode = NAV_HORIZONTAL_MODE_NONE; + nav.vertical_mode = NAV_VERTICAL_MODE_MANUAL; return true; } diff --git a/sw/tools/generators/gen_flight_plan.ml b/sw/tools/generators/gen_flight_plan.ml index f3ae8af6d4c..fdd91abc295 100644 --- a/sw/tools/generators/gen_flight_plan.ml +++ b/sw/tools/generators/gen_flight_plan.ml @@ -242,14 +242,11 @@ let pprz_throttle = fun s -> let output_vmode = fun out stage_xml wp last_wp -> let pitch = try Xml.attrib stage_xml "pitch" with _ -> "0.0" in let t = ExtXml.attrib_or_default stage_xml "nav_type" "Nav" in - if String.lowercase_ascii (Xml.tag stage_xml) <> "manual" + if pitch = "auto" then begin - if pitch = "auto" - then begin - lprintf out "%sVerticalAutoPitchMode(%s);\n" t (pprz_throttle (parsed_attrib stage_xml "throttle")) - end else begin - lprintf out "%sVerticalAutoThrottleMode(RadOfDeg(%s));\n" t (parse pitch); - end + lprintf out "%sVerticalAutoPitchMode(%s);\n" t (pprz_throttle (parsed_attrib stage_xml "throttle")) + end else begin + lprintf out "%sVerticalAutoThrottleMode(RadOfDeg(%s));\n" t (parse pitch); end; let vmode = try ExtXml.attrib stage_xml "vmode" with _ -> "alt" in @@ -335,7 +332,7 @@ let rec index_stage = fun x -> incr stage; (* To count the loop stage *) Xml.Element (Xml.tag x, Xml.attribs x@["no", soi n], l) | "return" | "goto" | "deroute" | "exit_block" | "follow" | "call" | "call_once" | "home" - | "heading" | "attitude" | "manual" | "go" | "stay" | "xyz" | "set" | "circle" | "guided" -> + | "heading" | "attitude" | "go" | "stay" | "xyz" | "set" | "circle" | "guided" -> incr stage; Xml.Element (Xml.tag x, Xml.attribs x@["no", soi !stage], Xml.children x) | "survey_rectangle" | "eight" | "oval"-> @@ -455,16 +452,6 @@ let rec print_stage = fun out index_of_waypoints x -> stage_until out x; fp_post_call out x; lprintf out "break;\n" - | "manual" -> - stage out; - fp_pre_call out x; - let t = ExtXml.attrib_or_default x "nav_type" "Nav" in - let p = try ", " ^ (Xml.attrib x "nav_params") with _ -> "" in - lprintf out "%sSetManual(%s, %s, %s%s);\n" t (parsed_attrib x "roll") (parsed_attrib x "pitch") (parsed_attrib x "yaw") p; - ignore (output_vmode out x "" ""); - stage_until out x; - fp_post_call out x; - lprintf out "break;\n" | "go" -> stage out; fp_pre_call out x;