Étape 2 : Créer le sous-module "Switch"
L'étape suivante consiste à déclarer un module pour l'interrupteur de la pièce. Encore une fois, une déclaration de module et un bloc fonction doivent être créés. Ici, les deux s'appellent Switch
, où la déclaration doit être implémentée par le bloc fonction. La déclaration de module de Switch
n'a pas besoin d'une section de niveau supérieur, car elle sera ajoutée sous le module Light
(décrit plus loin) dans aucune position de niveau supérieur. Comme il est obligatoire pour tous les modules implémentant des blocs fonction, le bloc fonction Switch
doit s'étendre AC.Module
, aussi. Dans le cas présent, le bloc fonction implémente également une interface ISwitch
, qui doit être créé. Cette interface elle-même doit implémenter l'interface IModule
, fourni par la bibliothèque AC_ModuleBase
. Cependant, l'interface ISwitch
reste "vide" - aucune propriété ou fonction n'est déclarée.
De plus, le commutateur a besoin d'un signal d'entrée (provenant probablement d'une source externe / d'un commutateur physique) pour indiquer quand il est tapé. Ce signal est déclaré dans le OI section utilisant la variable xIn
du bloc fonction qui implémente ce module. De plus, un temps de référence est nécessaire pour distinguer les deux fonctions de l'interrupteur : Appui sur l'interrupteur pendant la durée tTimer
démarre la fonction de gradation - une pression plus courte ne fait qu'allumer ou éteindre la lumière. Cette variable tTimer
(faisant également partie du module implémentant le bloc fonction) sera déclaré comme paramètre du module (section Parameters
), qui peut éventuellement être facilement modifié lors de l'utilisation du module.
Switch

Les variables référencées xIn
et tTimer
sont tous deux définis comme entrées du bloc fonction Switch
, où le paramètre tTimer
obtient une valeur par défaut initiale de 500 ms. Ainsi, lorsque l'utilisateur appuie sur le Switch
plus de 500 ms, la lumière sera atténuée.
Switch
bloc fonction
De plus, les listes de textes et le pool d'images doivent être étendus pour inclure les textes de description nécessaires de l'entrée et du paramètre.
