G92 senden besser
This commit is contained in:
@@ -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 = '';
|
||||
|
||||
Reference in New Issue
Block a user