From 641f3b5bc074c91418a80d83f5412dd488eeb9a9 Mon Sep 17 00:00:00 2001 From: Arnaud Taffanel <arnaud@bitcraze.io> Date: Tue, 16 Oct 2018 14:23:45 +0200 Subject: [PATCH] Closes #356: Add support for flow V2 and zranger V2 --- src/cfclient/ui/tabs/FlightTab.py | 11 +++++++++++ src/cfclient/utils/input/__init__.py | 12 ++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/cfclient/ui/tabs/FlightTab.py b/src/cfclient/ui/tabs/FlightTab.py index 9dc06b8..492a815 100644 --- a/src/cfclient/ui/tabs/FlightTab.py +++ b/src/cfclient/ui/tabs/FlightTab.py @@ -619,10 +619,21 @@ class FlightTab(Tab, flight_tab_class): if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x09): heightHoldPossible = True + self.helper.inputDeviceReader.set_hover_max_height(1.0) + + if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0E): + heightHoldPossible = True + self.helper.inputDeviceReader.set_hover_max_height(2.0) if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0A): heightHoldPossible = True hoverPossible = True + self.helper.inputDeviceReader.set_hover_max_height(1.0) + + if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0F): + heightHoldPossible = True + hoverPossible = True + self.helper.inputDeviceReader.set_hover_max_height(2.0) if not heightHoldPossible: self._assist_mode_combo.model().item(2).setEnabled(False) diff --git a/src/cfclient/utils/input/__init__.py b/src/cfclient/utils/input/__init__.py index 20e6a15..ec3d329 100644 --- a/src/cfclient/utils/input/__init__.py +++ b/src/cfclient/utils/input/__init__.py @@ -97,6 +97,7 @@ class JoystickReader(object): self.thrust_slew_enabled = False self.thrust_slew_limit = 0 self.has_pressure_sensor = False + self._hover_max_height = MAX_TARGET_HEIGHT self.max_rp_angle = 0 self.max_yaw_rate = 0 @@ -187,6 +188,9 @@ class JoystickReader(object): return d return None + def set_hover_max_height(self, height): + self._hover_max_height = height + def set_alt_hold_available(self, available): """Set if altitude hold is available or not (depending on HW)""" self.has_pressure_sensor = available @@ -458,8 +462,8 @@ class JoystickReader(object): # Integrate velosity setpoint self._target_height += vz * INPUT_READ_PERIOD # Cap target height - if self._target_height > MAX_TARGET_HEIGHT: - self._target_height = MAX_TARGET_HEIGHT + if self._target_height > self._hover_max_height: + self._target_height = self._hover_max_height if self._target_height < MIN_HOVER_HEIGHT: self._target_height = MIN_HOVER_HEIGHT @@ -495,8 +499,8 @@ class JoystickReader(object): # Integrate velosity setpoint self._target_height += vz * INPUT_READ_PERIOD # Cap target height - if self._target_height > MAX_TARGET_HEIGHT: - self._target_height = MAX_TARGET_HEIGHT + if self._target_height > self._hover_max_height: + self._target_height = self._hover_max_height if self._target_height < MIN_TARGET_HEIGHT: self._target_height = MIN_TARGET_HEIGHT self.heighthold_input_updated.call(roll, -pitch, -- GitLab