atik.py: controllare ArtemisImageFailed() e il return code di ArtemisTemperatureSensorInfo
Il lock introdotto nel commit precedente ha eliminato la race condition
sulla temperatura, ma un secondo bug distinto restava mascherato:
in binning 2 il valore di temperatura poteva risultare un sentinella
palesemente errato (es. 399.03°C), identico su più frame consecutivi
quindi non riconducibile a rumore/race.
Causa: ArtemisTemperatureSensorInfo restituisce un codice di errore
mai controllato, e la documentazione SDK richiede di verificare
ArtemisImageFailed() subito dopo che ArtemisImageReady() torna vero,
prima di leggere buffer/dati immagine — nessuno dei due controlli
era presente. Con binning 2 il readout ha una temporizzazione diversa
e può esporre questa finestra.
Ora download() abortisce se ArtemisImageFailed() è vero, e sia
download() che la property temperature ritentano una volta la
lettura della temperatura e, se fallisce ancora, omettono il valore
(CCD-TEMP non scritto / property None) invece di fidarsi di un
codice di errore ignorato.
Co-Authored-By:
Claude Sonnet 5 <noreply@anthropic.com>