Commit Graph

142 Commits

Author SHA1 Message Date
Andrew Tridgell 076782f6f1 AC_Fence: remember manual disable of fence for min-alt
the automatic min-alt fence should not auto-enable based on altitude
if the fence has been manually disabled. This is needed to allow for a
manual landing by disabling the fence before descending
2024-12-11 18:58:00 +11:00
Andrew Tridgell 75655a787c AC_Fence: removed _auto_enable_mask
the _auto_enable_mask was try to make AUX function overrides disable
the FENCE_AUTOENABLE functionality. This isn't the right bevaviour,
both the aux function and the auto-enable should be edge triggered,
with last function taking effect
2024-12-11 18:58:00 +11:00
Andrew Tridgell e96a5aa547 AC_Fence: removed _curr_alt from class
this is only ever set/checked within a function
2024-12-11 18:58:00 +11:00
Andrew Tridgell 9084b48308 AC_Fence: fixed pre-arm check for polygon fences
for polygon fences we need to check if the vehicle has a position and
is inside the polygon
2024-12-11 18:58:00 +11:00
Andrew Tridgell f6726e66f8 AC_Fence: prevent a fetch R/C switch from disabling FENCE_AUTOENABLE=3
we should only add fence types to the no auto-enable mask if the
enable actually changed that type of fence. This fixes the case where
the user has both FENCE_AUTOENABLE=3 and RCn_OPTION=11. The disable
triggered by the init of the aux function was preventing the fence
from auto-enabling
2024-12-11 18:58:00 +11:00
Peter Barker 5db0eecb99 AC_Fence: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Henry Wurzburg e4fc9b0b58 AC_Fence:Add AUTOENABLE deprecation warning
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2024-08-01 09:39:41 +10:00
Henry Wurzburg 9b041be8a1 AC_Fence: correct prearm message 2024-07-31 17:01:07 +10:00
Andy Piper ccfbfddf7e AC_Fence: address minor review comments 2024-07-24 08:24:06 +10:00
Andrew Tridgell 68f2593089 AC_Fence: fixed FENCE_AUTOENABLE=2
needs to auto-enable on takeoff complete
2024-07-24 08:24:06 +10:00
Andy Piper 5bc3727145 AC_Fence: support FENCE_OPTIONS on copter 2024-07-24 08:24:06 +10:00
Andy Piper f0456f29dd AC_Fence: always disable Min Alt fence on landing
allow precise pre-arm messages
2024-07-24 08:24:06 +10:00
Andy Piper 04dd7de1ed AC_Fence: disable fences for landing by suppressing in the fence check rather than using a state machine
simplify takeoff auto-enablement
2024-07-24 08:24:06 +10:00
Andy Piper d5c6f3fe06 AC_Fence: add reset_fence_floor_enable() and use it in plane when landing is aborted 2024-07-24 08:24:06 +10:00
Peter Barker a4c7819117 AC_Fence: clear breach of disabled fence
skip breach checks if no fences
correct initialisation of _num_fences in the case of no fences in eeprom
2024-07-24 08:24:06 +10:00
Andy Piper 174d5f07bb AC_Fence: ensure fence enablement on arming is inverted on disarming
correct detection of polyfence
2024-07-24 08:24:06 +10:00
Andy Piper f0f8187c7f AC_Fence: add ability to auto-enable fence floor while doing fence checks
control copter floor fence with autoenable
autoenable floor fence with a margin
check for manual recovery only after having checked the fences
make auto-disabling for minimum altitude fence an option
output message when fence floor auto-enabled
re-use fence floor auto-enable/disable from plane
auto-disable on landing
do not update enable parameter when controlling through mavlink
make sure get_enabled_fences() actually returns enabled fences.
make current fences enabled internal state rather than persistent
implement auto options correctly and on copter
add fence names utility
use ExpandingString for constructing fence names
correctly check whether fences are enabled or not and disable min alt for landing in all auto modes
add enable_configured() for use by mavlink and rc
add events for all fence types
make sure that auto fences are no longer candidates after manual updates
add fence debug
make sure rc switch is the ultimate authority on fences
reset auto mask when enabling or disabling fencing
ensure auto-enable on arming works as intended
simplify printing fence notices
reset autofences when auot-enablement is changed
2024-07-24 08:24:06 +10:00
muramura f6d0f52876 AC_Fence: Replace with GCS_SEND_TEXT 2024-02-20 11:47:32 +11:00
Henry Wurzburg dfc1b84186 AC_Fence: fix autofence enable in takeoff mode 2024-02-13 10:45:39 +11:00
Peter Barker 78daf8911b AC_Fence: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Henry Wurzburg f02973b454 AC_Fence:expand FENCE_AUTOENABLE description 2024-01-02 10:52:45 +11:00
Mykhailo Kuznietsov 567dedf3e3 AC_Fence: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
muramura 78e9846f4e AC_Fence: Change the description to match the actual value(NFC) 2023-10-05 08:22:22 +11:00
Peter Barker 0311aea4a5 AC_Fence: allow more libraries to compile with no HAL_GCS_ENABLED 2023-09-05 22:23:51 +10:00
Andrew Tridgell a8c17873fc AC_Fence: added option bit for union of inclusion areas
this allows for treating total inclusion area as union of all
inclusion areas. This is useful for:

- circles with corridors between them
- a fence for each flying site all loaded at once
- temporary addition of an extra area to a complex fence
2023-08-01 10:40:17 +10:00
Peter Barker 3ee2d24f1c AC_Fence: clarify bit 2 in FENCE_ENABLE parameter
these aren't just polygon fences ('though they used to be)
2023-08-01 10:17:54 +10:00
Peter Barker d2315fa4d0 AC_Fence: include required GCS.h header 2022-09-27 09:26:45 +10:00
Iampete1 d066588c91 AC_Fence: always clear breaches 2022-09-12 08:57:42 +09:00
Iampete1 259e70b2b1 AC_Fence: add options param on plane 2022-08-17 17:21:30 +10:00
Iampete1 e7cb949f5f AC_Fence: plane needs larger circle backup distance 2022-08-17 17:21:30 +10:00
Iampete1 e141731146 AC_Fence: params always use set method 2022-08-03 13:43:48 +01:00
Iampete1 2fc9cf97d4 AC_Fence: defualt to AP_FENCE_ENABLED 2, 1 disables dummy methods 2022-07-27 19:04:56 +10:00
Iampete1 9dc318f0cc AC_Fence: move to config file and rename from AC_FENCE to AP_FENCE_ENABLED 2022-07-27 19:04:56 +10:00
Iampete1 fa440d532a AC_Fence: add dummy methods 2022-07-27 19:04:56 +10:00
Iampete1 6a6f3ec4e5 AC_Fence: add AC_FENCE define 2022-07-27 19:04:56 +10:00
Tatsuya Yamaguchi cb6c1a1c80 AC_Fence: Move {Plane} mark from Value to Param 2022-05-10 09:35:11 +10:00
Peter Barker a8b37d7064 AC_Fence: remove @Values from param metadata where @Bitmask exists 2021-06-23 18:37:34 +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
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 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