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