Skip to main content

Passaggio 6: implementazione

Interruttori

Per l'implementazione delle funzionalità del modulo Switch usiamo il metodo CallPrioMediumStart da Module sovrascrivendolo con la nostra implementazione. Scegliamo questa funzione, perché il module Room dichiarato a MEDIUM compito, il che implica che il metodo CallPrioMediumStart del blocco funzione Switch verrà chiamato ogni ciclo di un compito medio. Le informazioni dettagliate possono essere visualizzate nel progetto di esempio stesso. Tuttavia, la funzionalità principale dell'interruttore è quella di differire tra la funzione tap e quella dim. Dopo aver premuto l'interruttore, verrà avviato un timer con il tempo specificato dal parametro utente. Quando il timer è terminato e l'interruttore non viene rilasciato, viene utilizzata la funzione di attenuazione, indicata dalla variabile xPushLong. La variabile xPush È TRUE, se l'interruttore è appena premuto. Per entrambi xPushLong E xPush le proprietà vengono aggiunte a entrambi i blocchi funzione Switch e l'interfaccia ISwitch, in modo che possano essere utilizzati dal blocco funzione luce genitore.

Leggero

Ancora una volta, il Light il blocco funzione sovrascrive il metodo CallPrioMediumStart. A seconda delle variabili di ingresso dell'interruttore sottostante, la luce viene regolata su "on" o "off" o solo commutata. Per il dimmer, il valore di velocità del parametro dichiarato rSpeed si usa. Dopo aver raggiunto il valore di regolazione massimo o minimo, la regolazione viene interrotta. Se la luce è attenuata e si tocca l'interruttore, la luce è accesa. (L'implementazione dettagliata è riportata nel corrispondente progetto di esempio.)

Controlla il codice

Dopo l'implementazione, le dichiarazioni dovrebbero essere controllate utilizzando il comando Costruire. Se non viene visualizzato alcun errore, le dichiarazioni vanno bene.

Passaggio 7: composizione dei moduli