aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/geofence.h
diff options
context:
space:
mode:
authorDaniel Agar <daniel@agar.ca>2015-02-22 23:04:23 -0500
committerDaniel Agar <daniel@agar.ca>2015-04-13 22:22:19 -0400
commit25dfd84b40177d40a5848f6c549f5d326f670bee (patch)
tree2728c49f18a6fa723179357b8ca3a1ce7e12637f /src/modules/navigator/geofence.h
parent3c36a615692d746996e4d32a97e8e24285330913 (diff)
downloadpx4-firmware-25dfd84b40177d40a5848f6c549f5d326f670bee.tar.gz
px4-firmware-25dfd84b40177d40a5848f6c549f5d326f670bee.tar.bz2
px4-firmware-25dfd84b40177d40a5848f6c549f5d326f670bee.zip
Geofence max horizontal and vertical distance
-changes GF_ON to GF_MODE -adds GF_MAX_HOR_DIST and GF_MAX_VER_DIST params
Diffstat (limited to 'src/modules/navigator/geofence.h')
-rw-r--r--src/modules/navigator/geofence.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/navigator/geofence.h b/src/modules/navigator/geofence.h
index 37a41b68a..effce9e97 100644
--- a/src/modules/navigator/geofence.h
+++ b/src/modules/navigator/geofence.h
@@ -45,6 +45,7 @@
#include <uORB/topics/vehicle_global_position.h>
#include <uORB/topics/vehicle_gps_position.h>
#include <uORB/topics/sensor_combined.h>
+#include <uORB/topics/home_position.h>
#include <controllib/blocks.hpp>
#include <controllib/block/BlockParam.hpp>
@@ -76,7 +77,9 @@ public:
* @return true: system is inside fence, false: system is outside fence
*/
bool inside(const struct vehicle_global_position_s &global_position,
- const struct vehicle_gps_position_s &gps_position, float baro_altitude_amsl);
+ const struct vehicle_gps_position_s &gps_position, float baro_altitude_amsl,
+ const struct home_position_s home_pos, bool home_position_set);
+
bool inside_polygon(double lat, double lon, float altitude);
int clearDm();
@@ -103,16 +106,21 @@ public:
private:
orb_advert_t _fence_pub; /**< publish fence topic */
+ home_position_s _home_pos;
+ bool _home_pos_set;
+
float _altitude_min;
float _altitude_max;
unsigned _verticesCount;
/* Params */
- control::BlockParamInt _param_geofence_on;
+ control::BlockParamInt _param_geofence_mode;
control::BlockParamInt _param_altitude_mode;
control::BlockParamInt _param_source;
control::BlockParamInt _param_counter_threshold;
+ control::BlockParamInt _param_max_hor_distance;
+ control::BlockParamInt _param_max_ver_distance;
uint8_t _outside_counter;