Passaggio 4: creazione del sottomodulo "Light"
Come già fatto in precedenza per il Switch
e il SwitchSimple
, per il modulo Light
, una dichiarazione di modulo Light
, un blocco funzione Light
e un'interfaccia ILight
devono essere creati. Il modulo sarà implementato dal blocco funzione, che a sua volta implementerà l'interfaccia ILight
.
Per poter aggiungere il Light
modulo sotto il nostro Room
module, la dichiarazione del modulo di Room
deve essere esteso con a Slots
sezione. In questa sezione una sottosezione Slot_Multi
deve essere creato, che si chiama Lights
e potrà contenere moduli del tipo Light
. Il numero di luci che possono o devono essere aggiunte ad una stanza è definito dal parametro Cardinality
(in questo caso tra 1 e 3 luci). Inoltre vengono dichiarate due variabili: Variable
(pLights
, che conterrà le istanze dei blocchi funzione dei moduli Luce aggiunti alla stanza) e Var_Count
(uiNumberOfLights
, che verrà riempito con il numero di moduli Luce aggiunti alla stanza).
Slots

Le variabili pLights
E uiNumberOfLights
devono essere aggiunti al blocco funzione del modulo "Luci", dove uiNumberOfLights
è un UINT
E pLights
di tipo POINTER TO ILight
Con questa definizione, solo i moduli i cui blocchi funzione implementano anche il file ILight
l'interfaccia può essere aggiunta al file Lights
fessura.
Room
blocco funzione
Lo stesso concetto di slot utilizzato per Room
moduli è ora utilizzato per Light
modulo. Di conseguenza, la dichiarazione di Light
include uno slot con a Switch
, motivo per cui questo slot non è un multi-slot, ma uno slot semplice. Parametri aggiuntivi del Light
modulo sono la velocità del dimmer rSpeed
e la luminosità massima uiMaxValue
. Infine è necessario definire un'uscita che rappresenti la luminosità della luce associata. Tutti i parametri, gli slot e le uscite devono essere aggiunti anche come variabili al blocco funzione di Light
modulo.
Light

Light

