Commit fa00c96a authored by vertighel's avatar vertighel
Browse files

Gain teccam passivo come exptime/binning; lock di connessione Mako



Il campo Gain sparava una PUT indipendente ad ogni cambio, in qualsiasi
momento — a differenza di exptime/binning per i teccam, che vengono
letti solo quando lo switch Loop passa a True e inviati nel body della
stessa POST di avvio. Quella PUT indipendente poteva sovrapporsi alla
sequenza di connessione VmbPy (propria o di un'altra Mako, dato che
VmbSystem.get_instance() è un singleton di processo condiviso tra
teccam2/teccam3), causando "Called 'get_camera_by_id()' outside of
'with' context" e simili.

- loop-toggle.js: wireLoopToggle() accetta un getGain, incluso nel body
  della POST di start loop solo se non nullo (stesso schema di binning).
- control.js: wireTeccamLoop passa il getter (null se l'input è assente
  o disabled, cioè teccam1/STX; 0 dB trattato come valore valido, non
  falsy); rimossa wireTeccamGain e la sua PUT indipendente.
- api/camera.py: Loop.post() legge gain dal body e lo applica prima di
  avviare il loop, stesso try/except di binning. Le rotte
  /teccam2|3/gain restano per uso diretto via script/ipython.
- mako.py: nuovo Mako._connect_lock (di classe, condiviso tra tutte le
  istanze — non basta un lock per-istanza dato il singleton VmbSystem),
  usato in _check_connection() con doppio controllo per serializzare i
  primi tentativi di connessione concorrenti tra camere diverse.

Co-Authored-By: default avatarClaude Sonnet 5 <noreply@anthropic.com>
parent 5f120aed
Loading
Loading
Loading
Loading