From 05975c6dae57ea48f8c4df2499e9404fc712520c Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Mon, 22 Jan 2024 13:06:30 +1100 Subject: [PATCH] fieldcheck: adjust required fence action based on vehicle type this was enforcing a non-existant fence action on Plane... --- MAVProxy/modules/mavproxy_fieldcheck/__init__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/MAVProxy/modules/mavproxy_fieldcheck/__init__.py b/MAVProxy/modules/mavproxy_fieldcheck/__init__.py index a2662178ae..46154510f1 100755 --- a/MAVProxy/modules/mavproxy_fieldcheck/__init__.py +++ b/MAVProxy/modules/mavproxy_fieldcheck/__init__.py @@ -109,13 +109,19 @@ def whinge(self, message): def check_parameters(self, fix=False): '''check key parameters''' want_values = { - "FENCE_ACTION": 4, + "FENCE_ENABLE": 1, + "FENCE_ACTION": 1, # 4 is break-or-land on Copter! "FENCE_ALT_MAX": self.fc_settings.param_fence_maxalt, "THR_FAILSAFE": 1, "FS_SHORT_ACTN": 0, "FS_LONG_ACTN": 1, } + if self.vehicle_type == mavutil.mavlink.MAV_TYPE_FIXED_WING: + want_values["FENCE_ACTION"] = 1 # RTL + elif self.vehicle_type == mavutil.mavlink.MAV_TYPE_QUADROTOR: + want_values["FENCE_ACTION"] = 4 # Brake or RTL + ret = True for key in want_values.keys(): want = want_values[key] @@ -330,7 +336,9 @@ def check(self): def mavlink_packet(self, m): '''handle an incoming mavlink packet''' if not self.done_heartbeat_check: - if self.master.messages.get('HEARTBEAT') is not None: + m = self.master.messages.get('HEARTBEAT') + if m is not None: + self.vehicle_type = m.type self.check() self.done_heartbeat_check = True