From 353739ec733528dc68c83163c3a0257950dc0c4d Mon Sep 17 00:00:00 2001 From: Ben Gilbert Date: Mon, 24 Nov 2025 15:43:48 +0000 Subject: [PATCH 1/2] add speech announcements for: flight mode changed low battery waypoint reached --- gcs/data/default_settings.json | 33 +++++++++-- gcs/src/assets/sounds/flightmodechanged.mp3 | Bin 0 -> 24192 bytes gcs/src/assets/sounds/lowbattery.mp3 | Bin 0 -> 15360 bytes gcs/src/assets/sounds/waypointreached.mp3 | Bin 0 -> 27264 bytes gcs/src/dashboard.jsx | 61 +++++++++++++++++++- gcs/src/redux/slices/droneInfoSlice.js | 9 +++ 6 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 gcs/src/assets/sounds/flightmodechanged.mp3 create mode 100644 gcs/src/assets/sounds/lowbattery.mp3 create mode 100644 gcs/src/assets/sounds/waypointreached.mp3 diff --git a/gcs/data/default_settings.json b/gcs/data/default_settings.json index f44ed0f54..db0c6ce60 100644 --- a/gcs/data/default_settings.json +++ b/gcs/data/default_settings.json @@ -9,7 +9,12 @@ "mapStyle": { "default": "hybrid", "type": "option", - "options": ["satellite", "hybrid", "streets", "outdoor"], + "options": [ + "satellite", + "hybrid", + "streets", + "outdoor" + ], "display": "Map Style" }, "autoCheckForUpdates": { @@ -21,6 +26,11 @@ "default": false, "type": "boolean", "display": "Sync Dashboard and Missions Map Viewstate" + }, + "speechAnnouncements": { + "default": false, + "type": "boolean", + "display": "Speech Announcements" } }, "Dashboard": { @@ -28,7 +38,10 @@ "description": "You'll be notified when the relative altitude of a drone exceeds this value.", "default": 120, "type": "number", - "range": [0, 100000], + "range": [ + 0, + 100000 + ], "display": "Maximum Altitude Alert", "suffix": "m", "group": "Altitude" @@ -37,16 +50,26 @@ "description": "You'll be notified when the relative altitude of a drone goes below these values.", "default": [], "type": "extendableNumber", - "range": [0, 100000], + "range": [ + 0, + 100000 + ], "display": "Minimum Altitude Alerts", "suffix": "m", "group": "Altitude" }, "batteryAlert": { "description": "You'll be notified when the battery percentage falls below these values.", - "default": [10, 20, 50], + "default": [ + 10, + 20, + 50 + ], "type": "extendableNumber", - "range": [0, 100], + "range": [ + 0, + 100 + ], "display": "Battery Alert", "suffix": "%", "group": "Battery" diff --git a/gcs/src/assets/sounds/flightmodechanged.mp3 b/gcs/src/assets/sounds/flightmodechanged.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..65c6a9ee11f80c009ccb80d9382d2db741244889 GIT binary patch literal 24192 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 literal 0 HcmV?d00001 diff --git a/gcs/src/assets/sounds/waypointreached.mp3 b/gcs/src/assets/sounds/waypointreached.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..24f8c83017feda49c4172e5aee899399e38b42eb GIT binary patch literal 27264 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 sNT7ZgSkf46gnJE-+fr_2lQHkS;c8WJEFqS! { - if (armedNotification !== "") { - armedNotification === "armed" ? playArmed() : playDisarmed() + if (!getSetting("General.speechAnnouncements")) { + return + } + switch (armedNotification) { + case "armed": + playArmed() + break + case "disarmed": + playDisarmed() + break + case "mode_change": + playFlightModeChanged() + break + case "low_battery": + playLowBattery() + break + default: + break + } + dispatch(soundPlayed()) + }, [ + armedNotification, + playArmed, + playDisarmed, + playLowBattery, + dispatch, + getSetting("General.speechAnnouncements"), + ]) + + useEffect(() => { + if (currentMission.seq > currentMissionSeqRef.current) { + if (!getSetting("General.speechAnnouncements")) { + return + } + playWaypointReached() dispatch(soundPlayed()) + currentMissionSeqRef.current = currentMission.seq } - }, [armedNotification, playArmed, playDisarmed, dispatch]) + }, [ + currentMission.seq, + playWaypointReached, + dispatch, + getSetting("General.speechAnnouncements"), + ]) // Following drone logic useEffect(() => { diff --git a/gcs/src/redux/slices/droneInfoSlice.js b/gcs/src/redux/slices/droneInfoSlice.js index db54efb43..0932eb08f 100644 --- a/gcs/src/redux/slices/droneInfoSlice.js +++ b/gcs/src/redux/slices/droneInfoSlice.js @@ -96,6 +96,7 @@ const droneInfoSlice = createSlice({ }, lastGraphResultsMessage: false, }, + lowBatteryAlerted: false, }, reducers: { setFlightSwVersion: (state, action) => { @@ -114,6 +115,10 @@ const droneInfoSlice = createSlice({ state.notificationSound = "disarmed" } state.heartbeatData.baseMode = action.payload.base_mode + + if (action.payload.custom_mode !== state.heartbeatData.customMode) { + state.notificationSound = "mode_change" + } state.heartbeatData.customMode = action.payload.custom_mode state.heartbeatData.systemStatus = action.payload.system_status }, @@ -126,6 +131,10 @@ const droneInfoSlice = createSlice({ } else { state.batteryData.push(action.payload) } + if (action.payload.battery_remaining <= 97 && !state.lowBatteryAlerted) { + state.notificationSound = "low_battery" + state.lowBatteryAlerted = true + } }, soundPlayed: (state) => { state.notificationSound = "" From 5c089189ed616c7c48a2739207cb9a1fb574e2e0 Mon Sep 17 00:00:00 2001 From: Ben Gilbert Date: Mon, 24 Nov 2025 16:31:37 +0000 Subject: [PATCH 2/2] fix test value for low battery --- gcs/src/redux/slices/droneInfoSlice.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcs/src/redux/slices/droneInfoSlice.js b/gcs/src/redux/slices/droneInfoSlice.js index 0932eb08f..cedad0191 100644 --- a/gcs/src/redux/slices/droneInfoSlice.js +++ b/gcs/src/redux/slices/droneInfoSlice.js @@ -131,7 +131,7 @@ const droneInfoSlice = createSlice({ } else { state.batteryData.push(action.payload) } - if (action.payload.battery_remaining <= 97 && !state.lowBatteryAlerted) { + if (action.payload.battery_remaining <= 20 && !state.lowBatteryAlerted) { state.notificationSound = "low_battery" state.lowBatteryAlerted = true }