+8
−1
+37
−20
+12
−24
Loading
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:
Claude Sonnet 5 <noreply@anthropic.com>