Étape 4 : Créez le sous-module "Lumière"
Comme cela se faisait auparavant pour le Switch
et le SwitchSimple
, pour le module Light
, une déclaration de module Light
, un bloc fonction Light
et une interface ILight
doivent être créés. Le module doit être implémenté par le bloc fonction, qui lui-même doit implémenter l'interface ILight
.
Pour pouvoir ajouter le Light
module ci-dessous notre Room
module, la déclaration de module de Room
doit être prolongé d'un Slots
section. Dans cette section, une sous-section Slot_Multi
doit être créé, ce qui s'appelle Lights
et pourra contenir des modules du type Light
. Le nombre de luminaires pouvant ou devant être ajoutés à une pièce est défini par le paramètre Cardinality
(dans ce cas entre 1 et 3 feux). De plus deux variables sont déclarées : Variable
(pLights
, qui contiendra les instances de bloc fonction des modules Lumière ajoutés à la pièce) et Var_Count
(uiNumberOfLights
, qui sera rempli avec le nombre de modules Lumière ajoutés à la pièce).
Slots

Les variables pLights
et uiNumberOfLights
doivent être ajoutés au bloc fonction du module "Lumières", où uiNumberOfLights
est un UINT
et pLights
de type POINTER TO ILight
Avec cette définition, seuls les modules dont les blocs fonctionnels implémentent également ILight
l'interface peut être ajoutée à la Lights
fente.
Room
bloc fonction
Le même concept de fente qui a été utilisé pour le Room
modules est maintenant utilisé pour le Light
module. En conséquence, la déclaration de Light
comprend une fente avec un Switch
, c'est pourquoi ce slot n'est pas un multi-slot, mais un simple slot. Paramètres supplémentaires de la Light
module sont la vitesse du gradateur rSpeed
et la luminosité maximale uiMaxValue
. Enfin, une sortie doit être définie qui représente la luminosité de la lumière associée. Tous les paramètres, emplacements et sorties doivent également être ajoutés en tant que variables au bloc fonctionnel du Light
module.
Light

Light

