Динамическое диалоговое окно маски

Можно создать диалоговые окна для блоков маскированных, внешний вид которых изменяется в ответ на ввод данных пользователем. Функции диалоговых окон маскированных, которые могут измениться таким образом, включают:

  • Видимость средств управления параметром — Изменение параметра может заставить управление для другого параметра появляться или исчезать. Диалоговое окно расширяется или уменьшается, когда управление появляется или исчезает, соответственно.

  • Enabled состояние средств управления параметром — Изменение параметра может заставить управление для другого параметра быть включенным или отключенным для входного параметра. Отключенное управление является grayed, чтобы указать визуально, что это отключено.

  • Значения параметров — Изменение параметра диалогового окна маски может связанные с причиной параметры диалогового окна маски, которые будут установлены в соответствующие значения.

Создание динамического диалогового окна маскированного влечет за собой использование Редактора Маски с командой set_param. В частности вы используете Редактор Маски, чтобы задать параметры диалогового окна, и статичного и динамического. Для каждого динамического параметра вы вводите функцию обратного вызова, которая задает, как диалоговое окно отвечает на изменения в том параметре (см., Выполняют Код Обратного вызова). Функция обратного вызова может в свою очередь использовать команду set_param, чтобы установить параметры маски, которые влияют на внешний вид и настройки других средств управления на диалоговом окне (см., Создают Динамическое Диалоговое окно Маски). Наконец, вы сохраняете модель или библиотеку, содержащую подсистему маскированную, чтобы завершить создание динамического диалогового окна маскированного.

К связанному с представлением примеру смотрите, Создают динамические диалоговые окна маски.

Покажите параметр

Выбранный параметр появляется на диалоговом окне маски, только если эта опция проверяется (значение по умолчанию).

Включите параметр

Очистка этой опции серые подсказка выбранного параметра и отключает средства редактирования подсказки.

Создайте динамическое диалоговое окно маски

Этот пример показывает, как создать диалоговое окно маски блоки, внешний вид которых изменяется в ответ на ваш входной параметр.

Можно установить два параметра с помощью этого диалогового окна маски. Первый параметр является всплывающим меню, через которое вы выбираете одно из трех значений усиления: 2, 5 или User-defined. В зависимости от значения, которое вы выбираете в этом всплывающем меню, поле редактирования для определения усиления появляется или исчезает.

  1. Замаскируйте подсистему путем щелчка правой кнопкой по блоку и выбора Mask> Create Mask.

  2. Выберите панель Parameters & Dialog на Редакторе Маски.

  3. Перетащите мышью Раскрывающийся параметр и выберите его в панели Диалогового окна.

    1. В поле Prompt введите Gain.

    2. В Поле имени введите gainpopup.

    3. В панели Редактора свойств, ясной, Оценивают так, чтобы Simulink® использовал литеральные значения, которые вы задаете для всплывающего окна.

    4. В поле опций Типа нажмите кнопку Edit, чтобы ввести эти три значения в Раскрывающееся Окно параметров:

      2
      5
      User-defined

  4. Введите этот код в Диалоговом поле обратного вызова:

    % 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

  5. Перетащите мышью параметр Редактирования и выберите его в панели Диалогового окна.

    1. В поле Prompt введите Value.

    2. В Поле имени введите editvalue.

    3. В панели Редактора свойств очиститесь Видимый так, чтобы Simulink выключил видимость этого свойства по умолчанию.

  6. Нажмите Apply.

  7. Чтобы открыть диалоговое окно маски, дважды кликните подсистему маскированную.

    Если вы выбираете 2 или 5 как Усиление, Simulink скрывает Значение. Если вы выбираете User-defined как Усиление, Значение видимо.

Настройте вложенные блочные параметры маскированные

Если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы, и вы пытаетесь установить параметры блоков в подсистемах маскированных низшего уровня, неразрешенные ошибки символа могут произойти. Поэтому избегайте использования команд set_param, чтобы установить параметры блоков, находящихся в подсистемах маскированных, которые находятся в инициализируемой подсистеме маскированной. Попытка, если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы.

Предположим, например, подсистема маскированная A содержит замаскированную подсистему B, который содержит блок Gain C, чей параметр Усиления ссылается на переменную, заданную B. Предположим также, что код инициализации А подсистемы содержит эту команду:

set_param([gcb '/B/C'], 'SampleTime', '-1');

Моделирование или обновление модели, содержащей причины неразрешенная ошибка символа.

Смотрите также

|

Была ли эта тема полезной?