mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-01 04:46:51 +08:00
[home] home mode height can be set different from security height
This commit is contained in:
@@ -55,7 +55,8 @@ max_dist_from_home CDATA #REQUIRED
|
|||||||
ground_alt CDATA #REQUIRED
|
ground_alt CDATA #REQUIRED
|
||||||
security_height CDATA #REQUIRED
|
security_height CDATA #REQUIRED
|
||||||
alt CDATA #REQUIRED
|
alt CDATA #REQUIRED
|
||||||
qfu CDATA #IMPLIED>
|
qfu CDATA #IMPLIED
|
||||||
|
home_mode_height CDATA #IMPLIED>
|
||||||
|
|
||||||
<!ATTLIST waypoints
|
<!ATTLIST waypoints
|
||||||
utm_x0 CDATA #IMPLIED
|
utm_x0 CDATA #IMPLIED
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE flight_plan SYSTEM "flight_plan.dtd">
|
<!DOCTYPE flight_plan SYSTEM "flight_plan.dtd">
|
||||||
|
|
||||||
<flight_plan alt="75" ground_alt="0" lat0="43.4622" lon0="1.2729" max_dist_from_home="1500" name="Versatile" qfu="270" security_height="25">
|
<flight_plan alt="75" ground_alt="0" lat0="43.4622" lon0="1.2729" max_dist_from_home="1500" name="Versatile" qfu="270" security_height="25" home_mode_height="50">
|
||||||
<header>
|
<header>
|
||||||
#include "subsystems/datalink/datalink.h"
|
#include "subsystems/datalink/datalink.h"
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -394,7 +394,7 @@ void nav_home(void) {
|
|||||||
/** Nominal speed */
|
/** Nominal speed */
|
||||||
nav_pitch = 0.;
|
nav_pitch = 0.;
|
||||||
v_ctl_mode = V_CTL_MODE_AUTO_ALT;
|
v_ctl_mode = V_CTL_MODE_AUTO_ALT;
|
||||||
nav_altitude = ground_alt+SECURITY_HEIGHT;
|
nav_altitude = ground_alt+HOME_MODE_HEIGHT;
|
||||||
compute_dist2_to_home();
|
compute_dist2_to_home();
|
||||||
dist2_to_wp = dist2_to_home;
|
dist2_to_wp = dist2_to_home;
|
||||||
nav_set_altitude();
|
nav_set_altitude();
|
||||||
|
|||||||
@@ -757,6 +757,9 @@ let () =
|
|||||||
and alt = ExtXml.attrib xml "alt" in
|
and alt = ExtXml.attrib xml "alt" in
|
||||||
security_height := get_float "security_height";
|
security_height := get_float "security_height";
|
||||||
ground_alt := get_float "ground_alt";
|
ground_alt := get_float "ground_alt";
|
||||||
|
let home_mode_height = try
|
||||||
|
max (get_float "home_mode_height") !security_height
|
||||||
|
with _ -> !security_height in
|
||||||
|
|
||||||
check_altitude (float_of_string alt) xml;
|
check_altitude (float_of_string alt) xml;
|
||||||
|
|
||||||
@@ -790,6 +793,7 @@ let () =
|
|||||||
Xml2h.define "GROUND_ALT_CM" (sprintf "%.0f" (100.*. !ground_alt));
|
Xml2h.define "GROUND_ALT_CM" (sprintf "%.0f" (100.*. !ground_alt));
|
||||||
Xml2h.define "SECURITY_HEIGHT" (sof !security_height);
|
Xml2h.define "SECURITY_HEIGHT" (sof !security_height);
|
||||||
Xml2h.define "SECURITY_ALT" (sof (!security_height +. !ground_alt));
|
Xml2h.define "SECURITY_ALT" (sof (!security_height +. !ground_alt));
|
||||||
|
Xml2h.define "HOME_MODE_HEIGHT" (sof home_mode_height);
|
||||||
Xml2h.define "MAX_DIST_FROM_HOME" (sof mdfh);
|
Xml2h.define "MAX_DIST_FROM_HOME" (sof mdfh);
|
||||||
|
|
||||||
let index_of_waypoints =
|
let index_of_waypoints =
|
||||||
|
|||||||
Reference in New Issue
Block a user