aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/navigator/geofence.cpp2
-rw-r--r--src/modules/navigator/geofence.h7
-rw-r--r--src/modules/navigator/mission_feasibility_checker.cpp2
3 files changed, 7 insertions, 4 deletions
diff --git a/src/modules/navigator/geofence.cpp b/src/modules/navigator/geofence.cpp
index a3805dc0f..5504239c5 100644
--- a/src/modules/navigator/geofence.cpp
+++ b/src/modules/navigator/geofence.cpp
@@ -91,6 +91,8 @@ bool Geofence::inside(const struct vehicle_global_position_s &global_position, f
bool Geofence::inside(const struct vehicle_global_position_s &global_position,
const struct vehicle_gps_position_s &gps_position,float baro_altitude_amsl) {
+ updateParams();
+
if (getAltitudeMode() == Geofence::GF_ALT_MODE_WGS84) {
if (getSource() == Geofence::GF_SOURCE_GLOBALPOS) {
return inside(global_position);
diff --git a/src/modules/navigator/geofence.h b/src/modules/navigator/geofence.h
index 65ebb0c3d..65e5b4042 100644
--- a/src/modules/navigator/geofence.h
+++ b/src/modules/navigator/geofence.h
@@ -75,11 +75,8 @@ public:
* @param craft pointer craft coordinates
* @return true: system is inside fence, false: system is outside fence
*/
- bool inside(const struct vehicle_global_position_s &global_position);
- bool inside(const struct vehicle_global_position_s &global_position, float baro_altitude_amsl);
bool inside(const struct vehicle_global_position_s &global_position,
const struct vehicle_gps_position_s &gps_position,float baro_altitude_amsl);
- bool inside(double lat, double lon, float altitude);
bool inside_polygon(double lat, double lon, float altitude);
int clearDm();
@@ -116,6 +113,10 @@ private:
control::BlockParamInt _param_counter_threshold;
uint8_t _outside_counter;
+
+ bool inside(double lat, double lon, float altitude);
+ bool inside(const struct vehicle_global_position_s &global_position);
+ bool inside(const struct vehicle_global_position_s &global_position, float baro_altitude_amsl);
};
diff --git a/src/modules/navigator/mission_feasibility_checker.cpp b/src/modules/navigator/mission_feasibility_checker.cpp
index 606521f20..937e4fa5a 100644
--- a/src/modules/navigator/mission_feasibility_checker.cpp
+++ b/src/modules/navigator/mission_feasibility_checker.cpp
@@ -109,7 +109,7 @@ bool MissionFeasibilityChecker::checkGeofence(dm_item_t dm_current, size_t nMiss
return false;
}
- if (!geofence.inside(missionitem.lat, missionitem.lon, missionitem.altitude)) {
+ if (!geofence.inside_polygon(missionitem.lat, missionitem.lon, missionitem.altitude)) {
mavlink_log_info(_mavlink_fd, "#audio: Geofence violation waypoint %d", i);
return false;
}