Paso 4: Crear submódulo "Light"
Como se hizo antes para el Switch
y el SwitchSimple
, para el módulo Light
, una declaración de módulo Light
, un bloque de funciones Light
y una interfaz ILight
hay que crear. El módulo será implementado por el bloque de funciones, que a su vez implementará la interfaz ILight
.
Para poder agregar el Light
módulo debajo de nuestro Room
módulo, la declaración de módulo de Room
tiene que ser ampliado con un Slots
sección. En esta sección una subsección Slot_Multi
tiene que ser creado, lo que se llama Lights
y podrá albergar módulos del tipo Light
. El número de luces que pueden o deben agregarse a una habitación se define mediante el parámetro Cardinality
(en este caso entre 1 y 3 luces). Además se declaran dos variables: Variable
(pLights
, que contendrá las instancias del bloque de funciones de los módulos Light agregados a la habitación) y Var_Count
(uiNumberOfLights
, que se rellenará con el número de módulos Light añadidos a la habitación).
Slots

las variables pLights
y uiNumberOfLights
deben agregarse al bloque de función del módulo "Luces", donde uiNumberOfLights
es un UINT
y pLights
de tipo POINTER TO ILight
Con esta definición, solo los módulos cuyos bloques de función también implementan el ILight
La interfaz se puede agregar a la Lights
espacio.
Room
bloque de funciones
El mismo concepto de tragamonedas que se usó para el Room
módulos se utiliza ahora para el Light
módulo. En consecuencia, la declaración de Light
incluye una ranura con un Switch
, por lo que esta ranura no es una ranura múltiple, sino una ranura simple. Parámetros adicionales de la Light
módulo son la velocidad del atenuador rSpeed
y el brillo máximo uiMaxValue
. Finalmente, se debe definir una salida que represente el brillo de la luz asociada. Todos los parámetros, ranuras y salidas también deben agregarse como variables al bloque de funciones del Light
módulo.
Light

Light

