From ddfc889a8cc4ebe840b6e3db419f8c37660374dc Mon Sep 17 00:00:00 2001 From: legop3 Date: Thu, 1 Oct 2026 21:21:39 -0400 Subject: [PATCH 1/4] basically moving docking flows to the server instead of being in the web UI --- dist/hornverifier | Bin 1966264 -> 1966264 bytes dist/roverd | Bin 7078072 -> 7078072 bytes dist/roverd-debian-laptop | Bin 7110948 -> 7110948 bytes dist/servoverifier | Bin 1769656 -> 1769656 bytes pi/roverd/auto_charge.go | 2 +- server/src/services/commandService/index.js | 41 ++- server/src/services/dockingService/index.js | 273 ++++++++++++++++++ server/src/services/roverManager/index.js | 1 + .../services/roverManager/rosterLifecycle.js | 1 + .../services/roverManager/sensorPipeline.js | 13 + .../DriveDockAction/driveDockState.js | 6 +- .../src/components/DriveDockAction/index.jsx | 59 +--- webui/src/components/DriverVideo/index.jsx | 2 +- .../GamepadMappingSettings/constants.js | 2 +- .../ManualDockAssistOverlay/index.jsx | 31 +- .../newgen/CornerPods/BottomRightPod.jsx | 8 +- .../HudOverlays/newgen/DockingHud/index.jsx | 78 ++--- .../components/MobileControls/AuxColumn.jsx | 7 +- .../MobileControls/MovementColumn.jsx | 28 +- webui/src/components/SettingsPanel/index.jsx | 4 +- webui/src/context/telemetryViews.js | 8 + webui/src/controls/ControlContext.jsx | 146 +++------- webui/src/controls/commandPipeline.js | 53 +--- webui/src/controls/constants.js | 24 -- webui/src/controls/controlMath.js | 4 - webui/src/controls/controlReducer.js | 24 +- .../controls/inputs/GamepadInputManager.jsx | 23 +- .../controls/inputs/KeyboardInputManager.jsx | 23 +- .../manualDockAssist/useManualDockAssist.js | 67 ----- .../driver/DesktopRightPaneTabs/index.jsx | 7 +- 30 files changed, 482 insertions(+), 453 deletions(-) create mode 100644 server/src/services/dockingService/index.js delete mode 100644 webui/src/features/manualDockAssist/useManualDockAssist.js diff --git a/dist/hornverifier b/dist/hornverifier index 67c1f649ed93d7deebaaed80dca41cf0e99ef6cd..8a202a523925e11d35bd325f0f6ee6bf24c31608 100755 GIT binary patch delta 379 zcmdndSh1tAVnYYNriVppc9EN3N^Wvhah7GWZ-{PXj=qU!U}cGqxmiwNPFQYQVr5ye zfBNK&{9=}l76JacMQNsKd69m}i4n%;=7B*BEDQ_`B0$Ux#O{8f3=^fMOFx(*oxJK- zt;-Hpo8(Q*$Nn}6v2yGJ(mOtrjn3QOenv`mqmX?@mY+z($o@AM3o@iicY@Q4hHBU`8 zH?lM}PD;LFf!9MG|)9L3^6dXGBmU@FmKPgDGbCSKr9Nx mVn8eo#1cR(3B*!BEWJJJrpy<0YT7y-Xsh1#>x{Aw{{aA)FL&7h delta 379 zcmdndSh1tAVnYYNW<`OEpK(EDS$eUNn}4`hN}g*#h<>DFu1ASmm8WHCaH)k+NI+(o znaSjh{9=~H!R}R&=@lVm=J6F-;VBlbRaMyxEDQ_`B0$Ux#O{8f3@`piygd`7q$HcP zO8i^VcXf|4AL%B6HUY*q0j4$q<~9MAHUZW)0k$>)_BH{IHUZ8y0j@Ry?lu9QHUZu? z0lqc?{x$)idcigUp=|=f@+ZAbQjJWKOihfsHjY149tV~R-3@zKUZVCgj2oQ?` mu^14G1F-}UO9HVJ5KC{*x+(KTotm~z2imH){W_!U!+!v{V|TIu diff --git a/dist/roverd b/dist/roverd index 9556fdae35c5cadb390d1ee08fd36785e382a1ca..b77dfda84e73fa46291edce698099e7b85348352 100755 GIT binary patch delta 88239 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 delta 88685 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�z}(>JNZ+o!5RIRua|zFqN4bIONzD9=36EM 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 E0IGa~s{jB1 diff --git a/dist/roverd-debian-laptop b/dist/roverd-debian-laptop index c9b48a0bfbe35ebe42b3c3b8fa90cd1b4b16e306..69b3940df30eddbb507c349f87928ae5dcf49388 100755 GIT binary patch delta 137527 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 ihHI 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 y{z%YT7nl@oXR@&^_jld)tkj%n3lK=h#a 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 JlU;m5{s%@IXNCX( diff --git a/dist/servoverifier b/dist/servoverifier index 6a16f5a45c295c864eca3277a23b7299ec0d1961..b32f7e89ac2ee0a54d69e0ae63a37ea2d1ed8199 100755 GIT binary patch delta 369 zcmdndn6slXXF~_SW>tK#x0h>`qh(5ZWM*(sP;haXiN0}$c~pK`da!dqa8yNlrc+Rq zOWx#-{9=~5!IsX36)A?km0?klK3*=mS%vWoEDQ_`B0$Ux#O{8f3=L)yt3Ue9`MtKU zR?=kV88;5i-q)_BH{IHUZ8y0j@Ry?lu9QHUZu? z0lqc?{x$)DZ32SlJ-iK*5=~N*Qccs+5>t&0jEu~aEYr*r4J?h#lYyemZru@ ziCjsgnK>z(Wy!^QC7HRYwnhd delta 369 zcmdndn6slXXF~_SrgMc?Rial}MQ(nMS7@f0kB3WXgnp>IX||M@xlMqjO@OscfUQk{y-k3lO@OmafU8Y_yG?+nO@Oye zfUiw}zfC}3n}FbX4{wuHBa#%XX 0 + && Date.now() < (driveCooldowns.get(roverId) || 0)) { + throw new Error('Drive blocked: safety cooldown'); + } + payload = require('../dockingService').protectCommand(record, payload, options); const id = uuidv4(); const normalizedPayload = normalizeOutboundCommandPayload(payload); const message = { ...normalizedPayload, id }; @@ -124,7 +129,14 @@ overcurrentProtectionService.configureCommandIssuer((roverId, payload) => { */ return false; } - issueCommand(roverId, payload); + const record = roverManager.rovers.get(roverId); + const reverseAdjustment = payload.driveDirect + && (payload.driveDirect.left < 0 || payload.driveDirect.right < 0) + && payload.driveDirect.left <= 0 && payload.driveDirect.right <= 0 + && require('../dockingService').canAdjustReverse(record); + // Only protection's adjustments to the active reverse inherit controller + // ownership. Zero remains an ordinary stop and cancels the sequence. + issueCommand(roverId, payload, { dockingOwned: Boolean(reverseAdjustment) }); return true; }); @@ -315,6 +327,22 @@ function submitCommand(socket, { roverId, type, data } = {}, cb) { if (!isSongCommand && !isRebootCommand && !isUpdateCommand && !roverManager.canDrive(roverId, socket)) { throw new Error('Not your turn or no control'); } + const record = roverManager.rovers.get(roverId); + if (!record?.ws) throw new Error('Rover offline'); + const docking = require('../dockingService'); + // The controller owns wheel output during undocking. Discard all ordinary + // drive input, including neutral, before it can alter protection's intent. + if (docking.shouldIgnoreDriveInput(record, payload)) { + reply({ ignored: true, reason: 'undocking' }); + return; + } + // Reject before recording held motor intent: otherwise a rejected input + // could be replayed by protection as soon as the docking lock is released. + if (!docking.intents.has(type)) { + const guarded = docking.protectCommand(record, { ...payload, type }); + type = guarded.type; + payload = guarded; + } const driveDirect = payload?.driveDirect; if (type === 'drive' && driveDirect) { if (!isAdminSocket) { @@ -361,7 +389,14 @@ function submitCommand(socket, { roverId, type, data } = {}, cb) { bypassed: isAdminSocket, }); } - const id = issueCommand(roverId, { type, ...payload }); + const isDockingIntent = docking.intents.has(type); + const id = isDockingIntent + ? docking.issueIntent(roverManager.rovers.get(roverId), type, payload, socket) + : issueCommand(roverId, { ...payload, type }); + if (isDockingIntent) { + // The server acknowledges accepting the intent; telemetry reports its completion. + io.emit('commandAck', { roverId, id, status: 'ok' }); + } commandEvents.emit('observation', { ts: Date.now(), roverId: String(roverId), diff --git a/server/src/services/dockingService/index.js b/server/src/services/dockingService/index.js new file mode 100644 index 00000000..2ded154f --- /dev/null +++ b/server/src/services/dockingService/index.js @@ -0,0 +1,273 @@ +// Server-owned docking operations. +const { v4: uuidv4 } = require('uuid'); +const io = require('../../globals/io'); +const logger = require('../../globals/logger').child('dockingService'); +const states = new WeakMap(); +const intents = new Set(['enterDocking', 'cancelDocking', 'undock']); +const ASSIST_SPEED = 60; +const SENSOR_TIMEOUT_MS = 1500; +const UNDOCK_TIMEOUT_MS = 4000; +const REVERSE_TIMEOUT_MS = 1000; + +function stateFor(record) { + if (!states.has(record)) { + states.set(record, { + contact: null, charging: false, latched: false, assist: false, + operation: null, error: null, seenAt: 0, timer: null, + }); + } + return states.get(record); +} + +function snapshot(record) { + const state = stateFor(record); + return { + phase: state.operation ? 'undocking' : state.contact ? (state.charging ? 'charging' : 'docked') : state.assist ? 'assisting' : 'idle', + movementLocked: Boolean(state.operation || state.latched || state.error || state.contact == null), + cameraLocked: state.assist, + error: state.error, + }; +} + +function publish(record) { + if (!record.lastSensor?.decoded) return; + record.lastSensor.decoded = { ...record.lastSensor.decoded, docking: snapshot(record) }; + // State transitions use the same telemetry event, including failures when the + // physical sensor stream has stalled. Never manufacture a new sensor timestamp. + io.to(record.room).emit('sensorFrame', { + roverId: record.id, frame: record.lastSensor.raw, sensors: record.lastSensor.decoded, + overcurrentProtection: record.lastOvercurrentProtection || null, + }); +} + +function send(record, payload) { + return require('../commandService').issueCommand(record.id, payload, { dockingOwned: true }); +} +function stop(record) { + // Forget the previous held intent so protection cannot replay it after unlock. + require('../overcurrentProtectionService').protectCommand(record.id, 'drive', { driveDirect: { left: 0, right: 0 } }); + send(record, { type: 'drive', driveDirect: { left: 0, right: 0 } }); +} +function stopAllMotion(record) { + stop(record); + const payload = { motorPwm: { main: 0, side: 0, vacuum: 0 } }; + require('../overcurrentProtectionService').protectCommand(record.id, 'motors', payload); + send(record, { type: 'motors', ...payload }); +} +function mode(record, opcode) { + send(record, { type: 'raw', raw: Buffer.from([opcode]).toString('base64') }); +} +function camera(record, angle) { + if (record.meta?.cameraServo?.enabled) send(record, { type: 'servo', servo: { angle } }); +} +function song(record, notes, slot = 0, duration = 10) { + send(record, { type: 'song', song: { slot, notes: notes.map((note) => ({ note, duration })) } }); +} +function finishAssist(record) { + const state = stateFor(record); + if (!state.assist) return; + state.assist = false; + camera(record, 0); + song(record, [83, 76]); +} +function clearOperation(state) { + clearTimeout(state.timer); + state.timer = null; + state.operation = null; +} +function fail(record, code, message) { + const state = stateFor(record); + clearOperation(state); + state.error = { code, message }; + state.latched = true; + try { stop(record); } catch (error) { + logger.warn('Unable to stop docking operation', { roverId: record.id, error: error.message }); + } + publish(record); +} +function armDeadline(record) { + const state = stateFor(record); + clearTimeout(state.timer); + if (!state.operation) return; + const deadline = Math.min( + state.seenAt + SENSOR_TIMEOUT_MS, + state.operation.startedAt + UNDOCK_TIMEOUT_MS, + state.operation.reversingAt ? state.operation.reversingAt + REVERSE_TIMEOUT_MS : Infinity, + ); + state.timer = setTimeout(() => { + const stale = Date.now() - state.seenAt >= SENSOR_TIMEOUT_MS; + fail(record, stale ? 'telemetryUnavailable' : 'undockTimeout', stale ? 'Rover telemetry stopped during undocking.' : 'Unable to leave the dock.'); + }, Math.max(1, deadline - Date.now())); + state.timer.unref?.(); +} + +function handleIntent(record, type, payload, socket) { + const state = stateFor(record); + if (type === 'cancelDocking') { + if (state.operation) fail(record, 'undockCancelled', 'Undocking stopped.'); + stop(record); + finishAssist(record); + publish(record); + return; + } + state.error = null; + require('../roverManager').stopDockGuard(record.id); + stop(record); + if (type === 'enterDocking') { + state.latched = false; + if (!state.assist) { + state.assist = true; + camera(record, record.meta?.cameraServo?.minAngle ?? -45); + song(record, [76, 83]); + } + } else { + finishAssist(record); + camera(record, 0); + state.operation = { startedAt: Date.now(), socket, backoff: payload.backoff !== false, reversing: false }; + // Full mode works from an initialized OI; start only when OI is off. + if (record.lastSensor?.decoded?.oiMode?.code === 0) mode(record, 128); + mode(record, 132); + armDeadline(record); + } + publish(record); +} + +function processTelemetry(record, sensors) { + const state = stateFor(record); + if (!sensors?.chargingSources || !sensors?.oiMode) return snapshot(record); + const previousContact = state.contact; + state.seenAt = Date.now(); + state.contact = Boolean(sensors.chargingSources.homeBase); + state.charging = [1, 2, 3, 4].includes(sensors.chargingState?.code); + if (previousContact == null) state.latched = state.contact; + try { + const operation = state.operation; + if (operation) { + const manager = require('../roverManager'); + if (!operation.socket?.connected || !manager.canDrive(record.id, operation.socket)) { + fail(record, 'controlLost', 'Undocking stopped because control changed.'); + } else if (Date.now() - operation.startedAt >= UNDOCK_TIMEOUT_MS + || (operation.reversingAt && Date.now() - operation.reversingAt >= REVERSE_TIMEOUT_MS)) { + fail(record, 'undockTimeout', 'Unable to leave the dock.'); + } else if (sensors.oiMode.label === 'full') { + if (!state.contact || !operation.backoff) { + stop(record); + clearOperation(state); + state.latched = state.contact; + } else if (!operation.reversing) { + operation.reversing = true; + operation.reversingAt = Date.now(); + const speed = Math.max(1, Math.min(500, Number(record.meta?.maxWheelSpeed) || 500)); + // Track the controller's own intent in existing protection so stalls + // still stop it and subsequent adjustments refer to this reverse only. + const drive = require('../overcurrentProtectionService').protectCommand(record.id, 'drive', { + driveDirect: { left: -speed, right: -speed }, + }, { bypassed: require('../roleService').isAdmin(operation.socket) }); + if (!drive.driveDirect.left && !drive.driveDirect.right) throw new Error('Undocking blocked by wheel protection'); + send(record, { ...drive, type: 'drive' }); + } + } else if (operation.reversing) { + fail(record, 'modeChanged', 'Undocking stopped because the Roomba mode changed.'); + } + armDeadline(record); + } else if (state.contact) { + state.latched = true; + if (previousContact !== true) { + stopAllMotion(record); + mode(record, 143); + if (state.assist) song(record, [84], 1, 6); + } + if (state.charging) finishAssist(record); + } else if (previousContact === true && state.assist) { + song(record, [72], 1, 6); + } + } catch (error) { + fail(record, 'commandFailed', error.message); + } + return snapshot(record); +} + +function shouldIgnoreDriveInput(record, payload) { + if (!stateFor(record).operation) return false; + if (payload.driveDirect) return true; + const raw = payload.raw ? Buffer.from(payload.raw, 'base64') : null; + return Boolean(raw && [137, 145].includes(raw[0])); +} + +function protectCommand(record, payload, { dockingOwned = false } = {}) { + if (dockingOwned) return payload; + const state = stateFor(record); + // Raw OI drive packets must obey the same movement lock. Other raw commands, + // including mode changes, remain available and can interrupt the operation. + const raw = payload.raw ? Buffer.from(payload.raw, 'base64') : null; + if (state.operation && raw && [128, 131, 132, 133, 134, 135, 136, 143].includes(raw[0])) { + // Explicit mode commands remain available and take precedence over an + // automatic sequence, including while it is still waiting for full mode. + fail(record, 'modeChanged', 'Undocking stopped by a Roomba mode command.'); + } + if (raw && [137, 145].includes(raw[0])) { + if (raw.length !== 5) throw new Error('Invalid raw drive command'); + const first = raw.readInt16BE(1); + const second = raw.readInt16BE(3); + if (raw[0] === 137 && first !== 0 && state.assist && !snapshot(record).movementLocked) { + const limited = Buffer.from(raw); + limited.writeInt16BE(Math.max(-ASSIST_SPEED, Math.min(ASSIST_SPEED, first)), 1); + return { ...payload, raw: limited.toString('base64') }; + } + if (raw[0] === 145) { + return protectCommand(record, { type: 'drive', driveDirect: { left: second, right: first } }); + } + if (first === 0 && state.operation) fail(record, 'undockStopped', 'Undocking stopped by a stop command.'); + if (first !== 0 && snapshot(record).movementLocked) throw new Error('Drive blocked while docked or undocking'); + } + // User drive input is discarded at submitCommand before reaching here. + // Internal safety stops still interrupt the controller through this path. + if (payload.driveDirect) { + const { left, right } = payload.driveDirect; + if (!Number(left) && !Number(right) && state.operation) { + fail(record, 'undockStopped', 'Undocking stopped by a stop command.'); + } + if ((Number(left) || Number(right)) && snapshot(record).movementLocked) throw new Error('Drive blocked while docked or undocking'); + if (state.assist) { + const scale = Math.min(1, ASSIST_SPEED / Math.max(Math.abs(left), Math.abs(right), 1)); + return { ...payload, driveDirect: { left: Math.round(left * scale), right: Math.round(right * scale) } }; + } + } + if (payload.servo && state.assist) throw new Error('Camera locked during dock assist'); + return payload; +} + +function disconnect(record) { + const state = stateFor(record); + if (state.operation) fail(record, 'roverDisconnected', 'Rover disconnected during undocking.'); + clearOperation(state); + state.seenAt = 0; + state.contact = null; + state.assist = false; +} + +function canAdjustReverse(record) { + return Boolean(record && stateFor(record).operation?.reversing); +} + +function issueIntent(record, type, payload, socket) { + const state = stateFor(record); + // Validate before mutating, so duplicate/rejected requests cannot disturb an + // operation that is already in progress. + if (type !== 'cancelDocking') { + if (state.operation) throw new Error('Undocking is already in progress'); + if (Date.now() - state.seenAt >= SENSOR_TIMEOUT_MS || state.contact == null) { + throw new Error('Waiting for current rover telemetry'); + } + if (type === 'enterDocking' && state.contact) throw new Error('Rover is already docked'); + } + const id = uuidv4(); + try { + handleIntent(record, type, payload, socket); + } catch (error) { + fail(record, 'commandFailed', error.message); + throw error; + } + return id; +} +module.exports = { shouldIgnoreDriveInput, canAdjustReverse, snapshot, intents, issueIntent, processTelemetry, protectCommand, disconnect }; diff --git a/server/src/services/roverManager/index.js b/server/src/services/roverManager/index.js index e8ae329b..14c1e8c0 100644 --- a/server/src/services/roverManager/index.js +++ b/server/src/services/roverManager/index.js @@ -274,6 +274,7 @@ odometerService.odometerEvents.on('update', ({ roverId, odometer }) => { setInterval(tickPrivateAutoClose, PRIVATE_AUTO_CLOSE_TICK_MS); module.exports = { + stopDockGuard, upsertRover, removeRover, lockRover, diff --git a/server/src/services/roverManager/rosterLifecycle.js b/server/src/services/roverManager/rosterLifecycle.js index 362738bc..504335ce 100644 --- a/server/src/services/roverManager/rosterLifecycle.js +++ b/server/src/services/roverManager/rosterLifecycle.js @@ -117,6 +117,7 @@ function createRosterLifecycle(deps) { offline, while removeRoverDrivers still receives the captured record so it can clean the reverse membership index and Socket.IO room membership. */ + require('../dockingService').disconnect(record); rovers.delete(id); removeRoverDrivers(id, record); stopDockGuard(id); diff --git a/server/src/services/roverManager/sensorPipeline.js b/server/src/services/roverManager/sensorPipeline.js index 193eeaa4..ba866cbb 100644 --- a/server/src/services/roverManager/sensorPipeline.js +++ b/server/src/services/roverManager/sensorPipeline.js @@ -389,6 +389,10 @@ function createSensorPipeline(deps) { function evaluateDockGuard(record, sensors) { if (!record || !sensors) return; + if (sensors.docking?.phase === 'undocking' || sensors.docking?.phase === 'assisting') { + stopDockGuard(record.id); + return; + } const state = getDockGuardState(record.id); const now = Date.now(); const docked = Boolean(sensors?.chargingSources?.homeBase); @@ -564,6 +568,10 @@ function createSensorPipeline(deps) { }; record.lastSensor = { raw: frame, decoded }; } + if (decoded) { + decoded = { ...decoded, docking: require('../dockingService').processTelemetry(record, decoded) }; + record.lastSensor = { raw: frame, decoded }; + } /* Rover manager remains responsible only for decoding and routing sensor frames. The dedicated service receives the completed sensor object after @@ -577,6 +585,7 @@ function createSensorPipeline(deps) { const overcurrentProtection = decoded && typeof processOvercurrentTelemetry === 'function' ? processOvercurrentTelemetry(roverId, decoded) : null; + record.lastOvercurrentProtection = overcurrentProtection; updateMovement(record, decoded); const hasDockInfo = decoded?.chargingSources != null; if (hasDockInfo) { @@ -589,6 +598,10 @@ function createSensorPipeline(deps) { if (bumps?.bumpLeft || bumps?.bumpRight) record.lastBumpAt = Date.now(); handlePrivateButtonHold(record, decoded); evaluatePrivateSafety(record, decoded); + if (decoded) { + decoded = { ...decoded, docking: require('../dockingService').snapshot(record) }; + record.lastSensor = { raw: frame, decoded }; + } io.to(record.room).volatile.emit('sensorFrame', { roverId, frame, diff --git a/webui/src/components/DriveDockAction/driveDockState.js b/webui/src/components/DriveDockAction/driveDockState.js index 069f30a3..939aa498 100644 --- a/webui/src/components/DriveDockAction/driveDockState.js +++ b/webui/src/components/DriveDockAction/driveDockState.js @@ -11,10 +11,10 @@ export function deriveDriveDockStateFromTelemetry(dockTelemetry) { const oiNormalized = oiLabel.toLowerCase(); const chargingLabel = dockTelemetry?.chargingStateLabel || ''; const docked = Boolean(dockTelemetry?.homeBase); - const charging = docked && chargingLabel.toLowerCase() !== 'not charging' && chargingLabel !== ''; - const driving = oiNormalized === 'full'; + const charging = dockTelemetry?.dockingPhase === 'charging'; + const driving = oiNormalized === 'full' && !dockTelemetry?.movementLocked; const dockedNotCharging = docked && !charging; - const dockingInProgress = !docked && !charging && oiNormalized === 'passive'; + const dockingInProgress = !docked && !charging && oiNormalized === 'passive' && dockTelemetry?.dockingPhase !== 'undocking'; return { driving, docked, charging, dockedNotCharging, dockingInProgress, oiLabel, chargingLabel }; } diff --git a/webui/src/components/DriveDockAction/index.jsx b/webui/src/components/DriveDockAction/index.jsx index cec25319..2d192620 100644 --- a/webui/src/components/DriveDockAction/index.jsx +++ b/webui/src/components/DriveDockAction/index.jsx @@ -1,13 +1,12 @@ // Drive Dock Action // Purpose: Defines the Drive Dock Action module and the local helpers/components used in this file. // Scope: Keeps behavior unchanged while isolating this concern into a clear, single-responsibility unit. -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import '../MobileControls/mobileControls.css'; import { useControlActions, useControlSelector } from '../../controls/index.js'; import { useTelemetrySelector } from '../../context/TelemetryContext.jsx'; import { dockTelemetryEqual, selectDockTelemetry } from '../../context/telemetryViews.js'; import ControlHint from '../ControlHint/index.jsx'; -import { useManualDockAssist } from '../../features/manualDockAssist/useManualDockAssist.js'; import { deriveDriveDockStateFromTelemetry } from './driveDockState.js'; import { triggerTouchHaptic } from '../../lib/touchHaptics.js'; @@ -91,14 +90,13 @@ export default function DriveDockAction({ const isMobile = layout === 'mobile'; const roverId = useControlSelector((control) => control.state.roverId); const actions = useControlActions(); - const dockAssist = useManualDockAssist(); const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); const state = driveDockState ?? deriveDriveDockStateFromTelemetry(dockTelemetry); const { driving, docked, charging, dockingInProgress } = state; - const [pending, setPending] = useState(null); + const pending = dockTelemetry.dockingPhase === 'undocking' ? 'drive' : null; const [confirmOpen, setConfirmOpen] = useState(false); const [showModal, setShowModal] = useState(false); - const manualAssistActive = Boolean(dockAssist.active); + const manualAssistActive = Boolean(dockTelemetry.cameraLocked); const driveDisabled = !roverId || pending !== null; const dockDisabled = !roverId || pending !== null; @@ -124,64 +122,37 @@ export default function DriveDockAction({ const chargeValue = charging ? 'Charging' : docked ? 'Charging soon...' : '—'; const chargeTone = charging ? 'good' : docked ? 'warn' : 'bad'; - const handleReturnToDrive = async () => { - if (!roverId || pending) return; - if (isMobile) triggerTouchHaptic('button'); - setPending('drive'); - try { - dockAssist.exitAssist(); - actions.setMode('drive'); - await actions.runMacro('drive-sequence'); - } catch (err) { - alert(err.message); - } finally { - setPending(null); - } - }; - - const handleStartDrive = async () => { + const handleStartDrive = () => { if (!roverId || pending) return; if (isMobile) triggerTouchHaptic('button'); setConfirmOpen(false); setShowModal(false); - setPending('drive'); - try { - dockAssist.exitAssist(); - actions.setMode('drive'); - await actions.runMacro('drive-sequence'); - } catch (err) { - alert(err.message); - } finally { - setPending(null); - } + actions.undock(); }; - const handleConfirmDock = async () => { + const handleConfirmDock = () => { if (!roverId || pending) return; if (isMobile) triggerTouchHaptic('button'); - setPending('dock'); - try { - dockAssist.enterAssist(); - } catch (err) { - alert(err.message); - } finally { - setPending(null); - setConfirmOpen(false); - setShowModal(false); - } + actions.sendCommand('enterDocking'); + setConfirmOpen(false); + setShowModal(false); }; const handleOpenDock = () => { if (dockDisabled) return; if (isMobile) triggerTouchHaptic('button'); if (manualAssistActive) { - dockAssist.exitAssist(); + actions.sendCommand('cancelDocking'); return; } setShowModal(true); setConfirmOpen(true); }; + useEffect(() => { + if (dockTelemetry.dockingError) alert(dockTelemetry.dockingError); + }, [dockTelemetry.dockingError]); + // The drive/dock card appears inside the mobile controls and can be held or // tapped repeatedly; attach mobile touch suppression directly to the card so // Safari does not select labels or open callouts during those interactions. @@ -254,7 +225,7 @@ export default function DriveDockAction({ {/* Keeping the pad mounted prevents the mobile columns from changing size while the centered video HUD explains and performs dock-related transitions. */} diff --git a/webui/src/components/SettingsPanel/index.jsx b/webui/src/components/SettingsPanel/index.jsx index 18fb4bc3..283ae561 100644 --- a/webui/src/components/SettingsPanel/index.jsx +++ b/webui/src/components/SettingsPanel/index.jsx @@ -411,7 +411,7 @@ export default function SettingsPanel() { Swap control columns (put joystick on the left) - + - Enable backward bump in drive macro + Back away from the dock when undocking diff --git a/webui/src/context/telemetryViews.js b/webui/src/context/telemetryViews.js index 049f4931..dd457616 100644 --- a/webui/src/context/telemetryViews.js +++ b/webui/src/context/telemetryViews.js @@ -11,6 +11,10 @@ const EMPTY_BATTERY_TELEMETRY = Object.freeze({ }); const EMPTY_DOCK_TELEMETRY = Object.freeze({ + dockingPhase: 'idle', + movementLocked: true, + cameraLocked: false, + dockingError: '', oiModeLabel: 'Unknown', chargingStateLabel: '', homeBase: false, @@ -127,6 +131,10 @@ export function selectDockTelemetry(frame) { const sensors = frame?.sensors; if (!sensors) return EMPTY_DOCK_TELEMETRY; return { + dockingPhase: sensors.docking?.phase || 'idle', + movementLocked: sensors.docking?.movementLocked ?? true, + cameraLocked: Boolean(sensors.docking?.cameraLocked), + dockingError: sensors.docking?.error?.message || '', oiModeLabel: sensors.oiMode?.label || 'Unknown', chargingStateLabel: sensors.chargingState?.label || '', // OI packet 34 is the authoritative charging-sources packet. Charging diff --git a/webui/src/controls/ControlContext.jsx b/webui/src/controls/ControlContext.jsx index 78546e47..4c38d932 100644 --- a/webui/src/controls/ControlContext.jsx +++ b/webui/src/controls/ControlContext.jsx @@ -17,13 +17,11 @@ import { computeDifferentialSpeeds, clamp } from './controlMath.js'; import { useCommandPipeline } from './commandPipeline.js'; import { DEFAULT_KEYMAP, - DEFAULT_MACROS, HORN_HEAT_COOL_PER_SEC, HORN_HEAT_RESUME_THRESHOLD, HORN_HEAT_UP_PER_SEC, HORN_MAX_FREQUENCY, HORN_MAX_MS, - MANUAL_DOCK_ASSIST_MAX_SPEED, SONG_DEFAULT_NOTE, } from './constants.js'; import { canonicalizeKeyInput } from './keymapUtils.js'; @@ -32,6 +30,8 @@ import { useSessionActions, useSessionSelector } from '../context/SessionContext import { HORN_SETTINGS_DEFAULTS } from '../settings/namespaces.js'; import { useOvercurrentLimiter } from './overcurrentLimiter.js'; import { usePtzControlAdapter } from './ptzControlAdapter.js'; +import { useTelemetrySelector } from '../context/TelemetryContext.jsx'; +import { selectDockTelemetry, dockTelemetryEqual } from '../context/telemetryViews.js'; import { trackAnalyticsEvent } from '../analytics/index.js'; const ControlSystemContext = createContext(null); @@ -49,7 +49,8 @@ const CONTROL_ACTION_NAMES = [ 'setCameraAxisIntent', 'goServoHome', 'setCameraPrecisionMode', - 'runMacro', + 'undock', + 'sendCommand', 'stopAllMotion', 'sendOiCommand', 'setSensorStream', @@ -60,8 +61,6 @@ const CONTROL_ACTION_NAMES = [ 'updateKeyBinding', 'resetKeyBindings', 'registerInputState', - 'setManualDockAssistActive', - 'toggleManualDockAssist', 'setSongNote', 'sendSong', 'startHorn', @@ -83,23 +82,6 @@ function clampServoAngle(config, value) { return clamp(value, min, max); } -function removeDriveSequenceBackoff(steps = []) { - if (!Array.isArray(steps) || steps.length < 3) return steps; - const last3 = steps.slice(-3); - const [backoffStep, pauseStep, stopStep] = last3; - const isBackoffStep = - backoffStep?.type === 'drive' && - Number(backoffStep?.speeds?.left) === -300 && - Number(backoffStep?.speeds?.right) === -300; - const isPauseStep = pauseStep?.type === 'pause' && Number(pauseStep?.duration) === 600; - const isStopStep = - stopStep?.type === 'drive' && - Number(stopStep?.speeds?.left) === 0 && - Number(stopStep?.speeds?.right) === 0; - if (!isBackoffStep || !isPauseStep || !isStopStep) return steps; - return steps.slice(0, -3); -} - export function ControlSystemProvider({ children }) { const [state, dispatch] = useReducer(controlReducer, initialControlState); const snapshotRef = useRef(null); @@ -158,7 +140,7 @@ export function ControlSystemProvider({ children }) { const { value: controlSettings, save: saveControlSettings, - } = useSettingsNamespace('controls', { keymap: DEFAULT_KEYMAP, macros: DEFAULT_MACROS }); + } = useSettingsNamespace('controls', { keymap: DEFAULT_KEYMAP }); const { value: pageSettings } = useSettingsNamespace('page', { driveMacroBackoffEnabled: true }); const { value: hornSettings } = useSettingsNamespace('horn', HORN_SETTINGS_DEFAULTS); const driveMacroBackoffEnabled = @@ -166,6 +148,8 @@ export function ControlSystemProvider({ children }) { ? pageSettings.driveMacroBackoffEnabled : true; const roverId = useSessionSelector((state) => state.session?.assignment?.roverId ?? null); + const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); + const cameraLocked = Boolean(dockTelemetry.cameraLocked); const homeAssistantEntities = useSessionSelector((state) => state.session?.homeAssistant?.entities ?? []); const roomLightsLocked = useSessionSelector((state) => Boolean(state.session?.homeAssistant?.lightPolicy?.locked || state.session?.homeAssistant?.lightPolicy?.lockedOn), @@ -238,10 +222,7 @@ export function ControlSystemProvider({ children }) { useEffect(() => { const mergedKeymap = { ...DEFAULT_KEYMAP, ...(controlSettings?.keymap || {}) }; dispatch({ type: 'control/set-keymap', payload: mergedKeymap }); - if (controlSettings?.macros) { - dispatch({ type: 'control/set-macros', payload: controlSettings.macros }); - } - }, [controlSettings?.keymap, controlSettings?.macros]); + }, [controlSettings?.keymap]); useEffect(() => { const config = pipeline.servoConfig; @@ -268,11 +249,10 @@ export function ControlSystemProvider({ children }) { typeof state.camera.angle === 'number' ? state.camera.angle : servoAngleRef.current; }, [state.camera.angle]); + const { enableSensorStream } = pipeline; useEffect(() => { - if (pipeline.roverId) { - pipeline.enableSensorStream(); - } - }, [pipeline.roverId, pipeline.enableSensorStream]); + if (roverId) enableSensorStream(); + }, [roverId, enableSensorStream]); const setMode = useCallback( (mode) => { @@ -295,21 +275,6 @@ export function ControlSystemProvider({ children }) { const setDriveVector = useCallback( (vector, meta = {}) => { const speedOptions = { ...(meta.speedOptions || {}) }; - if (state.manualDockAssist?.active) { - const capped = Math.max(1, Math.min(MANUAL_DOCK_ASSIST_MAX_SPEED, 500)); - speedOptions.maxSpeed = Math.min( - typeof speedOptions.maxSpeed === 'number' ? speedOptions.maxSpeed : capped, - capped, - ); - speedOptions.baseSpeed = Math.min( - typeof speedOptions.baseSpeed === 'number' ? speedOptions.baseSpeed : capped, - capped, - ); - speedOptions.boostSpeed = Math.min( - typeof speedOptions.boostSpeed === 'number' ? speedOptions.boostSpeed : capped, - capped, - ); - } const computed = computeDifferentialSpeeds(vector, speedOptions); const isMoving = computed.speeds.left !== 0 || computed.speeds.right !== 0; if (pipeline.roverId && isMoving && driveEngagementRoverRef.current !== pipeline.roverId) { @@ -327,7 +292,7 @@ export function ControlSystemProvider({ children }) { if (ptzControls.applyDriveVector(vector, meta)) return; pipeline.sendDriveDirect(computed.speeds); }, - [pipeline, ptzControls, recordControlIntent, state.manualDockAssist?.active], + [pipeline, ptzControls, recordControlIntent], ); const setAuxMotors = useCallback( @@ -369,23 +334,22 @@ export function ControlSystemProvider({ children }) { }, [saveControlSettings]); const setServoAngle = useCallback( - (value, options = {}) => { + (value) => { /* Absolute servo positions belong only to rover hardware. PTZ zoom now enters through setCameraAxisIntent as a signed held velocity, so this function must not infer zoom direction by comparing unrelated absolute - angle values from gamepad/manual-dock callers. + angle values from camera controls. */ if (!pipeline.servoConfig) return; - const force = Boolean(options?.force); - if (state.manualDockAssist?.active && !force) return; + if (cameraLocked) return; const clamped = clampServoAngle(pipeline.servoConfig, value); dispatch({ type: 'control/set-camera-angle', payload: clamped }); pipeline.sendServoAngle(clamped); servoAngleRef.current = clamped; recordControlIntent(); }, - [pipeline, recordControlIntent, state.manualDockAssist?.active], + [pipeline, recordControlIntent, cameraLocked], ); const nudgeServo = useCallback( @@ -457,35 +421,19 @@ export function ControlSystemProvider({ children }) { dispatch({ type: 'control/set-camera-precision-mode', payload: Boolean(active) }); }, []); - const runMacro = useCallback( - async (macroId) => { - const macro = state.macros.find((item) => item.id === macroId) || null; - if (!macro) return; - let macroToRun = macro; - if (macroId === 'drive-sequence') { - turnOnAllLights(); - if (!homeAssistantEntities?.length) { - pendingLightsRef.current = true; - } - recordControlIntent(); - if (!driveMacroBackoffEnabled) { - macroToRun = { - ...macro, - steps: removeDriveSequenceBackoff(macro.steps), - }; - } - } - await pipeline.runMacroSteps(macroToRun); - }, - [ - driveMacroBackoffEnabled, - pipeline, - recordControlIntent, - homeAssistantEntities, - state.macros, - turnOnAllLights, - ], - ); + const sendCommand = useCallback((type, data = {}) => { + recordControlIntent(); + pipeline.emitCommand({ type, data }, (result) => { + if (result?.error) alert(result.error); + }); + }, [pipeline, recordControlIntent]); + + const undock = useCallback(() => { + dispatch({ type: 'control/set-mode', payload: 'drive' }); + turnOnAllLights(); + if (!homeAssistantEntities?.length) pendingLightsRef.current = true; + sendCommand('undock', { backoff: driveMacroBackoffEnabled }); + }, [driveMacroBackoffEnabled, homeAssistantEntities, turnOnAllLights, sendCommand]); const stopAllMotion = useCallback(() => { dispatch({ @@ -691,32 +639,6 @@ export function ControlSystemProvider({ children }) { return () => clearInterval(interval); }, [dispatch, hornNeedsTick]); - const setManualDockAssistActive = useCallback( - (active) => { - const nextActive = Boolean(active); - const prevActive = Boolean(state.manualDockAssist?.active); - if (prevActive === nextActive) return; - dispatch({ type: 'control/set-manual-dock-assist', payload: nextActive }); - if (!nextActive) { - pipeline.sendSong([{ note: 83, duration: 10 }, { note: 76, duration: 10 }], { slot: 0 }); - setServoAngle(0, { force: true }); - return; - } - const minAngle = - typeof pipeline.servoConfig?.minAngle === 'number' - ? pipeline.servoConfig.minAngle - : -45; - setServoAngle(minAngle, { force: true }); - pipeline.sendSong([{ note: 76, duration: 10 }, { note: 83, duration: 10 }], { slot: 0 }); - recordControlIntent(); - }, - [pipeline, recordControlIntent, setServoAngle, state.manualDockAssist?.active], - ); - - const toggleManualDockAssist = useCallback(() => { - setManualDockAssistActive(!state.manualDockAssist?.active); - }, [setManualDockAssistActive, state.manualDockAssist?.active]); - const registerInputState = useCallback((source, data) => { dispatch({ type: 'control/register-input-state', payload: { source, state: data } }); }, []); @@ -758,7 +680,8 @@ export function ControlSystemProvider({ children }) { setCameraAxisIntent, goServoHome, setCameraPrecisionMode, - runMacro, + undock, + sendCommand, stopAllMotion, sendOiCommand, setSensorStream, @@ -769,8 +692,6 @@ export function ControlSystemProvider({ children }) { updateKeyBinding, resetKeyBindings, registerInputState, - setManualDockAssistActive, - toggleManualDockAssist, setSongNote, sendSong, startHorn, @@ -787,7 +708,8 @@ export function ControlSystemProvider({ children }) { setCameraAxisIntent, goServoHome, setCameraPrecisionMode, - runMacro, + undock, + sendCommand, stopAllMotion, sendOiCommand, setSensorStream, @@ -798,8 +720,6 @@ export function ControlSystemProvider({ children }) { updateKeyBinding, resetKeyBindings, registerInputState, - setManualDockAssistActive, - toggleManualDockAssist, setSongNote, sendSong, startHorn, diff --git a/webui/src/controls/commandPipeline.js b/webui/src/controls/commandPipeline.js index 188d7536..d20b85ae 100644 --- a/webui/src/controls/commandPipeline.js +++ b/webui/src/controls/commandPipeline.js @@ -5,13 +5,12 @@ import { useSocket } from '../context/SocketContext.jsx'; import { useSessionSelector } from '../context/SessionContext.jsx'; import { AUX_LIMITS, - COMMAND_DELAY_MS, OI_COMMANDS, SONG_DEFAULT_DURATION, SONG_DEFAULT_NOTE, SONG_NOTE_RANGE, } from './constants.js'; -import { bytesToBase64, clampRange, sleep } from './controlMath.js'; +import { bytesToBase64, clampRange } from './controlMath.js'; export function useCommandPipeline(options = {}) { const { driveTransform, auxTransform } = options; @@ -53,8 +52,17 @@ export function useCommandPipeline(options = {}) { const laserState = useMemo(() => rosterEntry?.laser?.state ?? null, [rosterEntry]); const emitCommand = useCallback( (payload, cb) => { - if (!roverId) return; - socket.emit('command', { roverId, ...payload }, cb); + if (!roverId || !socket.connected) { + cb?.({ error: 'Rover control connection unavailable' }); + return; + } + if (cb) { + socket.timeout(5000).emit('command', { roverId, ...payload }, (error, result) => { + cb(error ? { error: 'Rover command acknowledgement timed out' } : result); + }); + } else { + socket.emit('command', { roverId, ...payload }); + } }, [socket, roverId], ); @@ -142,41 +150,6 @@ export function useCommandPipeline(options = {}) { [emitCommand, enableSensorStream, roverId], ); - const runMacroSteps = useCallback( - async (macro) => { - if (!macro || !Array.isArray(macro.steps) || !roverId) return; - for (const step of macro.steps) { - if (!roverId) break; - switch (step.type) { - case 'oi': - sendOiCommand(step.command); - break; - case 'drive': - sendDriveDirect(step.speeds ?? { left: 0, right: 0 }); - break; - case 'motors': - sendAuxMotors(step.values ?? {}); - break; - case 'servo': - sendServoAngle(step.angle); - break; - case 'pause': - await sleep(step.duration ?? COMMAND_DELAY_MS); // eslint-disable-line no-await-in-loop - break; - default: - break; - } - if (step.delay || step.delayMs) { - const delay = step.delayMs ?? step.delay; - if (typeof delay === 'number' && delay > 0) { - await sleep(delay); // eslint-disable-line no-await-in-loop - } - } - } - }, - [roverId, sendOiCommand, sendDriveDirect, sendAuxMotors, sendServoAngle], - ); - const sendHeadlight = useCallback( (action = 'toggle') => { if (!roverId || !headlight) return null; @@ -277,7 +250,6 @@ export function useCommandPipeline(options = {}) { sendHorn, sendPeripheralControl, sendSong, - runMacroSteps, }), [ roverId, @@ -300,7 +272,6 @@ export function useCommandPipeline(options = {}) { sendHorn, sendPeripheralControl, sendSong, - runMacroSteps, ], ); } diff --git a/webui/src/controls/constants.js b/webui/src/controls/constants.js index 2fa1daed..5b83b6bb 100644 --- a/webui/src/controls/constants.js +++ b/webui/src/controls/constants.js @@ -12,10 +12,6 @@ export const DRIVE_LIMITS = { boostSpeed: 400, }; -export const MANUAL_DOCK_ASSIST_MAX_SPEED = 60; - -export const COMMAND_DELAY_MS = 100; - export const SONG_NOTE_RANGE = [31, 127]; export const SONG_DEFAULT_NOTE = 60; export const SONG_DEFAULT_DURATION = 8; @@ -64,23 +60,3 @@ export const DEFAULT_KEYMAP = { homeAssistantOn: ['ArrowRight'], homeAssistantOff: ['ArrowLeft'], }; - -export const DEFAULT_MACROS = [ - { - id: 'drive-sequence', - label: 'Drive', - description: 'Start, undock, and full command sequence used by the drive button.', - steps: [ - { type: 'servo', angle: 0 }, - { type: 'oi', command: 'start' }, - { type: 'pause', duration: COMMAND_DELAY_MS }, - { type: 'oi', command: 'dock' }, - { type: 'pause', duration: COMMAND_DELAY_MS }, - { type: 'oi', command: 'full' }, - { type: 'pause', duration: 300 }, - { type: 'drive', speeds: { left: -300, right: -300 } }, - { type: 'pause', duration: 600 }, - { type: 'drive', speeds: { left: 0, right: 0 } }, - ], - }, -]; diff --git a/webui/src/controls/controlMath.js b/webui/src/controls/controlMath.js index 0c540ca6..116a719a 100644 --- a/webui/src/controls/controlMath.js +++ b/webui/src/controls/controlMath.js @@ -55,7 +55,3 @@ export function bytesToBase64(bytes) { } throw new Error('No base64 encoder available'); } - -export function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} diff --git a/webui/src/controls/controlReducer.js b/webui/src/controls/controlReducer.js index cc325513..36b59a68 100644 --- a/webui/src/controls/controlReducer.js +++ b/webui/src/controls/controlReducer.js @@ -1,6 +1,6 @@ // Control State Reducer // Purpose: Implements reducer transitions for control-system runtime state. Scope: Centralizes deterministic state updates for input, mode, and dispatch events. -import { DEFAULT_KEYMAP, DEFAULT_MACROS, SONG_DEFAULT_NOTE } from './constants.js'; +import { DEFAULT_KEYMAP, SONG_DEFAULT_NOTE } from './constants.js'; function createDriveState() { return { @@ -49,12 +49,6 @@ function createMicState() { }; } -function createManualDockAssistState() { - return { - active: false, - }; -} - export const initialControlState = { roverId: null, mode: 'drive', @@ -64,9 +58,7 @@ export const initialControlState = { song: createSongState(), horn: createHornState(), mic: createMicState(), - manualDockAssist: createManualDockAssistState(), lastControlIntentAt: 0, - macros: DEFAULT_MACROS, keymap: DEFAULT_KEYMAP, inputs: {}, // Generic accessory controls do not currently report state back from roverd. @@ -86,7 +78,6 @@ export function controlReducer(state, action) { song: action.payload ? state.song : createSongState(), horn: action.payload ? state.horn : createHornState(), mic: action.payload ? state.mic : createMicState(), - manualDockAssist: action.payload ? state.manualDockAssist : createManualDockAssistState(), lastControlIntentAt: action.payload ? state.lastControlIntentAt : 0, }; case 'control/set-mode': @@ -169,11 +160,6 @@ export function controlReducer(state, action) { ...state, keymap: { ...state.keymap, ...(action.payload ?? {}) }, }; - case 'control/set-macros': - return { - ...state, - macros: Array.isArray(action.payload) ? action.payload : state.macros, - }; case 'control/reset': return { ...state, @@ -222,14 +208,6 @@ export function controlReducer(state, action) { pttActive: Boolean(action.payload), }, }; - case 'control/set-manual-dock-assist': - return { - ...state, - manualDockAssist: { - ...(state.manualDockAssist || createManualDockAssistState()), - active: Boolean(action.payload), - }, - }; case 'control/set-peripheral-value': { const roverId = String(action.payload?.roverId || ''); const peripheralId = String(action.payload?.peripheralId || ''); diff --git a/webui/src/controls/inputs/GamepadInputManager.jsx b/webui/src/controls/inputs/GamepadInputManager.jsx index d7621c67..9cba4332 100644 --- a/webui/src/controls/inputs/GamepadInputManager.jsx +++ b/webui/src/controls/inputs/GamepadInputManager.jsx @@ -1,3 +1,5 @@ +import { dockTelemetryEqual, selectDockTelemetry } from '../../context/telemetryViews.js'; +import { useTelemetrySelector } from '../../context/TelemetryContext.jsx'; // Gamepad Input Manager // Purpose: Converts polled gamepad state into normalized control actions/commands. Scope: Integrates bindings, deadzone math, and dispatch callbacks for driving. import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react'; @@ -17,7 +19,6 @@ import { } from './gamepadBindings.js'; import { subscribeGamepadHub } from './gamepadHub.js'; import { isTextEntryActive } from './inputFocusUtils.js'; -import { useManualDockAssist } from '../../features/manualDockAssist/useManualDockAssist.js'; import { isControllerControlLocked, markControllerDisconnected, @@ -113,12 +114,12 @@ function cycleHomeAssistant(latest, targetState) { export default function GamepadInputManager() { const { - setMode, setDriveVector, setAuxMotors, setServoAngle, setCameraAxisIntent, - runMacro, + undock, + sendCommand, toggleHeadlight, toggleLaser, registerInputState, @@ -131,7 +132,7 @@ export default function GamepadInputManager() { const cameraAngle = useControlSelector((control) => control.state.camera?.angle); const cameraConfig = useControlSelector((control) => control.state.camera?.config); const roverId = useControlSelector((control) => control.state.roverId); - const dockAssist = useManualDockAssist(); + const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); const { focusChat } = useChatActions(); const { isChatFocused } = useChatFocus(); const { homeAssistantSetState, pushAlert } = useSessionActions(); @@ -283,7 +284,7 @@ export default function GamepadInputManager() { role === 'lockdown' || (role === 'admin' && sessionMode !== 'lockdown'), cameraAngle, cameraConfig, - dockAssist, + dockTelemetry, focusChat, gamepadSettings, homeAssistant, @@ -292,7 +293,8 @@ export default function GamepadInputManager() { pushAlert, registerInputState, roverId, - runMacro, + undock, + sendCommand, saveGamepadSettings, saveVideoSettings, sendSong, @@ -300,8 +302,7 @@ export default function GamepadInputManager() { setCameraAxisIntent, setDriveVector, setMicPttActive, - setMode, - setSongNote, + setSongNote, setServoAngle, songNote, startHorn, @@ -462,15 +463,13 @@ export default function GamepadInputManager() { } if (outputs.buttons.driveMacro && handleButtonEdge('driveMacro', true)) { - latest.dockAssist.exitAssist(); - latest.setMode('drive'); - latest.runMacro('drive-sequence'); + latest.undock(); } else if (!outputs.buttons.driveMacro) { handleButtonEdge('driveMacro', false); } if (outputs.buttons.dockMacro && handleButtonEdge('dockMacro', true)) { - latest.dockAssist.toggleAssist(); + latest.sendCommand(latest.dockTelemetry.cameraLocked ? 'cancelDocking' : 'enterDocking'); } else if (!outputs.buttons.dockMacro) { handleButtonEdge('dockMacro', false); } diff --git a/webui/src/controls/inputs/KeyboardInputManager.jsx b/webui/src/controls/inputs/KeyboardInputManager.jsx index 6324430d..48fd5ab8 100644 --- a/webui/src/controls/inputs/KeyboardInputManager.jsx +++ b/webui/src/controls/inputs/KeyboardInputManager.jsx @@ -1,3 +1,5 @@ +import { dockTelemetryEqual, selectDockTelemetry } from '../../context/telemetryViews.js'; +import { useTelemetrySelector } from '../../context/TelemetryContext.jsx'; // Keyboard Input Manager // Purpose: Captures and translates keyboard events into normalized control intents. Scope: Owns keydown/keyup listeners and dispatch coordination for drive controls. import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react'; @@ -10,7 +12,6 @@ import { markKeyboardInputActive } from './controllerRuntime.js'; import { isTextInputElement } from './inputFocusUtils.js'; import { useSettingsNamespace } from '../../settings/index.js'; import { INPUT_SETTINGS_DEFAULTS, VIDEO_SETTINGS_DEFAULTS } from '../../settings/namespaces.js'; -import { useManualDockAssist } from '../../features/manualDockAssist/useManualDockAssist.js'; import { SONG_DEFAULT_DURATION, SONG_DEFAULT_NOTE, @@ -86,12 +87,12 @@ function shouldIgnoreEvent(event) { export default function KeyboardInputManager() { const { - setMode, setDriveVector, setAuxMotors, nudgeServo, setCameraAxisIntent, - runMacro, + undock, + sendCommand, stopAllMotion, registerInputState, setCameraPrecisionMode, @@ -107,12 +108,12 @@ export default function KeyboardInputManager() { const cameraNudgeDegrees = useControlSelector((control) => control.state.camera?.config?.nudgeDegrees); const songNote = useControlSelector((control) => control.state.song?.note); const roverId = useControlSelector((control) => control.state.roverId); + const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); const hornActive = useControlSelector((control) => Boolean(control.state.horn?.active)); const homeAssistant = useSessionSelector((state) => state.session?.homeAssistant || null); const role = useSessionSelector((state) => state.session?.role || null); const mode = useSessionSelector((state) => state.session?.mode || null); const adminCanControlLockedLights = role === 'lockdown' || (role === 'admin' && mode !== 'lockdown'); - const dockAssist = useManualDockAssist(); const { homeAssistantSetState, pushAlert } = useSessionActions(); const { focusChat } = useChatActions(); const { isChatFocused } = useChatFocus(); @@ -386,7 +387,7 @@ export default function KeyboardInputManager() { // before the browser can deliver the next keyboard event after a committed render. latestRef.current = { actionTokens, - dockAssist, + dockTelemetry, focusChat, homeAssistant, homeAssistantSetState, @@ -398,7 +399,8 @@ export default function KeyboardInputManager() { pushAlert, registerInputState, roverId, - runMacro, + undock, + sendCommand, saveVideoSettings, sendSong, servoRepeatMs, @@ -408,8 +410,7 @@ export default function KeyboardInputManager() { setCameraPrecisionMode, setDriveVector, setMicPttActive, - setMode, - setSongNote, + setSongNote, songNote, startHorn, stopAllMotion, @@ -452,11 +453,9 @@ export default function KeyboardInputManager() { if (newlyPressed.length > 0) { if (newlyPressed.some((token) => latest.keymap.driveMacro?.has(token))) { - latest.dockAssist.exitAssist(); - latest.setMode('drive'); - latest.runMacro('drive-sequence'); + latest.undock(); } else if (newlyPressed.some((token) => latest.keymap.dockMacro?.has(token))) { - latest.dockAssist.toggleAssist(); + latest.sendCommand(latest.dockTelemetry.cameraLocked ? 'cancelDocking' : 'enterDocking'); } else if (newlyPressed.some((token) => latest.keymap.headlightToggle?.has(token))) { latest.toggleHeadlight(); } else if (newlyPressed.some((token) => latest.keymap.laserToggle?.has(token))) { diff --git a/webui/src/features/manualDockAssist/useManualDockAssist.js b/webui/src/features/manualDockAssist/useManualDockAssist.js deleted file mode 100644 index e7b51a0a..00000000 --- a/webui/src/features/manualDockAssist/useManualDockAssist.js +++ /dev/null @@ -1,67 +0,0 @@ -import { useCallback, useEffect, useMemo, useRef } from 'react'; -import { useControlActions, useControlSelector } from '../../controls/index.js'; -import { useTelemetrySelector } from '../../context/TelemetryContext.jsx'; -import { dockTelemetryEqual, selectDockTelemetry } from '../../context/telemetryViews.js'; - -export function useManualDockAssist(options = {}) { - const { manageLifecycle = false } = options; - const roverId = useControlSelector((control) => control.state.roverId); - const active = useControlSelector((control) => Boolean(control.state.manualDockAssist?.active)); - const actions = useControlActions(); - const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); - const chargingLabel = dockTelemetry.chargingStateLabel || ''; - const docked = Boolean(dockTelemetry.homeBase); - const charging = docked && chargingLabel.toLowerCase() !== 'not charging' && chargingLabel !== ''; - const wasDockedRef = useRef(false); - - const enterAssist = useCallback(() => { - actions.setManualDockAssistActive(true); - }, [actions]); - - const exitAssist = useCallback(() => { - actions.setManualDockAssistActive(false); - }, [actions]); - - const toggleAssist = useCallback(() => { - actions.toggleManualDockAssist(); - }, [actions]); - - useEffect(() => { - if (!manageLifecycle) return; - const justDocked = docked && !wasDockedRef.current; - const justUndocked = !docked && wasDockedRef.current; - if (active && justDocked) { - // Stop on the first home-base contact so continued input cannot push the rover against the dock. - actions.stopAllMotion(); - actions.sendSong([{ note: 84, duration: 6 }], { slot: 1 }); - } else if (active && justUndocked) { - actions.sendSong([{ note: 72, duration: 6 }], { slot: 1 }); - } - wasDockedRef.current = docked; - }, [actions, active, docked, manageLifecycle]); - - useEffect(() => { - if (!manageLifecycle || !active || !charging) return; - exitAssist(); - }, [active, charging, exitAssist, manageLifecycle]); - - const statusLabel = charging ? 'Docked and charging' : docked ? 'Docked' : 'Docking assist active'; - const statusTone = charging ? 'good' : docked ? 'warn' : 'active'; - const visible = active || docked; - - return useMemo( - () => ({ - active, - docked, - charging, - cameraLocked: active, - visible, - statusLabel, - statusTone, - enterAssist, - exitAssist, - toggleAssist, - }), - [active, charging, docked, enterAssist, exitAssist, statusLabel, statusTone, toggleAssist, visible], - ); -} diff --git a/webui/src/layouts/driver/DesktopRightPaneTabs/index.jsx b/webui/src/layouts/driver/DesktopRightPaneTabs/index.jsx index 1e3ff92d..d5d8d552 100644 --- a/webui/src/layouts/driver/DesktopRightPaneTabs/index.jsx +++ b/webui/src/layouts/driver/DesktopRightPaneTabs/index.jsx @@ -1,3 +1,5 @@ +import { dockTelemetryEqual, selectDockTelemetry } from '../../../context/telemetryViews.js'; +import { useTelemetrySelector } from '../../../context/TelemetryContext.jsx'; // Right Pane Tabs // Purpose: Defines the Right Pane Tabs module and the local helpers/components used in this file. // Scope: Keeps behavior unchanged while isolating this concern into a clear, single-responsibility unit. @@ -22,7 +24,6 @@ import { useSessionSelector } from '../../../context/SessionContext.jsx'; import OverseerPreferencePanel from '../../../components/OverseerPreferencePanel/index.jsx'; import CardFrame from '../../../components/CardFrame/index.jsx'; import { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'; -import { useManualDockAssist } from '../../../features/manualDockAssist/useManualDockAssist.js'; import { themeGapClass, themeStackClass } from '../../../themes/index.js'; import ActivitiesTab from '../tabs/shared/ActivitiesTab/index.jsx'; import VipTab from '../tabs/shared/VipTab/index.jsx'; @@ -62,7 +63,7 @@ function DriveDockPanel() { const laserState = useControlSelector((control) => control.pipeline?.laserState); const pipelineHorn = useControlSelector((control) => control.pipeline?.horn); const { setServoAngle, setHeadlight, setLaser, startHorn, stopHorn } = useControlActions(); - const dockAssist = useManualDockAssist(); + const dockTelemetry = useTelemetrySelector(roverId, selectDockTelemetry, dockTelemetryEqual); const driveDockState = useDriveDockState(roverId); const hideInlineControls = driveDockState.docked && !driveDockState.driving; @@ -85,7 +86,7 @@ function DriveDockPanel() { const hornLabel = ; const upLabel = ; const downLabel = ; - const cameraDisabled = Boolean(!roverId || dockAssist.cameraLocked); + const cameraDisabled = Boolean(!roverId || dockTelemetry.cameraLocked); /* Precision movement mode also tightens the servo slider step. The command path still sends ordinary angle targets; only the UI increment changes while From bee1866a70cb3247bcd72b58c811a30debed8268 Mon Sep 17 00:00:00 2001 From: legop3 Date: Thu, 1 Oct 2026 21:40:36 -0400 Subject: [PATCH 2/4] fixings --- server/src/services/dockingService/index.js | 53 ++++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/server/src/services/dockingService/index.js b/server/src/services/dockingService/index.js index 2ded154f..34a787b4 100644 --- a/server/src/services/dockingService/index.js +++ b/server/src/services/dockingService/index.js @@ -8,12 +8,15 @@ const ASSIST_SPEED = 60; const SENSOR_TIMEOUT_MS = 1500; const UNDOCK_TIMEOUT_MS = 4000; const REVERSE_TIMEOUT_MS = 1000; +// Preserve the working OI preparation sequence; only backing away is sensor-driven. +const MODE_COMMAND_DELAY_MS = 100; +const FULL_MODE_SETTLE_MS = 300; function stateFor(record) { if (!states.has(record)) { states.set(record, { contact: null, charging: false, latched: false, assist: false, - operation: null, error: null, seenAt: 0, timer: null, + operation: null, error: null, seenAt: 0, timer: null, contactDockPending: false, }); } return states.get(record); @@ -63,12 +66,12 @@ function camera(record, angle) { function song(record, notes, slot = 0, duration = 10) { send(record, { type: 'song', song: { slot, notes: notes.map((note) => ({ note, duration })) } }); } -function finishAssist(record) { +function finishAssist(record, { playExitSong = true } = {}) { const state = stateFor(record); if (!state.assist) return; state.assist = false; camera(record, 0); - song(record, [83, 76]); + if (playExitSong) song(record, [83, 76]); } function clearOperation(state) { clearTimeout(state.timer); @@ -111,6 +114,7 @@ function handleIntent(record, type, payload, socket) { return; } state.error = null; + state.contactDockPending = false; require('../roverManager').stopDockGuard(record.id); stop(record); if (type === 'enterDocking') { @@ -123,10 +127,11 @@ function handleIntent(record, type, payload, socket) { } else { finishAssist(record); camera(record, 0); - state.operation = { startedAt: Date.now(), socket, backoff: payload.backoff !== false, reversing: false }; - // Full mode works from an initialized OI; start only when OI is off. - if (record.lastSensor?.decoded?.oiMode?.code === 0) mode(record, 128); - mode(record, 132); + state.operation = { + startedAt: Date.now(), socket, backoff: payload.backoff !== false, reversing: false, + stage: 'start', nextStepAt: Date.now() + MODE_COMMAND_DELAY_MS, + }; + mode(record, 128); armDeadline(record); } publish(record); @@ -149,6 +154,16 @@ function processTelemetry(record, sensors) { } else if (Date.now() - operation.startedAt >= UNDOCK_TIMEOUT_MS || (operation.reversingAt && Date.now() - operation.reversingAt >= REVERSE_TIMEOUT_MS)) { fail(record, 'undockTimeout', 'Unable to leave the dock.'); + } else if (Date.now() < operation.nextStepAt) { + // Advance only on fresh telemetry, after the previous OI command settles. + } else if (operation.stage === 'start') { + mode(record, 143); + operation.stage = 'dock'; + operation.nextStepAt = Date.now() + MODE_COMMAND_DELAY_MS; + } else if (operation.stage === 'dock') { + mode(record, 132); + operation.stage = 'full'; + operation.nextStepAt = Date.now() + FULL_MODE_SETTLE_MS; } else if (sensors.oiMode.label === 'full') { if (!state.contact || !operation.backoff) { stop(record); @@ -174,12 +189,25 @@ function processTelemetry(record, sensors) { state.latched = true; if (previousContact !== true) { stopAllMotion(record); - mode(record, 143); + state.contactDockPending = true; if (state.assist) song(record, [84], 1, 6); + } else if (state.contactDockPending && !state.charging) { + const speeds = sensors.wheelSpeedsMmPerSecond; + // A stop request does not prove the wheels stopped on the contacts. + // Require a subsequent frame with contact and measured stationary wheels. + if (speeds?.left === 0 && speeds?.right === 0) { + mode(record, 143); + state.contactDockPending = false; + } } - if (state.charging) finishAssist(record); - } else if (previousContact === true && state.assist) { - song(record, [72], 1, 6); + if (state.charging) { + state.contactDockPending = false; + // An immediate exit song would replace the contact beep on the Roomba. + finishAssist(record, { playExitSong: false }); + } + } else { + state.contactDockPending = false; + if (previousContact === true && state.assist) song(record, [72], 1, 6); } } catch (error) { fail(record, 'commandFailed', error.message); @@ -259,7 +287,8 @@ function issueIntent(record, type, payload, socket) { if (Date.now() - state.seenAt >= SENSOR_TIMEOUT_MS || state.contact == null) { throw new Error('Waiting for current rover telemetry'); } - if (type === 'enterDocking' && state.contact) throw new Error('Rover is already docked'); + // Already at the requested destination; acknowledge without restarting assist. + if (type === 'enterDocking' && state.contact) return uuidv4(); } const id = uuidv4(); try { From e8a407cd49455c8d9380e98a6c171a8c61a7477a Mon Sep 17 00:00:00 2001 From: legop3 Date: Fri, 2 Oct 2026 23:05:39 -0400 Subject: [PATCH 3/4] revise what counts for idle service --- server/src/services/idleService/index.js | 35 +++++++++++------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/server/src/services/idleService/index.js b/server/src/services/idleService/index.js index 2020f9b9..b238b393 100644 --- a/server/src/services/idleService/index.js +++ b/server/src/services/idleService/index.js @@ -4,12 +4,15 @@ const logger = require('../../globals/logger').child('idleService'); const io = require('../../globals/io'); const { getRole, roleEvents } = require('../roleService'); +const { getMode, MODES, modeEvents } = require('../modeManager'); +const { isDeterred, verificationEvents } = require('../verificationService'); const { IDLE_TIMEOUT_MS } = require('./constants'); const { runtime } = require('./state'); const { runIdleActions } = require('./actions'); const activityControls = require('../homeAssistantActivitiesService'); function getActivitySnapshot() { + const mode = getMode(); let onlineUsers = 0; let onlineAdmins = 0; let onlineSpectators = 0; @@ -29,12 +32,16 @@ function getActivitySnapshot() { return; } - /* - Lockdown admins are counted with regular admins because both represent a - person with operator-level access who may be supervising the room without - actively driving a rover. Plain users also count even before they request - control, which is the behavior this service now needs. - */ + + if ( + isDeterred(socket) + || (mode === MODES.ADMIN && role !== 'admin' && role !== 'lockdown') + || (mode === MODES.LOCKDOWN && role !== 'lockdown') + ) { + onlineIgnored += 1; + return; + } + if (role === 'admin' || role === 'lockdown') { onlineAdmins += 1; return; @@ -90,7 +97,7 @@ function scheduleIdleTimer() { runtime.deadlineAt = null; const activity = getActivitySnapshot(); if (activity.totalActive > 0) { - logger.info('Idle automation skipped; user or admin online', activity); + logger.info('Idle automation skipped; eligible operator online', activity); return; } runtime.lastTriggeredAt = Date.now(); @@ -114,18 +121,12 @@ function scheduleIdleTimer() { function refreshIdleState() { const activity = getActivitySnapshot(); logger.info('Idle state refresh', activity); - // Share the exact idle presence policy; Activity Controls must not count spectators or invent a second role filter. activityControls.setOperatorsOnline(activity.totalActive > 0); if (activity.totalActive > 0) { clearIdleTimer(); if (runtime.idleActionsCompleted) { logger.info('Idle action one-shot reset; operator is online again', activity); } - /* - A user/admin coming online starts a new activity window. When the room - later becomes idle again, the cleanup pipeline should be allowed to run - once for that new idle period. - */ runtime.idleActionsCompleted = false; return; } @@ -133,17 +134,13 @@ function refreshIdleState() { } io.on('connection', (socket) => { - /* - A user/admin can be online without ever touching rover controls, so socket - presence has to be a first-class idle signal. The disconnect hook is just as - important: it is what starts the idle timeout after the last non-spectator - leaves, even if no driving event happens around that departure. - */ refreshIdleState(); socket.on('disconnect', refreshIdleState); }); roleEvents.on('change', refreshIdleState); +modeEvents.on('change', refreshIdleState); +verificationEvents.on('change', refreshIdleState); refreshIdleState(); From 7bac2fc4472b5b17d060bd52d4b22158c9efab10 Mon Sep 17 00:00:00 2001 From: legop3 Date: Fri, 2 Oct 2026 23:07:14 -0400 Subject: [PATCH 4/4] todoing --- to-do.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/to-do.md b/to-do.md index 366b7f85..60ad413a 100644 --- a/to-do.md +++ b/to-do.md @@ -3,20 +3,9 @@ research how midis can be played easier with drag and drop, auto selection based on which playback mode would fit, more useful and clear toggles, sample midi files to analyze how they would play on a single tone system, better live playback to see what notes are actually playing from each source and what simply wont play on the speaker and make sure each toggle and counter actually has a purpose besides debugging or something more useful to the user, note skipped is just for debugging ``` -1. add new discord channel: live status - 1. one concise message which contains the status of all the rovers - 2. bot clears the channel, then sends a new message - 3. has a fancy big embed that shows way more stuff - 4. also has a small text copy at the top (readable on smartwatch lol) - 1. ``` - freaky: docked - wall-e: user1 driving - bweeble: NEEDS HELP - ``` -2. setting to disable replay popups in spectator settings menu -3. add admin ui for VIP and private requests instead of only through discord -4. make roverd self update checkout to main branch -5. fix this: +1. add admin ui for VIP and private requests instead of only through discord +2. make roverd self update checkout to main branch +3. fix this: `Jun 18 15:14:18 roombaserver.local node[216731]: /home/daniel/MultiRoombaRover/server/src/services/roverManager/socketHandlers.js:92 Jun 18 15:14:18 roombaserver.local node[216731]: cb({ error: err.message }); Jun 18 15:14:18 roombaserver.local node[216731]: ^