Структура основной программы .


// Программа управления микроволновой печью

// Инициализируем все предварительно существующие экземпляры

my_элемент:=силовой элемент::установить;

my_лампочка:=лампочка::установить();

my_печь:=печь::установить();

//Собственно работа печи

do_forever

message_here:=get_message(message_buffer);

if message_here then

msg_type:=Unpack_message(message_bufer);

case of msg_type

нажата кнопка:

my_печь.принять_событие_v1();

end_case

дверь открыта:

my_печь.принять_событие_v3();

end_case

дверь закрыта:

my_печь.принять_событие_v4();

end_case

end_if

Таймер:подать сигнал

end_forever

//конец программы печи

Основной модуль должен выполнять операцию Загрузить_КМС всех активных классов. Это может быть выполнено до или после определения основных экземпляров.

События.

После того как классы проинициализированы, начинается настоящая работа. В самом простом случае программа выполняется с помощью простого сценария : последовательностью вызова тэйкеров событий различных классов.Каждый вызов соответствует порождению некоторого внешнего события в канале управления . В более сложном случае, основная программа получает сообщения от других задач для определения какое событие порождать из нескольких внешних.

Внешние события. Поток управления .

Когда сообщение получено основной программой и вызван тэйкер событий , управление не обязательно возвращается немедленно к главному циклу. Действие, вызываемое как результат вызова тэйкера события может самостоятельно вызывать следующие события.

Загрузка...