[home] home mode height can be set different from security height

This commit is contained in:
Gautier Hattenberger
2012-09-03 11:11:11 +02:00
parent 51fb61259c
commit c42477d02d
4 changed files with 8 additions and 3 deletions
+2 -1
View File
@@ -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 -1
View File
@@ -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>
+1 -1
View File
@@ -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();
+4
View File
@@ -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 =