В этом примере показано, как настроить пару диаграмм Stateflow ® для обмена данными путем отправки сообщений со строковыми данными. Дополнительные сведения см. в разделе Взаимодействие с диаграммами потока состояний путем отправки сообщений.
Эта модель содержит две диаграммы, использующие C в качестве языка действий. Во время моделирования диаграмма эмиттера считывает входную строку key из блока String Constant и отправляет сообщение на диаграмму Receiver. Данные сообщения состоят из входной строки. key. Диаграмма получателя сравнивает строку с ключевым словом константы и возвращает выходную строку, предоставляющую или запрещающую доступ.

Диаграмма Эмиттера состоит из одного состояния A. Когда состояние становится активным, оно устанавливает данные для сообщения M к входному значению key и отправляет сообщение в диаграмму получателей.

В этой таблице перечислены область действия и тип символов на диаграмме.
| Символ | Объем | Напечатать |
|---|---|---|
key | Входные данные | Inherit: Same as Simulink |
M | Выходное сообщение | string |
Диаграмма состоит из двух состояний, соединенных переходом. Входное сообщение M охраняет переход. Если имеется сообщение и его значение данных равно строке константы lock, то активность состояния переходит от Off кому On. Диаграмма выводит строковое значение 'Access Granted'. Если сообщение отсутствует, или если значение данных не равно lock, диаграмма не принимает переход, а выходное значение равно 'Access Denied'.

В этой таблице перечислены область действия и тип символов на диаграмме.
| Символ | Объем | Напечатать |
|---|---|---|
M | Входное сообщение | Inherit: Same as Simulink |
lock | Постоянные данные | string |
sout | Выходные данные | string |
Строка константы lock содержит секретный пароль, первоначально установленный на 'Open Sesame'. Можно изменить значение lock в поле «Начальное значение» инспектора свойств.
Во время моделирования модель реагирует на пароль, введенный в блоке «Строковая константа»:
При вводе неверного пароля, например, "Abracadabra", то модель отображает выходную строку "Access Denied".

При вводе правильного пароля в данном случае "Open Sesame", то модель отображает выходную строку "Access Granted".
