Можно создать диалоговые окна для блоков маскированных, внешний вид которых изменяется в ответ на ввод данных пользователем. Функции диалоговых окон маскированных, которые могут измениться таким образом, включают:
Видимость средств управления параметром — Изменение параметра может заставить управление для другого параметра появляться или исчезать. Диалоговое окно расширяется или уменьшается, когда управление появляется или исчезает, соответственно.
Enabled состояние средств управления параметром — Изменение параметра может заставить управление для другого параметра быть включенным или отключенным для входного параметра. Отключенное управление является grayed, чтобы указать визуально, что это отключено.
Значения параметров — Изменение параметра диалогового окна маски может связанные с причиной параметры диалогового окна маски, которые будут установлены в соответствующие значения.
Создание динамического диалогового окна маскированного влечет за собой использование Редактора Маски с командой set_param
. В частности вы используете Редактор Маски, чтобы задать параметры диалогового окна, и статичного и динамического. Для каждого динамического параметра вы вводите функцию обратного вызова, которая задает, как диалоговое окно отвечает на изменения в том параметре (см., Выполняют Код Обратного вызова). Функция обратного вызова может в свою очередь использовать команду set_param
, чтобы установить параметры маски, которые влияют на внешний вид и настройки других средств управления на диалоговом окне (см., Создают Динамическое Диалоговое окно Маски). Наконец, вы сохраняете модель или библиотеку, содержащую подсистему маскированную, чтобы завершить создание динамического диалогового окна маскированного.
К связанному с представлением примеру смотрите, Создают динамические диалоговые окна маски.
Выбранный параметр появляется на диалоговом окне маски, только если эта опция проверяется (значение по умолчанию).
Очистка этой опции серые подсказка выбранного параметра и отключает средства редактирования подсказки.
Этот пример показывает, как создать диалоговое окно маски блоки, внешний вид которых изменяется в ответ на ваш входной параметр.
Можно установить два параметра с помощью этого диалогового окна маски. Первый параметр является всплывающим меню, через которое вы выбираете одно из трех значений усиления: 2
, 5
или User-defined
. В зависимости от значения, которое вы выбираете в этом всплывающем меню, поле редактирования для определения усиления появляется или исчезает.
Замаскируйте подсистему путем щелчка правой кнопкой по блоку и выбора Mask> Create Mask.
Выберите панель Parameters & Dialog на Редакторе Маски.
Перетащите мышью Раскрывающийся параметр и выберите его в панели Диалогового окна.
В поле Prompt введите Gain
.
В Поле имени введите gainpopup
.
В панели Редактора свойств, ясной, Оценивают так, чтобы Simulink® использовал литеральные значения, которые вы задаете для всплывающего окна.
В поле опций Типа нажмите кнопку Edit, чтобы ввести эти три значения в Раскрывающееся Окно параметров:
2 5 User-defined
Введите этот код в Диалоговом поле обратного вызова:
% Get the mask parameter values. This is a cell % array of character vectors. maskStr = get_param(gcb,'gainpopup'); % The pop-up menu is the first mask parameter. % Check the value selected in the pop-up if strcmp(maskStr(1),'U'), % Set the visibility of both parameters on when % User-defined is selected in the pop-up. set_param(gcb,'MaskVisibilities',{'on';'on'}), else % Turn off the visibility of the Value field % when User-defined is not selected. set_param(gcb,'MaskVisibilities',{'on';'off'}), % Set the character vector in the Values field equal to the % character vector selected in the Gain pop-up menu. %maskStr{2}=maskStr{1}; set_param(gcb,'editvalue',maskStr); end
Перетащите мышью параметр Редактирования и выберите его в панели Диалогового окна.
В поле Prompt введите Value
.
В Поле имени введите editvalue
.
В панели Редактора свойств очиститесь Видимый так, чтобы Simulink выключил видимость этого свойства по умолчанию.
Нажмите Apply.
Чтобы открыть диалоговое окно маски, дважды кликните подсистему маскированную.
Если вы выбираете 2
или 5
как Усиление, Simulink скрывает Значение. Если вы выбираете User-defined
как Усиление, Значение видимо.
Если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы, и вы пытаетесь установить параметры блоков в подсистемах маскированных низшего уровня, неразрешенные ошибки символа могут произойти. Поэтому избегайте использования команд set_param
, чтобы установить параметры блоков, находящихся в подсистемах маскированных, которые находятся в инициализируемой подсистеме маскированной. Попытка, если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы.
Предположим, например, подсистема маскированная A содержит замаскированную подсистему B, который содержит блок Gain C, чей параметр Усиления ссылается на переменную, заданную B. Предположим также, что код инициализации А подсистемы содержит эту команду:
set_param([gcb '/B/C'], 'SampleTime', '-1');
Моделирование или обновление модели, содержащей причины неразрешенная ошибка символа.
Создайте блочные маски | Динамическая подсистема маскированная