r-io suiter-io suitereference docs
← Documentation home
Reference / Collaborative metamodel

States of a resource

An asset can carry states: a barbecue is Off or On, a pool cover Open or Closed, a person Normal, Wet or On fire. Each state says how it is observed on the field and how it looks on the maps. Functions ask for a state, sensors establish it, and the supervision compares the two.

01

Properties of the asset

PropertyContent
statesOne row per state: name, observed effect (2L, $source is the asset), 3D model url, 2D shape (SAME, POLYGON, POINT), 2D area, 2D fill color, 2D fill pattern (SOLID, HATCHED, NONE), 2D icon.
default stateThe state before anything is observed.
current stateWritten by the engine. An update coming from an application keeps the stored value (keepFieldState): an editor holding an older copy cannot change it.
state transitionsfrom, to and an optional 2L condition. Transitions draw the diagram; a condition is only used when no observed effect is true.
asset 3D model urlHidden: the own GLB of the asset, shown again by a state without a 3D model.
02

How the state is established

The state machine is registered with the 2L rules and replayed by their fixpoint wave, whenever a node read by an effect or a transition changes.

03

States of a concept

A concept of the metamodel can declare states as defaults: Barbecue (Off, On) and Swimming_Pool (Open, Closed) in the Furniture extension. Each instance inherits them: a state removed comes back, its own row may change the 3D model, the 2D shape or the effect, an empty effect is filled by the one of the concept, and it may add states of its own after them. Transitions of the concept are added unless the instance defines the same pair. Effects written on a concept use a sensor nature rather than a name: {nature: "THERMAL"}.

04

What a function asks

A row of the consumes table of a function can name an expected effect on the resource. A “From Concept” row (any Barbecue) becomes a “From Instance” row at deduction, on the instance the problem impacts (ConceptResources); a function with no impacted instance is set aside.

FieldMeaningExample
expectedStateThe state the resource must be left in.Extinguish a barbecue → Off
expectedValueA change of the value of a sensor of a nature: INCREASE_BY or DECREASE_BY an amount.Perform a cardiac massage → heart rate +30
expectedPositionOUTSIDE: the resource must be out of the zone.Rescue a child from drowning → outside the pool

Three readers use these fields: the Expected states supervision strategy (states only), the knowledge consolidation, and r-iosemit, whose simulated tasks send the sensor value that produces the effect and then hold it, as they would on the field (TaskEffects). A task that brings a value does so gradually during its field duration, a point every 10 s.

05

Editing the states

The category Diagram States of the edit box, shared by r-ioda, r-ioplay and r-iose, lists the states with the rule of their effect and a preview: the GLB of the state turning on itself, moved with the mouse, and its 2D view.

On the maps, the 2D style of the current state is applied to the marker; in the 3D view only the object whose URL changes is reloaded, and the animations of its GLB play. A rio_front_yaw glTF extra on a GLB tells the cameras where its front is.

06

Example: Barbecue

AssetStates in orderObserved from
Martinez barbecueOff, OnIts thermal sensor: On above 0, Off at 0.
Martinez swimming poolOpen, ClosedIts “Pool cover open” sensor.
Henri MartinezDead, Bradycardia, Wet, On fire, NormalHis cardiac sensor, his position inside the pool, his distance to the lit barbecue.

See the Henri walkthrough.

07

Watch points

Référence / Métamodèle collaboratif

États d’une ressource

Une ressource peut porter des états : un barbecue est Off ou On, une bâche de piscine Open ou Closed, une personne Normal, Wet ou On fire. Chaque état dit comment il s’observe sur le terrain et comment il apparaît sur les cartes. Les fonctions demandent un état, les capteurs l’établissent, la supervision compare les deux.

01

Propriétés de la ressource

PropriétéContenu
statesUne ligne par état : name, observed effect (2L, $source est la ressource), 3D model url, 2D shape (SAME, POLYGON, POINT), 2D area, 2D fill color, 2D fill pattern (SOLID, HATCHED, NONE), 2D icon.
default stateL’état avant toute observation.
current stateÉcrit par le moteur. Une mise à jour venant d’une application garde la valeur stockée (keepFieldState) : un éditeur qui détient une copie ancienne ne peut pas la changer.
state transitionsfrom, to et une condition 2L facultative. Les transitions dessinent le diagramme ; une condition ne sert que si aucun effet observé n’est vrai.
asset 3D model urlCachée : le GLB propre de la ressource, réaffiché par un état sans modèle 3D.
02

Comment l’état s’établit

L’automate est enregistré avec les règles 2L et rejoué par leur vague de point fixe, dès qu’un nœud lu par un effet ou une transition change.

03

États d’un concept

Un concept du métamodèle peut déclarer des états par défaut : Barbecue (Off, On) et Swimming_Pool (Open, Closed) dans l’extension Furniture. Chaque instance en hérite : un état retiré revient, sa propre ligne peut changer le modèle 3D, la forme 2D ou l’effet, un effet vide est rempli par celui du concept, et elle peut ajouter ses propres états à la suite. Les transitions du concept s’ajoutent, sauf si l’instance définit la même paire. Les effets écrits sur un concept désignent le capteur par sa nature plutôt que par son nom : {nature: "THERMAL"}.

04

Ce que demande une fonction

Une ligne de la table consumes d’une fonction peut nommer un effet attendu sur la ressource. Une ligne « From Concept » (un Barbecue quelconque) devient une ligne « From Instance » à la déduction, sur l’instance impactée par le problème (ConceptResources) ; une fonction sans instance impactée est écartée.

ChampSignificationExemple
expectedStateL’état dans lequel la ressource doit être laissée.Extinguish a barbecue → Off
expectedValueUn changement de la valeur d’un capteur d’une nature : INCREASE_BY ou DECREASE_BY un montant.Perform a cardiac massage → rythme cardiaque +30
expectedPositionOUTSIDE : la ressource doit être hors de la zone.Rescue a child from drowning → hors de la piscine

Trois lecteurs utilisent ces champs : la stratégie de supervision Expected states (les états seulement), la consolidation des connaissances et r-iosemit, dont les tâches simulées envoient la valeur de capteur qui produit l’effet puis la tiennent, comme sur le terrain (TaskEffects). Une tâche qui apporte une valeur le fait progressivement pendant sa durée terrain, un point toutes les 10 s.

05

Éditer les états

La catégorie Diagram States de la boîte d’édition, commune à r-ioda, r-ioplay et r-iose, liste les états avec la règle de leur effet et un aperçu : le GLB de l’état qui tourne sur lui-même, piloté à la souris, et sa vue 2D.

Sur les cartes, le style 2D de l’état courant s’applique au marqueur ; dans la vue 3D, seul l’objet dont l’URL change est rechargé, et les animations de son GLB sont jouées. Un extra glTF rio_front_yaw sur un GLB indique aux caméras où est sa face avant.

06

Exemple : Barbecue

RessourceÉtats dans l’ordreObservés depuis
Martinez barbecueOff, OnSon capteur thermique : On au-dessus de 0, Off à 0.
Martinez swimming poolOpen, ClosedSon capteur « Pool cover open ».
Henri MartinezDead, Bradycardia, Wet, On fire, NormalSon capteur cardiaque, sa position dans la piscine, sa distance au barbecue allumé.

Voir le parcours d’Henri.

07

Points d’attention