robot.json neue Marker einfügen
This commit is contained in:
@@ -706,8 +706,23 @@ app.post('/api/robot/assign-by-z', async (req, res) => {
|
||||
if (!set && !link) {
|
||||
return res.status(400).json({ error: 'Mindestens set oder link muss angegeben werden' });
|
||||
}
|
||||
const result = await assignByZRange(ROBOT_JSON, { zMin, zMax, set, link });
|
||||
console.log(`robot/assign-by-z z=[${zMin}..${zMax}] set="${set}" link="${link}" → ${result.numChanged} geändert`);
|
||||
|
||||
// Triangulierte Marker aus dem letzten Board-Run als Zusatzquelle für
|
||||
// Marker, die noch nicht in robot.json stehen (z.B. neu entdeckte Marker)
|
||||
let extraMarkers = [];
|
||||
try {
|
||||
const latestRun = await findLatestBoardRun();
|
||||
if (latestRun) {
|
||||
const posesPath = path.join(boardDataDir, latestRun, 'aruco_marker_poses.json');
|
||||
const poses = JSON.parse(await fsPromises.readFile(posesPath, 'utf8'));
|
||||
extraMarkers = poses.markers ?? [];
|
||||
}
|
||||
} catch { /* kein 3b-Output vorhanden – nur bestehende robot.json-Marker bearbeiten */ }
|
||||
|
||||
const result = await assignByZRange(ROBOT_JSON, { zMin, zMax, set, link, extraMarkers });
|
||||
const added = result.changes.filter(c => c.action === 'added').length;
|
||||
const updated = result.changes.filter(c => c.action === 'updated').length;
|
||||
console.log(`robot/assign-by-z z=[${zMin}..${zMax}] set="${set}" link="${link}" → ${updated} aktualisiert, ${added} neu (von ${extraMarkers.length} 3b-Markern)`);
|
||||
return res.json(result);
|
||||
} catch (err) {
|
||||
console.error('robot/assign-by-z error:', err);
|
||||
|
||||
Reference in New Issue
Block a user