From a5a631566926538a6dad259194ac5e3189f1e9d0 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 21 Feb 2024 20:00:54 -0800 Subject: [PATCH 1/3] takeoff: fixing bug with flying variable being inverse --- src/components/mini-widgets/TakeoffLandCommander.vue | 4 ++-- src/libs/vehicle/ardupilot/ardupilot.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/mini-widgets/TakeoffLandCommander.vue b/src/components/mini-widgets/TakeoffLandCommander.vue index c9d7822e3..754dd1192 100644 --- a/src/components/mini-widgets/TakeoffLandCommander.vue +++ b/src/components/mini-widgets/TakeoffLandCommander.vue @@ -1,10 +1,10 @@ diff --git a/src/libs/vehicle/ardupilot/ardupilot.ts b/src/libs/vehicle/ardupilot/ardupilot.ts index fb2b340c2..acfefeca2 100644 --- a/src/libs/vehicle/ardupilot/ardupilot.ts +++ b/src/libs/vehicle/ardupilot/ardupilot.ts @@ -518,7 +518,7 @@ export abstract class ArduPilotVehicle extends Vehicle.AbstractVehicle Date: Wed, 21 Feb 2024 20:01:53 -0800 Subject: [PATCH 2/3] widget: added widget to change altitude --- src/components/MiniWidgetInstantiator.vue | 4 ++++ .../mini-widgets/ChangeAltitudeCommander.vue | 18 ++++++++++++++++++ src/types/miniWidgets.ts | 1 + 3 files changed, 23 insertions(+) create mode 100644 src/components/mini-widgets/ChangeAltitudeCommander.vue diff --git a/src/components/MiniWidgetInstantiator.vue b/src/components/MiniWidgetInstantiator.vue index 461c8e130..ba80b706c 100644 --- a/src/components/MiniWidgetInstantiator.vue +++ b/src/components/MiniWidgetInstantiator.vue @@ -2,6 +2,9 @@ + @@ -45,6 +48,7 @@ import { type MiniWidget, MiniWidgetType } from '@/types/miniWidgets' import ArmerButton from './mini-widgets/ArmerButton.vue' import BaseCommIndicator from './mini-widgets/BaseCommIndicator.vue' import BatteryIndicator from './mini-widgets/BatteryIndicator.vue' +import ChangeAltitudeCommander from './mini-widgets/ChangeAltitudeCommander.vue' import DepthIndicator from './mini-widgets/DepthIndicator.vue' import JoystickCommIndicator from './mini-widgets/JoystickCommIndicator.vue' import MiniVideoRecorder from './mini-widgets/MiniVideoRecorder.vue' diff --git a/src/components/mini-widgets/ChangeAltitudeCommander.vue b/src/components/mini-widgets/ChangeAltitudeCommander.vue new file mode 100644 index 000000000..f9ceeb8ed --- /dev/null +++ b/src/components/mini-widgets/ChangeAltitudeCommander.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/types/miniWidgets.ts b/src/types/miniWidgets.ts index 746028447..ce7124f0e 100644 --- a/src/types/miniWidgets.ts +++ b/src/types/miniWidgets.ts @@ -6,6 +6,7 @@ export enum MiniWidgetType { ArmerButton = 'ArmerButton', BaseCommIndicator = 'BaseCommIndicator', BatteryIndicator = 'BatteryIndicator', + ChangeAltitudeCommander = 'ChangeAltitudeCommander', DepthIndicator = 'DepthIndicator', RelativeAltitudeIndicator = 'RelativeAltitudeIndicator', TakeoffLandCommander = 'TakeoffLandCommander', From f0172a8d3b5410f1912bb4e9dfbba256457bd123 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 21 Feb 2024 20:07:59 -0800 Subject: [PATCH 3/3] change-alt: added functions to command change in altitude --- src/libs/vehicle/ardupilot/ardupilot.ts | 44 +++++++++++++++++++++++-- src/stores/mainVehicle.ts | 22 +++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/libs/vehicle/ardupilot/ardupilot.ts b/src/libs/vehicle/ardupilot/ardupilot.ts index acfefeca2..046057fbc 100644 --- a/src/libs/vehicle/ardupilot/ardupilot.ts +++ b/src/libs/vehicle/ardupilot/ardupilot.ts @@ -388,6 +388,44 @@ export abstract class ArduPilotVehicle extends Vehicle.AbstractVehicle extends Vehicle.AbstractVehicle extends Vehicle.AbstractVehicle { throw new Error('Takeoff cancelled by the user') } } + /** + * Change the altitude of the vehicle. + * @returns {Promise} A Promise that resolves when the altitude is changed or rejects if the action is cancelled. + */ + async function changeAlt(): Promise { + if (!mainVehicle.value) { + throw new Error('No vehicle available to change altitude.') + } + + showAltitudeSlider.value = true + + const confirmed = await slideToConfirm('Confirm Altitude Change', 'Alt Change Cmd Confirmed') + showAltitudeSlider.value = false + + if (confirmed) { + mainVehicle.value.changeAltitude(altitude.rel - altitude_setpoint.value) + } else { + console.error('Altitude change cancelled by the user') + throw new Error('Altitude change cancelled by the user') + } + } /** * Land the vehicle. @@ -463,6 +484,7 @@ export const useMainVehicleStore = defineStore('main-vehicle', () => { return { arm, takeoff, + changeAlt, land, disarm, goTo,