Skip to main content

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.

Paso 7: Componer módulos