aboutsummaryrefslogtreecommitdiff
path: root/src/lib/geo/geo.h
diff options
context:
space:
mode:
authorJean Cyr <jcyr@dillobits.com>2013-11-03 12:40:13 -0500
committerJean Cyr <jcyr@dillobits.com>2013-11-03 12:40:13 -0500
commit1cf9f72f628c5dbdf487e464699245cab61c1750 (patch)
treede0aa6b97849d6b7c02ff72624c11e7b33b902a8 /src/lib/geo/geo.h
parent64c2165e8be17a8309594a0aeacec7f3aedee4c0 (diff)
downloadpx4-firmware-1cf9f72f628c5dbdf487e464699245cab61c1750.tar.gz
px4-firmware-1cf9f72f628c5dbdf487e464699245cab61c1750.tar.bz2
px4-firmware-1cf9f72f628c5dbdf487e464699245cab61c1750.zip
Add data manager module and fence support to navigator
- Add function to geo.c to determine if global position is inside fence - Add navigator support/commands for maintaining fence coords. - Add data manager module to support persistence fence storage. Can store other data, but only used for fence at this time. - Add unit tests for data manager
Diffstat (limited to 'src/lib/geo/geo.h')
-rw-r--r--src/lib/geo/geo.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/geo/geo.h b/src/lib/geo/geo.h
index 123ff80f1..6bce9309b 100644
--- a/src/lib/geo/geo.h
+++ b/src/lib/geo/geo.h
@@ -47,6 +47,9 @@
#pragma once
+#include "uORB/topics/fence.h"
+#include "uORB/topics/vehicle_global_position.h"
+
__BEGIN_DECLS
#include <stdbool.h>
@@ -126,4 +129,15 @@ __EXPORT float _wrap_360(float bearing);
__EXPORT float _wrap_pi(float bearing);
__EXPORT float _wrap_2pi(float bearing);
+/**
+ * Return whether craft is inside geofence.
+ *
+ * Calculate whether point is inside arbitrary polygon
+ * @param craft pointer craft coordinates
+ * @param fence pointer to array of coordinates, one per vertex. First and last vertex are assumed connected
+ * @return true: craft is inside fence, false:craft is outside fence
+ */
+__EXPORT bool inside_geofence(const struct vehicle_global_position_s *craft, const struct fence_s *fence);
+
+
__END_DECLS