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 Roommó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
