// Программа управления микроволновой печью
// Инициализируем все предварительно существующие экземпляры
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
//конец программы печи
Основной модуль должен выполнять операцию Загрузить_КМС всех активных классов. Это может быть выполнено до или после определения основных экземпляров.
События.
После того как классы проинициализированы, начинается настоящая работа. В самом простом случае программа выполняется с помощью простого сценария : последовательностью вызова тэйкеров событий различных классов.Каждый вызов соответствует порождению некоторого внешнего события в канале управления . В более сложном случае, основная программа получает сообщения от других задач для определения какое событие порождать из нескольких внешних.
Внешние события. Поток управления .
Когда сообщение получено основной программой и вызван тэйкер событий , управление не обязательно возвращается немедленно к главному циклу. Действие, вызываемое как результат вызова тэйкера события может самостоятельно вызывать следующие события.
