exponenta event banner

Моделирование торгового автомата с помощью семантики Mealy

В этом примере показано, как использовать семантику Mealy для моделирования торгового автомата.

Логика торгового автомата Mealy

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

При начальном состоянии got_0 активен. Монета не была получена или монеты не остались.

  • Если получен никель (coin == 1), вывод soda остается 0, но состояние got_nickel становится активным.

  • При получении копейки (coin == 2), вывод soda остается 0, но состояние got_dime становится активным.

  • Если входная монета не является копейкой или никелем, состояние got_0 остается активным и сода не выделяется (выход soda = 0).

В активном состоянии got_nickel. Был получен никель.

  • Если получен другой никель (coin == 1), состояние got_dime становится активным, но не освобождается (soda остается на уровне 0).

  • При получении копейки (coin == 2), банка освобождается (soda = 1), монеты списаны, и активное состояние становится got_0 потому что монет не осталось.

  • Если входная монета не является копейкой или никелем, состояние got_nickel остается активным и не освобождается (выход soda = 0).

В активном состоянии got_dime. Была получена копейка.

  • Если получен никель (coin == 1), банка освобождается (soda = 1), монеты списаны, и активное состояние становится got_0 потому что монет не осталось.

  • При получении копейки (coin == 2), банка освобождается (soda = 1), 15 центов заблокированы, и активное состояние становится got_nickel потому что никель (изменение) оставлен.

  • Если входная монета не является копейкой или никелем, состояние got_dime остается активным и не освобождается (выход soda = 0).

Правила проектирования в торговом автомате Mealy

Этот пример торгового автомата Mealy иллюстрирует следующие правила дизайна Mealy:

  • Диаграмма вычисляет выходные данные в действиях условий.

  • Отсутствуют действия состояния или действия перехода.

  • Диаграмма определяет входные данные диаграммы (coin) и выходы (soda).

  • Значение входного значения coin определяет выход: выпускается ли сода.

Связанные темы