Лист 4. Модель блока ввода символов (FilterSymbol)
1. Назначение
Представляет фильтр символов. Из множества символов, поступающих на вход блока на выход пропускаются символы, представленные свойством - строкой символов strFilter, состоящей из множества фильтруемых символов.
2. Базовые классы
LFsaAppl (базовый автоматный класс)
3. Связи
Имеет связь с блоком ET - предикаты x1, x4 и блоком PD – предикат x6.
4. Функционирование
4.1. Роли состояний:
Состояние «sym» - ожидания символа на входе блока; «if» - анализ символа; «ok» - символ обработан фильтром; «yes» - символ прошел фильтр.
Примечание 1. «sym» - начальное состояние, «00» - конечное.
4.2. Алгоритм работы:
В состоянии «sym» (начальное состояние модели) фильтр ожидает поступление символа на вход блока. Получив символ, он переходит в состояние «if», где анализирует его на принадлежность заданному множеству символов (предикат – x3). Если символ не принадлежит этому множество, то происходит переход в состояние «ok», а иначе – в состояние «yes» (при этом свойству С присваивается значение принятого символа). В состоянии «yes» автомат ожидает от внешней среды сигнала «АМП», сигнализирующего о том, что символ на выходе принят. Получив его, автомат переходит в состояние «ok». Здесь, если блок ET находится в состоянии «sym» (а это в соответствии с протоколом взаимодействия именно так и должно быть), происходит переход в состояние «sym». При этом, чтобы не вызвать сразу же перехода в состояние «if», блок ET должен покинуть свое одноименное состояние, что, если посмотреть на модель блока ET, и должно произойти.