callibration fix 1

This commit is contained in:
chk
2026-06-10 12:16:52 +02:00
parent 2ebe7b709b
commit 339f9388d0

View File

@@ -451,6 +451,13 @@
}
});
// Hilfsfunktion: fetch-Response sicher als Text lesen und in lesbaren Fehler umwandeln
async function safeJson(r) {
const raw = await r.text().catch(() => '');
try { return { ok: r.ok, status: r.status, data: JSON.parse(raw) }; }
catch { return { ok: r.ok, status: r.status, data: null, raw: raw.slice(0, 300) }; }
}
// "NPZ speichern" → an Webcam-Service übertragen
document.getElementById('btn-upload-npz').addEventListener('click', async () => {
const camera = document.getElementById('cam-select-calib').value;
@@ -458,15 +465,17 @@
logC(`NPZ wird an Webcam-Service übertragen (${camera}) …`);
try {
const r = await fetch('/api/calibration/upload-npz', {
const { ok, status, data, raw } = await safeJson(await fetch('/api/calibration/upload-npz', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ camera }),
});
const d = await r.json();
if (d.error) { logC(`❌ Fehler: ${d.error}`); return; }
logC(`✅ Gespeichert: ${d.webcam?.saved} (${d.size} Bytes)`);
logC(` calibrationUrl: ${d.webcam?.calibrationUrl}`);
}));
if (!ok || data?.error) {
logC(`❌ HTTP ${status}: ${data?.error ?? raw ?? '(kein Fehlertext)'}`);
return;
}
logC(`✅ Gespeichert: ${data.webcam?.saved} (${data.size} Bytes)`);
logC(` calibrationUrl: ${data.webcam?.calibrationUrl}`);
} catch (err) {
logC(`❌ Fehler: ${err}`);
}
@@ -489,8 +498,11 @@
});
if (!response.ok) {
const err = await response.json().catch(() => ({ error: response.statusText }));
logC(`Fehler: ${err.error}`);
const raw = await response.text().catch(() => '');
let msg;
try { msg = JSON.parse(raw).error || raw; }
catch { msg = raw.slice(0, 300) || response.statusText; }
logC(`❌ HTTP ${response.status}: ${msg || '(kein Fehlertext evtl. Server neu starten?)'}`);
return;
}