Main Content

Control Color of Lamp on Instrument Panel

This example shows how to control the color of a lamp indicator on an instrument panel that connects to a Simulink Real-Time application.

The example operations are:

  • Create uifigure, add lamps, and add labels

  • Open model and build real-time application

  • Connect lamps and add instrument

  • Observe color cycle of lamps

  • Remove instrument

  • Close model

Create uifigure and Add Components

f = uifigure;
lamp1 = uilamp(f);
lamp1.Position = [10 300 20 20];
tlabel1 = uilabel(f);
tlabel1.Position = [40 298 100 22];
tlabel1.Text = 'Lamp 1';
lamp2 = uilamp(f);
lamp2.Position = [10 200 20 20];
tlabel2 = uilabel(f);
tlabel2.Position = [40 198 100 22];
tlabel2.Text = 'Lamp 2';

Build and Run Real-Time Application

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_lamp_instrument'));
model = 'slrt_ex_lamp_instrument';
evalc('slbuild(model)');
tg = slrealtime;
load(tg,model);
start(tg);
pause(2);
inst = slrealtime.Instrument;
inst.connectScalar(lamp1, 'lamp1', 'Property', 'Color', 'Callback', @setLampColor);
inst.connectScalar(lamp2, 'lamp2', 'Property', 'Color');
addInstrument(tg,inst);
pause(10);
stop(tg);
removeInstrument(tg,inst);
bdclose('all');

function color = setLampColor(~,d)
    switch uint8(d)
        case 5
            color = 'green';
        case 4
            color = 'yellow';
        case 3
            color = 'cyan';
        case 2
            color = 'magenta';
        case 1
            color = 'red';
        otherwise
            color = 'white';
    end
end