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 Roommoduli è 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
