x-axis justierung: visualize
This commit is contained in:
@@ -620,26 +620,46 @@ app.post('/api/board/run', async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
/** Neuestes Board-Run-Verzeichnis (Timestamp-Name) oder null */
|
||||
async function findLatestBoardRun() {
|
||||
/** Alle Board-Run-Verzeichnisse, neueste zuerst */
|
||||
async function listBoardRuns() {
|
||||
try {
|
||||
await fsPromises.access(boardDataDir);
|
||||
const entries = await fsPromises.readdir(boardDataDir, { withFileTypes: true });
|
||||
const dirs = entries.filter(e => e.isDirectory()).map(e => e.name).sort().reverse();
|
||||
return dirs[0] ?? null;
|
||||
return entries.filter(e => e.isDirectory()).map(e => e.name).sort().reverse();
|
||||
} catch {
|
||||
return null;
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/** Neuestes Board-Run-Verzeichnis (Timestamp-Name) oder null */
|
||||
async function findLatestBoardRun() {
|
||||
const dirs = await listBoardRuns();
|
||||
return dirs[0] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/board/latest
|
||||
* Gibt Daten des letzten Board-Runs zurück: robot.json + Detection-Ergebnisse + Kamera-Posen.
|
||||
* GET /api/board/runs?limit=N
|
||||
* Gibt eine Liste der vorhandenen Board-Run-Verzeichnisse zurück (neueste zuerst).
|
||||
*/
|
||||
app.get('/api/board/runs', async (req, res) => {
|
||||
try {
|
||||
const limit = Math.max(1, Math.min(50, parseInt(req.query.limit ?? '10', 10)));
|
||||
const runs = await listBoardRuns();
|
||||
return res.json({ runs: runs.slice(0, limit) });
|
||||
} catch (err) {
|
||||
return res.status(500).json({ error: String(err) });
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* GET /api/board/latest?run=<timestamp>
|
||||
* Gibt Daten eines Board-Runs zurück: robot.json + Detection-Ergebnisse + Kamera-Posen.
|
||||
* Ohne ?run → neuester Run. Mit ?run=<timestamp> → genau dieser Run.
|
||||
* Wird vom Board-Viewer (boardViewer.html) abgefragt.
|
||||
*/
|
||||
app.get('/api/board/latest', async (req, res) => {
|
||||
try {
|
||||
const runName = await findLatestBoardRun();
|
||||
const runName = req.query.run || await findLatestBoardRun();
|
||||
if (!runName) return res.json({ runDir: null, robot: null, detections: [], cameraPoses: [] });
|
||||
|
||||
const runDir = path.join(boardDataDir, runName);
|
||||
|
||||
Reference in New Issue
Block a user