Можно создать диалоговые окна для маскированных блоков, внешний вид которых изменяется в ответ на ввод данных пользователем. Функции диалоговых окон маскированных, которые могут измениться таким образом, включают:
Видимость средств управления параметром — Изменение параметра может заставить управление для другого параметра появляться или исчезать. Диалоговое окно расширяется или уменьшается, когда управление появляется или исчезает, соответственно.
Enabled состояние средств управления параметром — Изменение параметра может заставить управление для другого параметра быть включенным или отключенным для входа. Отключенное управление является grayed, чтобы указать визуально, что это отключено.
Значения параметров — Изменение параметра диалогового окна маски может связанные с причиной параметры диалогового окна маски, которые будут установлены в соответствующие значения.
Примечание
Сложение параметра маски, удаление или модификация ограничиваются в коллбэке маски.
Создание динамического диалогового окна маскированного влечет за собой использование Редактора Маски с set_param
команда. А именно, вы используете Редактор Маски, чтобы задать параметры диалогового окна, и статического и динамического. Для каждого динамического параметра вы вводите функцию обратного вызова, которая задает, как диалоговое окно отвечает на изменения в том параметре (см., Выполняют Код Коллбэка). Функция обратного вызова может в свою очередь использовать set_param
команда, чтобы установить параметры маски, которые влияют на внешний вид и настройки других средств управления на диалоговом окне (см., Создает Динамическое Диалоговое окно Маски). Наконец, вы сохраняете модель или библиотеку, содержащую подсистему маскированную, чтобы завершить создание динамического диалогового окна маскированного.
К связанному с представлением примеру смотрите, Создают динамические диалоговые окна маски.
Выбранный параметр появляется на диалоговом окне маски, только если эта опция проверяется (значение по умолчанию).
Очистка этой опции серые подсказка выбранного параметра и отключает средства редактирования подсказки.
В этом примере показано, как создать диалоговое окно маски блоки, внешний вид которых изменяется в ответ на ваш вход.
Можно установить два параметра с помощью этого диалогового окна маски. Первый параметр является всплывающим меню, через которое вы выбираете одно из трех значений усиления: 2
, 5, или
User-defined
. В зависимости от значения, которое вы выбираете в этом всплывающем меню, поле редактирования для определения усиления появляется или исчезает.
Выберите подсистему и на вкладке Subsystem Block, в группе Mask, нажмите Create Mask.
Выберите панель Parameters & Dialog на Редакторе Маски.
Перетащите мышью параметр Popup и выберите его в панели Dialog box.
В поле Prompt введите Gain
.
В поле Name введите gainpopup
.
В панели Редактора свойств очистите Evaluate так, чтобы Simulink® использовал литеральные значения, которые вы задаете для всплывающего окна.
В поле Type options нажмите кнопку Edit, чтобы ввести эти три значения в Раскрывающееся Окно параметров:
2 5 User-defined
Введите этот код в поле Dialog callback:
% 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
Перетащите мышью параметр Edit и выберите его в панели Dialog box.
В поле Prompt введите Value
.
В поле Name введите editvalue
.
В панели Редактора свойств очистите Visible так, чтобы Simulink выключил видимость этого свойства по умолчанию.
Нажмите Apply.
Чтобы открыть диалоговое окно маски, дважды кликните подсистему маскированную.
Если вы выбираете 2
или 5
как Gain, Simulink скрывает Value. Если вы выбираете User-defined
как Gain отображается Value.
Если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы, и вы пытаетесь установить параметры блоков в подсистемах маскированных низшего уровня, неразрешенные ошибки символа могут произойти. Поэтому избегайте использования set_param
команды, чтобы установить параметры блоков, находящихся в подсистемах маскированных, которые находятся в инициализируемой подсистеме маскированной. Попытка, если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы.
Предположим, например, подсистема маскированная A содержит замаскированную подсистему B, который содержит блок C Gain, параметр Усиления которого ссылается на переменную, заданную B. Предположим также, что код инициализации А подсистемы содержит эту команду:
set_param([gcb '/B/C'], 'SampleTime', '-1');
Симуляция или обновление модели, содержащей причины неразрешенная ошибка символа.