witsa / synapps

Construisez des apps standards, adaptatives et multiplateformes avec le REDY
11 stars 3 forks source link

Bouton impulsionnel #556

Closed NicSamledernier closed 1 year ago

NicSamledernier commented 1 year ago

Bonjour,

Je n'arrive pas à créer un bouton impulsionnel pour commander une ressource... J'ai besoin d'un bouton avec lequel un clic suffise à lancer une ressource booléenne. Avec les synoptiques il faut cibler un bloc tempo qui agit sur le .InLink de la ressource logique à commander. Avec Synapps qu'en est-il? Et quel acteur est approprié pour ce type de commande? J'ai essayé le bouton qui cible un bloc tempo... c'est visiblement pas ça ou je manque quelque-chose.

WITNicolas commented 1 year ago

Bonjour, Il vous faudrait une ressource de type CONSIGNE LOGIQUE. Mettre un bloc TRIGGER du .setpoint vers le .set en mettant dans le TRIGGER le RISE à une valeur désirée en Secondes. Automatiquement au clic sur la ressource, le trigger se déclenche et envoi par la suite vers le .set qui remet à 0 la ressource.

ça c'est pour la mécanique de base.

A partir de là dans STUDIO, soit vous utilisez l'acteur DETAIL DE REFLET, soit un acteur de type SWITCH INTERRUPTEUR et vous rélaisez votre liaison vers le .setpoint de la ressource.

NicSamledernier commented 1 year ago

Super merci!

manufitoussiwit commented 1 year ago

Bonjour,

J'ai un composite qui pourrait vous aider :

image

C'est un bouton auquel on fournit l'adresse d'une variable booléenne sur laquelle on réalise une impulsion avec un délai en milliseconde réglable.

SYNAPPS-STUDIO-COMPOSITE|{"config":{"key":"impulse","name":"Impulsion","additionalDefs":{"content":{"type":"text","label":"Contenu","value":"Impulsion"},"impulsePath":{"type":"wos-path","label":"Impulsion","value":"","relativeToPath":":easy.RESS"},"delay":{"type":"number","label":"Délai","value":700,"min":50,"step":50,"unit":"ms"}}},"leadActor":{"type":"layout/stack","key":"stack3","children":[{"type":"input/button","key":"button1","additionalDefs":{"impulsePath":{"type":"wos-path","label":"Impulsion","relativeToPath":":easy.RESS"},"delay":{"type":"number","label":"Délai","min":50,"step":50,"unit":"ms"}},"additionals":{"delay":150},"bindings":{"properties.enabled":"stage@properties.impulsePath","additionals.impulsePath":"stage@properties.impulsePath","additionals.delay":"stage@properties.delay","properties.content":"stage@properties.content"},"events":{"onClick":["context.getActor('variable').data = true;","setTimeout(() => {","  if (this.isDestroyed || this.isDestroying) return;","  context.getActor('variable').data = false;","}, this.additionals.delay);"]}},{"type":"redy/data-source/wos-variable","key":"ress","properties":{"autoRefresh":false,"mode":"relative","path":":easy.RESS"}},{"type":"redy/data-source/wos-relative-variable","key":"variable","properties":{"dataReadMode":"always","relativeTo":"ress","fieldName":"value","writeOnChange":true},"bindings":{"properties.relativePath":"actor#button1@additionals.impulsePath"}}]}}

A copier/coller dans les composites.