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

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

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

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

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

Примечание

Сложение параметра маски, удаление или модификация ограничиваются в коллбэке маски.

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

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

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

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

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

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

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

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

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

  1. Выберите подсистему и на вкладке Subsystem Block, в группе Mask, нажмите Create Mask.

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

  3. Перетащите мышью параметр Popup и выберите его в панели Dialog box.

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

    2. В поле Name введите gainpopup.

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

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

      2
      5
      User-defined

  4. Введите этот код в поле 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

  5. Перетащите мышью параметр Edit и выберите его в панели Dialog box.

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

    2. В поле Name введите editvalue.

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

  6. Нажмите Apply.

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

    Если вы выбираете 2 или 5 как Gain, Simulink скрывает Value. Если вы выбираете User-defined как Gain отображается Value.

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

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

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

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

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

Похожие темы