Bonsoir à tous,
Est-il prévu dans la roadmap des objets MIN/MAX ou alors l’intégration de valeur mini/maxi aux variables Analog ?
Un cas d’usage serait de sécuriser une valeur mini ou maxi d’une fonction ou alors qu’un calcul récursif ne diverge pas.
On doit pouvoir faire cela à l’aide de comparateur et de scenario mais c’est un peu fastidieux…
Bonsoir,
vous pouvez effectivement le faire via des rules avec opérateur analogique et tuile SetVAL
- 1 rule pour le MIN
- 1 rule pour le MAX
- 1 rule pour les valeurs intermédiaires
→ Soient anaMIN et anaMAX 2 variables analogiques, définies comme constantes ( Elles peuvent aussi être des variables modifiables par lien ou par widget).
→ Soit Fonction1 l’objet fonction à borner (min et max)
-
SCENE1 :application de MIN :
événement : fonction1.result < anaMIN
résultat : SetVAL anaMIN Ana -
SCENE2 : application de MAX :
événement : fonction1.result > anaMAX
résultat : SetVAL anaMAX Ana -
SCENE3 : application des valeurs intermédiaires
événement :NON SCENE1 ETNON SCENE2
résultat : SetVAL Function1.Result Ana
Ana peut alors être liée ou scénarisée à la place de fonction.result.
Elle sera telle que anaMIN <= Ana <= anaMAX grâce aux 3 scènes précédentes.
Bonsoir @fgtoul
La scène3 (ou plutôt règle d’ailleurs avec la v5!) ne s’exécutera jamais si la valeur de fonction1.result est dans l’intervalle MIN/MAX 2 fois consécutivement, donc Ana ne sera pas mis à jour avec la valeur de fonction1.result.
En remplaçant la règle 3 par :
événement : anaMIN =< fonction1.result =< anaMAX
résultat : SetVAL fonction1.result Ana
même verdict… il faut donc trouver un moyen pour que cette règle se réévalue à chaque calcul de fonction1…
cela devient (vraiment) fastidieux !
j’ai jeté rapidement une proposition (non testée ) pour donner une piste.
Mais je pense que c’est fonctionnel avec quelques modifs
- REGLE1 :application de MIN :
événement : fonction1.result < anaMIN
résultat : SetVALanaMINAna
- REGLE2 : application de MAX :
événement : fonction1.result > anaMAX
résultat : SetVALanaMAXAna
- REGLE3 : application des valeurs intermédiaires
événement : Fonction.result!=AnaETNON SCENE1 ETNON SCENE2
résultat : SetVALFunction1.ResultAna
la 3ème règle devrait être réévaluée à chaque variation du résultat de la fonction.
toujours non testé
c’est propre à chacun, moi je trouve la recherche et l’expérimentation stimulantes
Pas possible d’avoir des IO et des Ana en évènement
je partage, par contre le moins de temps je passe sur ce genre de problématique fastidieuse, le plus j’en passe sur d’autres recherches et expérimentations encore plus stimulantes
il ne faut pas s’arrêter à ça, il suffirait d’éclater l’événement en 2 règles
je pense que toutes les cartes sont là, il suffit de rebattre
Non en effet, il faut juste multiplier les règles !
Il y a toujours une solution (sinon ce serait moi le pb ! )
- REGLE1 :application de MIN :
événement : fonction1.result < anaMIN
résultat : SetVALanaMINAna
- REGLE2 : application de MAX :
événement : fonction1.result > anaMAX
résultat : SetVALanaMAXAna
- REGLE3 : detection d’une nouvelle valeur issue du calcul de fonction1
événement : Fonction.result!=Ana
résultat : SwitchIO virtuel
- REGLE4 : application des valeurs intermédiaires qd IO virtuel passe à 1
événement : IO virtuelETNON SCENE1 ETNON SCENE2
résultat : SetVALFunction1.ResultAna
- REGLE5 : application des valeurs intermédiaires qd IO virtuel passe à 0
événement :NON IO virtuelETNON SCENE1 ETNON SCENE2
résultat : SetVALFunction1.ResultAna
Voilà ! Merci @fgtoul pour le coup de main, je peux maintenant retourner à d’autres recherches et expérimentations stimulantes