fix(pose_3d): front-tag detection solo al cambio immagine, non in loop

L'overlay tag frontale (D435i) ri-eseguiva la detection ArUco ad ogni
tick di pollState() finche' il flag era attivo. Ora gira solo:
- al toggle on del checkbox
- a fine acquireClouds() (pulsante Acquisisci) se il flag e' attivo

Rimosso il piggyback in pollState() e lo stato front_tags.in_flight
ormai inutilizzato.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
AdrianoandClaude Opus 4.8 committed 2026-06-03 10:05:51 +02:00
1 parent fb0e9b9112
commit b4922fe01b
1 file changed
+6 -7
+6 -7
View File
@@ -229,7 +229,6 @@ const state = {
}, },
front_tags: { // overlay tag visibili dalla camera D435i frontale front_tags: { // overlay tag visibili dalla camera D435i frontale
group: null, // THREE.Group child del d435 parent (cloud-like transform) group: null, // THREE.Group child del d435 parent (cloud-like transform)
in_flight: false, // evita richieste sovrapposte se il fetch supera il poll
}, },
}; };
@@ -796,12 +795,9 @@ async function pollState() {
// soft fail: log + segna lo stato // soft fail: log + segna lo stato
console.warn('pose_3d /state fail:', e.message); console.warn('pose_3d /state fail:', e.message);
} }
// Front-camera tag overlay: piggyback sul ciclo poll dello state, no // NB: il front-tag overlay NON viene aggiornato qui. La detection ArUco
// timer separato. Se il flag e' on aggiorniamo il rendering ad ogni tick. // gira solo al cambio dell'immagine (pulsante Acquisisci -> acquireClouds)
if ($('p3ShowFrontTags')?.checked && !state.front_tags.in_flight) { // e al toggle on del flag, non ad ogni tick del poll dello state.
state.front_tags.in_flight = true;
pollFrontTags().finally(() => { state.front_tags.in_flight = false; });
}
} }
function refreshPoseSelect() { function refreshPoseSelect() {
@@ -1769,6 +1765,9 @@ async function acquireClouds() {
// Memorizza i parametri usati in questa acquisizione (best-effort, // Memorizza i parametri usati in questa acquisizione (best-effort,
// non blocca il rendering del cloud se il save fallisce). // non blocca il rendering del cloud se il save fallisce).
saveCloudParamsToConfig(); saveCloudParamsToConfig();
// Nuova immagine acquisita: se l'overlay tag e' attivo ri-esegui la
// detection una volta sola, sul frame appena acquisito.
if ($('p3ShowFrontTags')?.checked) pollFrontTags();
} catch (e) { } catch (e) {
$('p3CloudStatus').textContent = `errore: ${e.message}`; $('p3CloudStatus').textContent = `errore: ${e.message}`;
$('p3CloudStatus').style.color = 'var(--danger)'; $('p3CloudStatus').style.color = 'var(--danger)';