G92 senden besser

This commit is contained in:
chk
2026-06-25 17:34:41 +02:00
parent 7818604c02
commit da2a5d5ae6
6 changed files with 54 additions and 43 deletions

View File

@@ -346,20 +346,16 @@ function setHomingProgress(step, total, text) {
if (txt) txt.textContent = text || `Schritt ${step} / ${total}`;
}
// Schreibt das G92-Kommando ins Eingabefeld.
// - progressiv (full=false): nur die bereits bestimmten Achsen, je Gelenk-Update
// - final (full=true): alle 7 Achsen; fehlende c (Palm) / e (Greifer)
// werden als 0 ergänzt — identisch zu dem, was
// "An Roboter senden" via server/buildG92.cjs sendet.
function writePartialGCode(state, { full = false } = {}) {
// Schreibt das G92-Kommando ins Eingabefeld — nur die tatsächlich bestimmten
// Achsen, identisch zu dem, was "An Roboter senden" via server/buildG92.cjs
// sendet (fehlende/unbeobachtbare Achsen werden weggelassen, nicht 0-gefüllt).
function writePartialGCode(state) {
const axisMap = { x: 'X', y: 'Y', z: 'Z', a: 'A', b: 'B', c: 'C', e: 'E' };
const parts = [];
for (const [key, axis] of Object.entries(axisMap)) {
const num = Number(state[key]);
if (state[key] != null && Number.isFinite(num)) {
parts.push(`${axis}${num.toFixed(2)}`);
} else if (full) {
parts.push(`${axis}0.00`);
}
}
if (!parts.length) return;
@@ -559,9 +555,10 @@ async function runHoming() {
if (evt.state) {
_homingState = evt.state;
showHomingResult(evt.state);
// Vollständiges G92 (inkl. C0/E0) ins Feld — exakt das, was
// "An Roboter senden" schickt.
writePartialGCode(evt.state, { full: true });
// Finales G92 ins Feld — auch wenn der Lauf über den Fallback
// (5_pose_estimation → analysis 'robot_state' statt 'state_*')
// lief und progressiv kein G92 geschrieben wurde.
writePartialGCode(evt.state);
if (btnSend) {
btnSend.disabled = false;
btnSend.style.opacity = '';