Commit 3cd3fd0c authored by vertighel's avatar vertighel
Browse files

atik.py: fix setpoint re-apply; log ArtemisSubframe failures instead of ignoring them



Due dei tre problemi Atik segnalati testando su fork:

1) Setpoint/cooling: il setter temperature faceva solo
   self._setpoint = t senza mai toccare l'hardware finché non si
   riaccendeva il cooling. Portato lo stesso fix già presente in
   stl.py: se il cooling è già attivo, riapplica subito il nuovo
   setpoint via self.cooler = True. Da confermare su fork.

2) Cooling Off che non scalda: nessuna modifica, non è chiaramente un
   bug. La doc SDK (AtikCameras.h) descrive ArtemisCoolerWarmUp come
   "on some devices, this will perform a slow ramp down... to avoid
   thermal shock" — è l'unica chiamata SDK per questo, nessun altro
   punto del codice riattiva il cooling. Potrebbe solo essere più
   lenta di STX/STL: serve osservare più a lungo su hardware, non un
   fix di codice.

3) half_frame()/small_frame() full-frame: NON è un fix della causa,
   solo la chiusura di un buco diagnostico. put()'s ctypes_errors non
   controlla mai il codice di ritorno numerico dell'SDK (dichiarato
   nel suo stesso docstring, "each call site's job") — e i 4 metodi
   set_window/full_frame/half_frame/small_frame non lo controllavano
   mai. Se ArtemisSubframe falliva, veniva ignorato in silenzio e
   self._subframe (da cui XORGSUBF/YORGSUBF) restava comunque
   aggiornato come se fosse riuscito. Accorpati i 4 punti duplicati in
   _apply_subframe(), che ora controlla il codice di ritorno
   (ARTEMIS_OK==0, verificato in AtikDefs.h) e non aggiorna la cache se
   fallisce. Copre solo lo scenario "la chiamata fallisce silenziosa";
   non copre lo scenario alternativo in cui la chiamata riesce ma il
   sensore consegna comunque il frame intero — quello richiederebbe
   confrontare ArtemisGetSubframe con ArtemisGetImageData, non fatto
   qui. La prossima esposizione reale su fork dirà quale dei due è.

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