Commit Graph

150 Commits

Author SHA1 Message Date
Peter Barker
cc121b5b6d AC_Fence: remove @Values from param metadata where @Bitmask exists 2021-07-04 08:19:10 +10:00
Peter Barker
76408c77dd AC_Fence: provide compatability with bad integer-stored radii 2021-06-06 11:41:30 +10:00
Peter Barker
e3db030d7a AC_Fence: load and store fence radii in floats
These were simply being cast down to integers
2021-06-06 11:41:30 +10:00
Hwurzburg
faf4993436 AP_Fence: add pre-arm check for fence enabled but none selected 2021-05-25 12:36:21 +10:00
Hwurzburg
6fbf2d227c AC_Fence: Correct Rover metadata 2021-04-27 09:31:09 +09:00
Randy Mackay
5b0f107631 AC_Fence: remove alt from TYPE param desc for Rover 2021-04-21 11:35:48 +10:00
chobitsfan
73a3b5f832 AC_Fence: remove unused declaration 2021-03-24 08:50:48 +11:00
James O'Shannessy
43e06e9040 AC_Fence: Fix int32_t overflow with large longitude values 2021-03-05 14:52:46 +11:00
James O'Shannessy
8ef68c8fb0 AC_Fence: Send text to gcs when fence is auto-enabled 2021-03-05 14:52:46 +11:00
James O'Shannessy
b4bf41c6f9 AC_Fence: Adjustments to default parameters for addition to plane 2021-03-05 14:52:46 +11:00
James O'Shannessy
c316711351 ArduPlane: Add conversion from ArduPlane geofence param to AC_Fence param 2021-03-05 14:52:46 +11:00
James O'Shannessy
254c28f142 AC_Fence: Improve auto enable documentation 2021-03-05 14:52:46 +11:00
James O'Shannessy
b6d29d746b AC_Fence: Add common auto enable and auto disable 2021-03-05 14:52:46 +11:00
James O'Shannessy
e4f1e26b5c AC_Fence: Disable fence floor when disabling the rest of the fence 2021-03-05 14:52:46 +11:00
Steven Josefs
c783410494 AC_Fence: adjusted AP_GROUPINFO to contain all copters 2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar Do Carmo Lucas
22bdc3e54c AC_Fence: extend pre-arm checks
Fix comments
2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
2e422f249a AC_Fence: small comment improvements. Do not call the same function four times 2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
15e95be7d7 AC_Fence: do not delete the FENCE_ENABLE parameter. It would confuse many users.
Talked to Randy about this. The consensus was not to delete the parameter
2021-03-05 14:52:46 +11:00
James O'Shannessy
783a4b7965 AC_Fence: Change logic to fence enable and sys_status reporting 2021-03-05 14:52:46 +11:00
James O'Shannessy
87b66b4b49 AC_Fence: Add parameters from Geofence to AC_Fence
AC_Fence: Add fence floor breach checks and calculations

AC_Fence: Add event logging to enable/disable of fence floor

AC_Fence: Adjust sys_status reporting to look at total fence count

AC_Fence: Make retrieving of the return point accessible

AC_Fence: Check whether fence is enabled or autoenable is set for arming checks

Checks whether the fence is currently enabled OR if the fence is intended to be enabled automatically.
These checks are used to find out enabled fences, or prearm checks
2021-03-05 14:52:46 +11:00
James O'Shannessy
f6231db618 AC_Fence: Add breach calculation variant to use LLA
Adds a parameter to make selection between vector pos_cm from origin and lat/lng.
2021-03-04 10:31:58 +11:00
murata
3824277d11 AC_Fence: Add Smart RTL or LAND to the fence action 2021-03-03 07:59:03 +09:00
Peter Barker
a0172fd2ca AC_Fence: emit a FENCE_STATUS message if we newly-breach the fences
This should resolve a problem in autotest where we don't detect the
fence as being breached as ArduPilot never announces the fact it has
breached - it just changes mode to RTL but the interval on the
FENCE_STATUS message never aligns with the time the vehicle is breached.
2021-02-23 08:28:02 +09:00
Patrick José Pereira
345fe1a9e4 AC_Fence: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Peter Barker
c787231435 AC_Fence: remove timeout for waiting on fence semaphore, make nonblocking
Also move where we indicate we've attempted a load.
2020-11-11 18:46:22 +09:00
Peter Barker
53553c7c71 AC_Fence: remove dead and misleading assignment
This is never used again.  Presumably this was factored out of something
else where it might have mattered.
2020-08-06 17:02:12 +10:00
Rishabh
85692312ac AC_Fence: Add Pre-Arm check for margin < radius 2020-08-05 15:37:04 +09:00
murata
b12fcff89a AC_Fence: Matching Message Style 2020-07-04 22:55:35 +10:00
Peter Barker
799c538c3e AC_Fence: ALT_MAX is Copter-and-Sub only 2020-06-16 11:21:47 +10:00
Rishabh
b3a2b360e6 AC_Fence: clear breach if breached fence is not enabled 2020-06-16 08:27:19 +09:00
Peter Barker
973b103a4a AC_Fence: write log event when fence enabled or disabled 2020-06-09 10:52:19 +10:00
Peter Barker
069bd04bdc AC_Fence: create and use INTERNAL_ERROR macro so we get line numbers 2020-04-30 13:21:36 +10:00
Peter Barker
e545a429a0 AC_Fence: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
Tatsuya Yamaguchi
5688031f02 AC_Fence: add the description of FENCE_ACTION in Rover 2020-02-05 14:58:56 +09:00
Randy Mackay
9e51731bae AC_Fence: turn off debug msg re memory allocation 2019-12-10 08:51:19 +11:00
Randy Mackay
7c034990b5 AC_Fence: relax sys-status healthy reporting 2019-11-11 07:55:50 +08:00
Peter Barker
714a3e2462 AC_Fence: support for multiple polygon fences
AC_Fence: add interface for retrieving exclusion polygons

AC_Fence: add interface to get exlusion polygons to polyfence loader

AC_Fence: add suport for inclusion circles

AC_Fence: add option for compiling-out FENCE_POINT protocol support

AC_Fence: get_exclusion_polygon and get_boundary_points set num_points to zero on failure

AC_Fence: use Debug(...) to hide debug messages

AC_PolyFence_loader: add methods to retrieve all inclusion zones

AC_PolyFence_loader: valid simply returns true if a polygon boundary can be returned

AC_Fence: add get_exclusion_circle

AC_Fence: add get_exclusion_circle_update_ms accessor

AC_Fence: PolyFence_loader gets inclusion circle accessors

AC_PolyFence_loader: add and use semaphore to protect loaded fence

AC_Fence: move fence breach check below fence type checks

This allows us to provide more information to the user about why they
are breached.

For example, if the radius is negative you are considered in breach of
it - but we'd tell you you were breached, not that your radius was
invalid

AC_Fence: clear the fence if we discover the user has set the fence count to zero
2019-09-28 07:58:48 +09:00
Peter Barker
ff37590776 AC_Fence: move polygon points into AC_Fence_Polygon 2019-09-28 07:58:48 +09:00
Peter Barker
a5ec64fc99 AC_Fence: tidy get_breach_distance
The polygon fence will soon be able to supply a breach distance -
prepare for that.
2019-08-08 16:47:41 +09:00
Peter Barker
6a241cc3e9 AC_Fence: remove pointless sanity check 2019-08-08 16:47:41 +09:00
Pierre Kancir
bf74cb4e99 AC_Fence: pass mavlink_message_t by const reference 2019-07-16 20:51:42 +10:00
Randy Mackay
beb9ecbdcb AC_Fence: add get_boundary_update_ms
this allows callers to detect changes in the underlying polygon fence
2019-06-11 13:13:22 +09:00
Randy Mackay
0f6e61bc33 AC_Fence: add is_polygon_valid accessor 2019-06-11 13:13:22 +09:00
Peter Barker
062ee71135 AC_Fence: simplify fence loading
There's only one caller to this, who didn't force loading - so remove
the unused parameter.

Also remove the _boundary_loaded boolean; it was only set to true in one
place - just before the sole caller called the function!
2019-05-30 16:03:58 +09:00
Peter Barker
2822c635ec AC_Fence: correct get_boundary_points to account for closing point
Also rename from get_polygon_points
2019-05-29 15:34:02 +10:00
Pierre Kancir
4dbac3de60 GCS_Common: remove mavlink send_buf usage 2019-04-23 09:41:00 +10:00
Pierre Kancir
e4987f17b9 AC_Fence: use get_distance_NE instead of location_diff 2019-04-08 08:00:52 -07:00
Peter Barker
3629273959 AC_Fence: use enum class for AltFrame enumeration 2019-03-19 10:31:18 +11:00
Michael du Breuil
281d3b1189 AC_Fence: check the return value of fetching the EKF origin 2019-03-12 08:27:42 +09:00
Peter Barker
8991fd8fcf AC_Fence: clear breaches if boundary invalid etc 2019-03-08 08:57:27 +09:00