UI verbessern

This commit is contained in:
chk
2026-06-14 18:24:12 +02:00
parent 7d76caa00b
commit c23fbf75f2
4 changed files with 135 additions and 14 deletions

View File

@@ -667,17 +667,31 @@ app.get('/api/board/runs', async (req, res) => {
});
/**
* GET /api/board/latest?run=<timestamp>
* GET /api/board/latest?run=<timestamp>&from=homing
* Gibt Daten eines Board-Runs zurück: robot.json + Detection-Ergebnisse + Kamera-Posen.
* Ohne ?run → neuester Run. Mit ?run=<timestamp> → genau dieser Run.
* ?from=homing → liest aus data/homing/ statt data/board/ (für boardViewer im Homing-Mode).
* Wird vom Board-Viewer (boardViewer.html) abgefragt.
*/
app.get('/api/board/latest', async (req, res) => {
try {
const runName = req.query.run || await findLatestBoardRun();
const fromHoming = req.query.from === 'homing';
const dataDir = fromHoming ? homingDataDir : boardDataDir;
let runName = req.query.run;
if (!runName) {
if (fromHoming) {
try {
const entries = await fsPromises.readdir(dataDir, { withFileTypes: true });
runName = entries.filter(e => e.isDirectory()).map(e => e.name).sort().reverse()[0] ?? null;
} catch { runName = null; }
} else {
runName = await findLatestBoardRun();
}
}
if (!runName) return res.json({ runDir: null, robot: null, detections: [], cameraPoses: [] });
const runDir = path.join(boardDataDir, runName);
const runDir = path.join(dataDir, runName);
let robot = null;
try { robot = JSON.parse(await fsPromises.readFile(ROBOT_JSON, 'utf8')); } catch {}