Las bases
Este capítulo cubre todo lo que un módulo OST puede hacer sin controlar ningún device INDI — lo que ya constituye la esencia del framework: el modelo de datos (propiedades y elementos), cómo reaccionar a una escritura, cómo construir o modificar ese modelo dinámicamente, los tipos de elementos disponibles, las grillas y los gráficos, las listas de valores, la persistencia en perfiles, y la forma en que dos módulos colaboran (maestro/esclavo).
Cada página se apoya en un módulo de ejemplo real, mínimo, del repositorio ost/ostmodules — para leer, cargar y modificar libremente.
- Anatomía de un módulo
Basemodule vs IndiModule, el trío .h/.cpp/.json, la función initialize(), la cadena de eventos
- El módulo más pequeño — propiedades y elementos
Declarar una propiedad y sus elementos en JSON: el módulo hello
- Reaccionar a una escritura del usuario
directedit, autoupdate, y cómo extraer un valor escrito cuando el framework no lo aplica por usted
- Crear propiedades dinámicamente, en C++
Construir una propiedad y sus elementos en código, en la instanciación o a demanda, sin archivo JSON
- El catálogo de tipos
Todos los tipos de elemento, solo lectura vs lectura/escritura, mezclar tipos en una propiedad, directedit SV vs SA
- Actualizaciones del lado del servidor
Hacer evolucionar un valor sin acción del usuario, organizar la visualización con devcat/group, aislar las propiedades de actualización frecuente
- Las tres reglas de coordinación de los switches
OneOfMany (radio), AtMostOne (radio opcional), Any (independientes) — totalmente declarativo
- Las listas de valores
Los tres alcances de una lista de valores (elemento, módulo, controlador) y el ajuste constrained
- Los perfiles
hasprofile:true — guardado/carga de configuración con nombre, totalmente automático
- Grillas y gráficos
push()/clearGrid(), CRUD genérico del lado del cliente, y el gráfico como simple visualización de una grilla
- Relación maestro/esclavo
Un módulo comanda a otro: declareFamily, otherModuleSetValue, onOtherModuleEvent
- Compilar e integrar su módulo
Dos formas de hacer vivir su módulo: de forma autónoma, o integrado en el repositorio ost/ostmodules