From cf71803fc4a3fd1bbb03f8965c66023eccc4fb95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PROFERIS=20-=20Mi=C2=B3osz=20Stocki?= Date: Wed, 8 Jul 2026 13:12:12 +0200 Subject: [PATCH] kinematics --- src/main.cpp | 25 +++++++++++++++++++------ web/js/sections/stepper-test.js | 6 ++---- web/js/sequence-runner.js | 6 ++---- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8029531..8b61195 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -118,19 +118,32 @@ class CmdCallbacks : public BLECharacteristicCallbacks { // ─── Command parser ─────────────────────────────────────────────── void parseCommand(const String &cmd) { - // S1+ or S1- + // S1+ or S1- (Relative) if (cmd.startsWith("S1") && cmd.length() > 2) { - long steps = - cmd.substring(2).toInt(); // '+' or '-' prefix handled by toInt() + long steps = cmd.substring(2).toInt(); stepper1.move(steps); - Serial.printf("[S1] Move %+ld steps\n", steps); + Serial.printf("[S1] Move relative %+ld steps\n", steps); return; } - // S2+ or S2- + // S2+ or S2- (Relative) if (cmd.startsWith("S2") && cmd.length() > 2) { long steps = cmd.substring(2).toInt(); stepper2.move(steps); - Serial.printf("[S2] Move %+ld steps\n", steps); + Serial.printf("[S2] Move relative %+ld steps\n", steps); + return; + } + // X1: (Absolute) + if (cmd.startsWith("X1:")) { + long target = cmd.substring(3).toInt(); + stepper1.moveTo(target); + Serial.printf("[S1] Move absolute to %ld\n", target); + return; + } + // X2: (Absolute) + if (cmd.startsWith("X2:")) { + long target = cmd.substring(3).toInt(); + stepper2.moveTo(target); + Serial.printf("[S2] Move absolute to %ld\n", target); return; } // SPD: diff --git a/web/js/sections/stepper-test.js b/web/js/sections/stepper-test.js index 3c44a94..df34b12 100644 --- a/web/js/sections/stepper-test.js +++ b/web/js/sections/stepper-test.js @@ -197,11 +197,9 @@ async function moveToXY(targetX, targetY) { const newSteps1 = IK.radToSteps(theta1); const newSteps2 = IK.radToSteps(theta2); - const delta1 = newSteps1 - steps1; - const delta2 = newSteps2 - steps2; - const cmd1 = `S1${delta1 >= 0 ? '+' : ''}${delta1}`; - const cmd2 = `S2${delta2 >= 0 ? '+' : ''}${delta2}`; + const cmd1 = `X1:${newSteps1}`; + const cmd2 = `X2:${newSteps2}`; if (BLE.isConnected()) { try { diff --git a/web/js/sequence-runner.js b/web/js/sequence-runner.js index 903cf09..107ceaf 100644 --- a/web/js/sequence-runner.js +++ b/web/js/sequence-runner.js @@ -66,11 +66,9 @@ export default { const newSteps1 = IK.radToSteps(res.theta1); const newSteps2 = IK.radToSteps(res.theta2); - const delta1 = newSteps1 - steps1; - const delta2 = newSteps2 - steps2; - const cmd1 = `S1${delta1 >= 0 ? '+' : ''}${delta1}`; - const cmd2 = `S2${delta2 >= 0 ? '+' : ''}${delta2}`; + const cmd1 = `X1:${newSteps1}`; + const cmd2 = `X2:${newSteps2}`; UI.log(`Seq step: ${label}`, 'info');