This commit is contained in:
legop3
2025-11-17 23:28:22 -05:00
parent 10e78757b9
commit baf7e2ea44
5 changed files with 31 additions and 7 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>webui</title>
<script type="module" crossorigin src="/assets/index-DgBoZ7rI.js"></script>
<script type="module" crossorigin src="/assets/index-BlaZqU9Q.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BaCUS21F.css">
</head>
<body>
+4
View File
@@ -65,6 +65,8 @@ export function ControlSystemProvider({ children }) {
const setDriveVector = useCallback(
(vector, meta = {}) => {
// eslint-disable-next-line no-console
console.debug('[control] setDriveVector', vector, meta);
const computed = computeDifferentialSpeeds(vector);
dispatch({
type: 'control/update-drive',
@@ -77,6 +79,8 @@ export function ControlSystemProvider({ children }) {
const setAuxMotors = useCallback(
(values = {}) => {
// eslint-disable-next-line no-console
console.debug('[control] setAuxMotors', values);
const payload = pipeline.sendAuxMotors(values) ?? values;
dispatch({
type: 'control/set-aux-motors',
+4
View File
@@ -42,6 +42,8 @@ export function useCommandPipeline() {
left: clampRange(speeds?.left ?? 0, [-500, 500]),
right: clampRange(speeds?.right ?? 0, [-500, 500]),
};
// eslint-disable-next-line no-console
console.debug('[pipeline] sendDriveDirect', payload);
emitCommand({
type: 'drive',
data: { driveDirect: payload },
@@ -59,6 +61,8 @@ export function useCommandPipeline() {
side: clampRange(side, AUX_LIMITS.side),
vacuum: clampRange(vacuum, AUX_LIMITS.vacuum),
};
// eslint-disable-next-line no-console
console.debug('[pipeline] sendAuxMotors', payload);
emitCommand({
type: 'motors',
data: { motorPwm: payload },
@@ -194,6 +194,8 @@ export default function KeyboardInputManager() {
vector.y !== lastVectorRef.current.y ||
vector.boost !== lastVectorRef.current.boost
) {
// eslint-disable-next-line no-console
console.debug('[keyboard] drive vector', Array.from(tokensSnapshot), vector);
lastVectorRef.current = vector;
setDriveVector(vector, { source: SOURCE });
}
@@ -202,6 +204,8 @@ export default function KeyboardInputManager() {
aux.side !== lastAuxRef.current.side ||
aux.vacuum !== lastAuxRef.current.vacuum
) {
// eslint-disable-next-line no-console
console.debug('[keyboard] aux state', Array.from(tokensSnapshot), aux);
lastAuxRef.current = aux;
setAuxMotors(aux);
}
@@ -229,18 +233,26 @@ export default function KeyboardInputManager() {
const ensureServoLoop = useCallback(() => {
const direction = computeServoDirection();
if (direction === 0) {
if (servoIntervalRef.current) {
// eslint-disable-next-line no-console
console.debug('[keyboard] servo loop stop');
}
stopServoLoop();
return;
}
if (servoIntervalRef.current) {
return;
}
// eslint-disable-next-line no-console
console.debug('[keyboard] servo loop start', direction);
const tick = () => {
const nextDirection = computeServoDirection();
if (nextDirection === 0) {
stopServoLoop();
return;
}
// eslint-disable-next-line no-console
console.debug('[keyboard] servo tick', nextDirection);
nudgeServo(nextDirection * servoStep);
servoIntervalRef.current = setTimeout(tick, SERVO_REPEAT_MS);
};
@@ -264,6 +276,8 @@ export default function KeyboardInputManager() {
if (tokens.some((token) => actionTokens.has(token))) {
event.preventDefault();
}
// eslint-disable-next-line no-console
console.debug('[keyboard] keydown', { key: event.key, code: event.code, tokens });
const newlyPressed = tokens.filter((token) => !activeTokensRef.current.has(token));
newlyPressed.forEach((token) => activeTokensRef.current.add(token));
@@ -283,6 +297,8 @@ export default function KeyboardInputManager() {
function handleKeyUp(event) {
const tokens = tokensFromEvent(event);
// eslint-disable-next-line no-console
console.debug('[keyboard] keyup', { key: event.key, code: event.code, tokens });
tokens.forEach((token) => activeTokensRef.current.delete(token));
ensureServoLoop();
driveFromKeys();