Les bases
Ce chapitre couvre tout ce qu’un module OST peut faire sans piloter aucun device INDI — ce qui constitue déjà l’essentiel du framework : le modèle de données (propriétés et éléments), comment réagir à une écriture, comment construire ou modifier ce modèle dynamiquement, les types d’éléments disponibles, les grilles et les graphes, les listes de valeurs, la persistance en profils, et la façon dont deux modules collaborent (maître/esclave).
Chaque page s’appuie sur un module d’exemple réel, minimal, du dépôt ost/ostmodules — à lire, charger et modifier librement.
- Anatomie d'un module
Basemodule vs IndiModule, le triplet .h/.cpp/.json, la fonction initialize(), la chaîne d'événements
- Le plus petit module — propriétés et éléments
Déclarer une propriété et ses éléments en JSON : le module hello
- Réagir à une écriture utilisateur
directedit, autoupdate, et comment extraire une valeur écrite quand le framework ne l'applique pas pour vous
- Créer des propriétés dynamiquement, en C++
Construire une propriété et ses éléments en code, à l'instanciation ou à la demande, sans fichier JSON
- Le catalogue des types
Tous les types d'élément, lecture seule vs lecture/écriture, mélanger les types dans une propriété, directedit SV vs SA
- Mises à jour côté serveur
Faire évoluer une valeur sans action utilisateur, organiser l'affichage avec devcat/group, isoler les propriétés à mise à jour fréquente
- Les trois règles de coordination des switchs
OneOfMany (radio), AtMostOne (radio optionnel), Any (indépendants) — entièrement déclaratif
- Les listes de valeurs
Les trois portées d'une liste de valeurs (élément, module, contrôleur) et le réglage constrained
- Les profils
hasprofile:true — sauvegarde/chargement de configuration nommée, entièrement automatique
- Grilles et graphes
push()/clearGrid(), CRUD générique côté client, et le graphe comme simple visualisation d'une grille
- Relation maître/esclave
Un module en commande un autre : declareFamily, otherModuleSetValue, onOtherModuleEvent
- Builder et intégrer son module
Deux façons de faire vivre son module : en autonome, ou intégré au dépôt ost/ostmodules