Le basi
Questo capitolo copre tutto ciò che un modulo OST può fare senza pilotare alcun device INDI — il che costituisce già la parte essenziale del framework: il modello dei dati (proprietà ed elementi), come reagire a una scrittura, come costruire o modificare questo modello dinamicamente, i tipi di elemento disponibili, le griglie e i grafici, le liste di valori, la persistenza in profili, e il modo in cui due moduli collaborano (master/slave).
Ogni pagina si basa su un modulo di esempio reale e minimale, dal repository ost/ostmodules — da leggere, caricare e modificare liberamente.
- Anatomia di un modulo
Basemodule vs IndiModule, la tripletta .h/.cpp/.json, la funzione initialize(), la catena di eventi
- Il modulo più piccolo — proprietà ed elementi
Dichiarare una proprietà e i suoi elementi in JSON: il modulo hello
- Reagire a una scrittura utente
directedit, autoupdate, e come estrarre un valore scritto quando il framework non lo applica per voi
- Creare proprietà dinamicamente, in C++
Costruire una proprietà e i suoi elementi in codice, all'istanziazione o su richiesta, senza file JSON
- Il catalogo dei tipi
Tutti i tipi di elemento, sola lettura vs lettura/scrittura, mescolare i tipi in una proprietà, directedit SV vs SA
- Aggiornamenti lato server
Far evolvere un valore senza azione utente, organizzare la visualizzazione con devcat/group, isolare le proprietà ad aggiornamento frequente
- Le tre regole di coordinamento degli switch
OneOfMany (radio), AtMostOne (radio opzionale), Any (indipendenti) — interamente dichiarativo
- Le liste di valori
I tre ambiti di una lista di valori (elemento, modulo, controller) e l'impostazione constrained
- I profili
hasprofile:true — salvataggio/caricamento di configurazione con nome, interamente automatico
- Griglie e grafici
push()/clearGrid(), CRUD generico lato client, e il grafico come semplice visualizzazione di una griglia
- Relazione master/slave
Un modulo ne comanda un altro: declareFamily, otherModuleSetValue, onOtherModuleEvent
- Build e integrare il proprio modulo
Due modi per far vivere il proprio modulo: in autonomia, o integrato nel repository ost/ostmodules