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

Можно настроить диалоговое окно для блока MATLAB System путем добавления свойств и методов в соответствующем Системном объекте. Можно добавить вкладки, организованные свойства в группы и разделы, добавить описания блока, управление типом симуляции, и добавить пользовательские кнопки.

Диалоговые вкладки блока Define, разделы и порядок свойств

Этот пример настраивает диалоговое окно блока для MultipleGroupsWithTabs Блок MATLAB System путем определения свойства отображает имена и изменения getPropertyGroupImpl метод.

Измените метку свойства

Чтобы изменить метку свойства, которая появляется на диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label без пробела между комментарием и именем свойства. Например, чтобы отобразить StartValue свойство, как Запускают Значение, задает:

%StartValue Start Value
StartValue = 0

MultipleGroupsWithTabs Системный объект в этом примере повторно помечает каждое свойство для отображения в диалоговом окне блока MATLAB System.

Организуйте диалоговое окно

MutlitpleGroupsWithTabs Класс системного объекта задает getPropertyGroupsImpl метод. В getPropertyGroupsImpl метод, этот пример задает две вкладки (группы раздела) и три группировки параметра (разделы).

classdef MultipleGroupsWithTabs < matlab.System
    % MultipleGroupsWithTabs Customize block dialog with multiple tabs and parameter groups.
    
    % Public, tunable properties
    properties
        %StartValue Start Value
        StartValue = 0
        
        %EndValue End Value
        EndValue = 10
        
        Threshold = 1
        
        %BlockLimit Limit
        BlockLimit = 55
    end
    % Public Nontunable 
    properties(Nontunable)
        %IC1 First initial condition
        IC1 = 0
        
        %IC2 Second initial condition
        IC2 = 10
        
        %IC3 Third initial condition
        IC3 = 100

        %UseThreshold Use threshold
        UseThreshold (1,1) logical = true
    end
    
    methods (Static, Access = protected)
        function groups = getPropertyGroupsImpl
            % Section to always display above any tabs.
            alwaysSection = matlab.system.display.Section(...
                'Title','','PropertyList',{'BlockLimit'});
           
            % Group with no sections
            initTab = matlab.system.display.SectionGroup(...
                'Title','Initial conditions', ...
                'PropertyList',{'IC1','IC2','IC3'});
            
            % Section for the value parameters
            valueSection = matlab.system.display.Section(...
                'Title','Value parameters',...
                'PropertyList',{'StartValue','EndValue'});
            
            % Section for the threshold parameters
            thresholdSection = matlab.system.display.Section(...
                'Title','Threshold parameters',...
                'PropertyList',{'Threshold','UseThreshold'});
            
            % Group with two sections: the valueSection and thresholdSection sections
            mainTab = matlab.system.display.SectionGroup(...
                'Title','Main', ...
                'Sections',[valueSection,thresholdSection]);
            
            % Return an array with the group-less section, the group with
            % two sections, and the group with no sections.
            groups = [alwaysSection,mainTab,initTab];
        end
    end
end

Получившееся диалоговое окно

load_system('ShowSystemBlockDialog')
open_system('ShowSystemBlockDialog/MATLAB System')

Разделы свойства Define

Этот пример настраивает диалоговое окно блока для блока MATLAB System путем определения имен отображения свойства и изменения getPropertyGroupImpl метод. Эта индивидуальная настройка продемонстрирована с Системным объектом AddPropertySections.

Измените метки свойства

Чтобы изменить метку свойства, которая появляется на диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label без пробела между знаком процента и именем свойства. Например, чтобы отобразить UseAlpha свойство как альфа Использования, задайте:

%UseAlpha Use alpha
UseAlpha = 0

AddPropertySections Системный объект, включенный с этим примером, повторно помечает свойства для отображения в диалоговом окне блока MATLAB System.

Организуйте диалоговое окно

Организовывать свойства на диалоговом окне, AddPropertySections Класс системного объекта задает getPropertyGroupsImpl метод. В getPropertyGroupsImpl метод, этот пример задает два раздела, каждого с двумя свойствами.

classdef AddPropertySections < matlab.System
    % AddPropertySections Customized dialog with two parameter sections
    
    % Public, tunable properties
    properties
        
        %NumberOfShapes Number of shapes
        NumberOfShapes = 10
        
        Alpha = 0.75
    end
 
    % Public, nontunable properties
    properties(Nontunable)
        Coloring (1, 1) {mustBeMember(Coloring,["red","blue","green"])} = "red"

        %UseAlpha Use alpha
        UseAlpha (1,1) logical = false
    end
    
    methods (Static, Access = protected)
        function groups = getPropertyGroupsImpl           
            % Section for the value parameters
            valueSection = matlab.system.display.Section(...
                'Title','Shape parameters',...
                'PropertyList',{'NumberOfShapes','Coloring'});
            
            % Section for the threshold parameters
            shadingSection = matlab.system.display.Section(...
                'Title','Shading parameters',...
                'PropertyList',{'UseAlpha','Alpha'});
            
            % Return an array with the two sections.
            groups = [valueSection, shadingSection];
        end
    end
end

Получившееся диалоговое окно

load_system('CustomSystemBlockDialog')
open_system('CustomSystemBlockDialog/MATLAB System')

Добавьте описание заголовка

Добавьте панель заголовка в блок MATLAB System путем добавления getHeaderImpl метод к вашему Системному объекту.

Используйте getHeaderImpl задавать заголовок панели и текст для MyCounter Система object™. Если вы не задаете getHeaderImpl, блок не отображает заголовка или текста для панели.

Что касается всего Impl методы, набор getHeaderImpl доступ к методу к protected потому что метод только называется внутренне.

methods (Static, Access = protected)
   function header = getHeaderImpl
      header = matlab.system.display.Header('MyCounter',...
        'Title','My Enhanced Counter');
   end
end

 Полное определение класса

Управляйте типом симуляции в MATLAB System Block

Задайте тип симуляции и появляется ли параметр Simulate using на Simulink® Диалоговое окно блока MATLAB System. Опциями симуляции является 'Code generation' и 'Interpreted mode'.

Если вы не включаете getSimulateUsingImpl метод в вашем файле определения класса, Системный объект позволяет и режимы симуляции и значения по умолчанию к 'Code generation'. Если вы не включаете showSimulateUsingImpl метод, параметр Simulate using появляется на диалоговом окне блока.

Необходимо установить getSimulateUsingImpl и showSimulateUsingImpl методы к static и доступ для этих методов к protected.

Используйте getSimulateUsingImpl указывать, что только интерпретированное выполнение позволено для Системного объекта.

methods(Static,Access = protected)
   function simMode = getSimulateUsingImpl
       simMode = 'Interpreted execution';
    end
end

 Полное определение класса

Получившееся диалоговое окно параметром Simulate using:

MATLAB System dialog box showing the Simulate using drop down set to Interpreted execution and greyed out so users cannot change the option.

Добавьте пользовательскую кнопку в MATLAB System Block

Добавьте кнопку в диалоговое окно блока MATLAB System. Эта кнопка открывает фигуру, которая строит функцию пандуса.

Используйте matlab.system.display.Action задавать MATLAB® функция или код сопоставлены с кнопкой в диалоговом окне блока MATLAB System. Пример также показывает, как установить параметры кнопки и использовать actionData возразите входу, чтобы сохранить указатель фигуры. Эта часть примера кода использует ту же фигуру, когда кнопка нажата многократно, вместо того, чтобы открыть новую фигуру для каждого нажатия кнопки.

methods(Static,Access = protected)
  function group = getPropertyGroupsImpl
    group = matlab.system.display.Section(mfilename('class'));
    group.Actions = matlab.system.display.Action(@(actionData,obj)...
       visualize(obj,actionData),'Label','Visualize');
  end
end
    
methods
  function obj = ActionDemo(varargin)
    setProperties(obj,nargin,varargin{:});
  end
        
  function visualize(obj,actionData)
    f = actionData.UserData;
    if isempty(f) || ~ishandle(f)
      f = figure;
      actionData.UserData = f;
    else
      figure(f); % Make figure current
    end
        
    d = 1:obj.RampLimit;
    plot(d);
  end
end

 Полный файл определения класса для диалоговой кнопки

Получившееся диалоговое окно с кнопкой Visualize:

Resulting MATLAB System block dialog box with the custom button labeled "Visualize".

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

| | | | | |

Похожие темы