exponenta event banner

Отправка сообщений со строковыми данными

В этом примере показано, как настроить пару диаграмм 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".

См. также

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