+4
−0
+7
−1
+2
−0
+2
−0
noctua/templates/snapshot_echelle.py
0 → 100644
+264
−0
Loading
devices/atik.py: _run_loop() non chiamava mai download() — il loop
scattava esposizioni ma non scriveva mai il FITS, quindi il viewer non
poteva aggiornarsi (scicam2 Loop).
devices/mako.py: l'eccezione nella fase di setup di _run_loop() spariva
senza log — il thread moriva in silenzio con looping ancora "true" in
UI (teccam2/3 Loop).
devices/{stx,atik,stl,mako}.py: log.info("... Loop started"/"stopped")
uniforme nel setter looping e a fine _run_loop(), per coerenza fra i
quattro device.
templates/snapshot_echelle.py: non esisteva (copia di
snapshot_spectro.py, camera_name default cam3) — Expose su scicam3
falliva con un 500 mai segnalato.
web/static/js/control.js:
- postExpose() ora controlla res.ok e mostra l'errore reale (showToast
già esisteva ma non veniva mai raggiunto).
- mancava del tutto il listener per btn-echelle-expose: il bottone
Expose di scicam3 non faceva nulla a prescindere dal template.
- i checkbox "Auto" del FITS viewer sono ora governati su due assi,
modo (imaging/spectro/echelle) e tab Monitor (Scicam #mon-fits /
Teccam #mon-teccam, via l'evento Bootstrap shown.bs.tab): è acceso
solo quello del combo e del ruolo attivi, tutti gli altri sono spenti
e disabilitati.
web/static/js/loop-toggle.js: poll ogni 5s mentre lo switch Loop è
"on", per riflettere un loop morto silenziosamente lato backend invece
di restare bloccato su "acceso" senza feedback.
web/static/js/viewer/fits-viewer.js: il costruttore inizializzava
autoUpdate sempre a true hardcoded, ignorando il .checked reale del
checkbox — dato che i FitsViewer si costruiscono in modo asincrono
dopo /api/cameras, questo disallineava lo stato visibile da quello
interno finché non arrivava un click utente reale. Ora legge lo stato
iniziale dal DOM.
Co-Authored-By:
Claude Sonnet 5 <noreply@anthropic.com>