Paso 6: Implementación
Cambiar
Para la implementación de la funcionalidad del módulo. Switch
usamos el método CallPrioMediumStart
desde Module
anulándolo con nuestra propia implementación. Elegimos esta función, porque el módulo Room
declarado un MEDIUM
tarea, lo que implica que el método CallPrioMediumStart
del bloque de funciones Switch
se llamará cada ciclo de una tarea mediana. La información detallada se puede ver en el propio proyecto de ejemplo. Sin embargo, la funcionalidad principal del interruptor es diferenciar entre la función de toque y atenuación. Después de presionar el interruptor, un temporizador comenzará con el tiempo dado por el parámetro de usuario. Cuando el temporizador finaliza y el interruptor no se suelta, se utiliza la función de atenuación, indicada por la variable xPushLong
. La variable xPush
es TRUE
, si se toca el interruptor. Para ambos xPushLong
y xPush
las propiedades se agregan tanto al bloque de funciones Switch
y la interfaz ISwitch
, para que se puedan utilizar desde el bloque de función de luz principal.
Luz
Nuevamente, el Light
bloque de funciones anula el método CallPrioMediumStart
. Dependiendo de las variables de entrada del interruptor subyacente, la luz se atenúa a "encendido" o "apagado" o solo se alterna. Para el dimmer, el valor de velocidad del parámetro declarado rSpeed
se usa Después de alcanzar el valor de atenuación máximo o mínimo, se detiene la atenuación. Si la luz está atenuada y se toca el interruptor, la luz se enciende. (La implementación detallada se proporciona en el proyecto de ejemplo correspondiente).
Verifica el código
Después de la implementación, las declaraciones deben verificarse mediante el uso del comando Construir. Si no se muestra ningún error, las declaraciones están bien.