+28
−20
+10
−5
+7
−0
+104
−76
+6
−7
Loading
Fase 1 devices: vero get/put per atik.py, decorator ctypes_errors/vmbpy_errors, _RECOVERABLE collegato a noctua-app
- atik.py: get(method, *args)/put(method, *args) chiamano davvero la
funzione Artemis nominata (getattr(self._lib, method)(h, *args))
invece di fare un getattr/setattr generico su self. Tutti i punti che
chiamavano self._lib.ArtemisXxx(...) direttamente ora passano da
get/put; resta diretto solo il bootstrap in _check_connection()
(stesso precedente di mako.py/stl.py). Il lock RLock che serializza
le chiamate SDK (aggiunto su main durante la caccia al bug hardware,
che questo branch non aveva ancora) ora vive dentro get()/put(),
unico punto di accesso, invece di essere sparso per ogni property.
- check.py: due nuovi decorator, ctypes_errors (atik.py, stl.py) e
vmbpy_errors (mako.py, sostituisce il try/except inline e copre
anche get() che prima non aveva nessuna gestione errori). Nessuno
dei due resetta self.error a inizio chiamata, a differenza di
request_errors/telnet_errors: get/put qui sono la primitiva di
basso livello chiamata molte volte per operazione (es. una volta per
riga nel loop di readout di stl.py), e sia atik.py che stl.py che
mako.py già gestiscono self.error da soli, azzerandolo solo dopo una
riconnessione riuscita — un reset per-chiamata avrebbe cancellato in
silenzio gli errori intermedi.
- app.py: noctua-app chiama check.set_recoverable(True) all'avvio,
come deciso in precedenza — unico entry point che sopravvive a
un'eccezione non gestita invece di uscire.
- python.md, PLAN.md: aggiornati per riflettere quanto implementato.
Co-Authored-By:
Claude Sonnet 5 <noreply@anthropic.com>