exponenta event banner

класс slreportgen.report.BusObject

Пакет: slreportgen.report
Суперклассы: slreportgen.report.Reporter

Репортер объектов шины Simulink

Описание

Создает репортер, генерирующий информацию о Simulink.Bus объект в отчете.

Примечание

Для использования отчета по объектам шины в отчете необходимо создать отчет с помощью slreportgen.report.Report класс или подкласс.

slreportgen.report.BusObject класс является handle класс.

Атрибуты класса

HandleCompatible
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Создание

Описание

reporter = slreportgen.report.BusObject() создает пустой slreportgen.report.BusObject репортерный объект. Настройте содержимое и форматирование информации, сообщаемой для объекта шины, с помощью свойств объекта reporter. Перед добавлением репортера в отчет необходимо задать свойству Object репортера значение slreportgen.report.ModelVariableResult или Simulink.VariableUsage объект, определяющий Simulink.Bus объект. Добавление пустого репортера в отчет приводит к ошибке.

пример

reporter = slreportgen.report.BusObject(object) создает репортер для Simulink.Bus объект, указанный slreportgen.report.ModelVariableResult или Simulink.VariableUsage объект. См. свойство Object.

reporter = slreportgen.report.BusObject(Name,Value) устанавливает свойства репортера, используя пары имя-значение. Можно указать несколько аргументов пары имя-значение в любом порядке. Заключите каждое имя свойства в одинарные или двойные кавычки.

Свойства

развернуть все

Объект, определяющий Simulink.Bus объект для отчета, указанный как slreportgen.finder.ModelVariableResult объект или Simulink.VariableUsage объект.

Это свойство только для чтения содержит имя объекта шины для отчета, указанное как строковый скаляр.

Свойства объекта шины для отчета, заданные как строковый массив или массив ячеек символьных векторов. Свойства, указанные ReportedBusProperties далее фильтруются свойством PropertyFilterFcn собственность. Если ReportedBusProperties пустое свойство, репортер включает все свойства в отчет, за исключением свойств, отфильтрованных PropertyFilterFcn собственность. Репортер исключает любое свойство объекта шины, недопустимое для объекта шины.

Свойства элемента шины для отчета, заданные как строковый массив или массив ячеек символьных векторов. Свойства, указанные ReportedElementProperties далее фильтруются по функции или коду, указанному в PropertyFilterFcn собственность. Если ReportedElementProperties пустое свойство, репортер включает все свойства в отчет, за исключением свойств, отфильтрованных PropertyFilterFcn собственность. Репортер исключает любое свойство элемента шины, недопустимое для элемента шины.

Отображать ли имя объекта шины в отчете, указанное как true или false.

Включать ли вложенный список, представляющий иерархию шины, в отчет, указанный как true или false.

Отображать ли в отчете таблицу свойств объекта шины, указанную как true или false.

Отображать ли в отчете таблицу свойств элемента шины, указанную как true или false.

Отображать ли список блоков, использующих объект шины, указанный как true или false. Если ShowUsedBy свойство имеет значение true, репортер включает в себя список блоков, которые используют объект шины в отчете. Если ShowUsedBySnapshot свойство также имеет значение true, репортер включает в себя снимок диаграммы для каждой родительской подсистемы, которая использует объект шины. Блоки, использующие объект шины, подсвечиваются в снимке.

Показывать ли снимки схемы родительских подсистем и выделять ли блоки, использующие объект шины, указанные как true или false. Если ShowUsedBySnapshot свойство имеет значение true, отчет включает снимок для каждой родительской подсистемы, которая использует объект шины. Блоки, использующие объект шины, подсвечиваются в снимке. Если родительская подсистема имеет более одного блока, использующего объект шины, репортер отображает только один снимок диаграммы, который выделяет блоки, использующие объект шины.

Следует ли создавать отдельный раздел для каждого типа информации об объекте шины в отчете. Если CreateSections свойство имеет значение true, репортер создает mlreportgen.report.Section с заголовком для каждого из следующих типов информации:

  • иерархия

  • свойства

  • элементы

  • блоки, использующие объект шины

Если CreateSections свойство имеет значение false, репортер генерирует метки для таблиц и списков. Для таблицы репортер генерирует заголовок таблицы. Для списка репортер создает текст, предшествующий списку.

Средство форматирования списка, которое форматирует созданную иерархию шины, указанное как mlreportgen.dom.UnorderedList объект или mlreportgen.dom.OrderedList объект. Чтобы настроить форматирование списка, измените свойства объекта списка или замените объект списка настраиваемым объектом списка, не содержащим элементов списка.

Средство форматирования списка, которое форматирует сформированный список блоков, использующих объект шины, указанный как mlreportgen.dom.UnorderedList объект или mlreportgen.dom.OrderedList объект. Чтобы настроить форматирование списка, измените свойства объекта списка или замените объект списка настраиваемым объектом списка, не содержащим элементов списка.

Табличный репортер, используемый для форматирования таблицы свойств объекта шины, указанного как mlreportgen.report.BaseTable объект. Чтобы настроить внешний вид таблицы, измените свойства отчета таблицы по умолчанию или замените его настраиваемым репортером таблицы. При добавлении содержимого в Title свойства по умолчанию или настраиваемого отчета таблицы, содержимое отображается перед заголовком таблицы в созданном отчете.

Табличный репортер, используемый для форматирования таблицы свойств элемента шины, указанного как mlreportgen.report.BaseTable объект. Чтобы настроить внешний вид таблицы, измените свойства отчета таблицы по умолчанию или замените его настраиваемым репортером таблицы. При добавлении содержимого в Title свойства по умолчанию или настраиваемого отчета таблицы, содержимое отображается перед заголовком таблицы в созданном отчете.

Отображать ли свойства горизонтально в таблице свойств элемента, указанной как true или false.

Если HorizontalElementsTable свойство имеет значение trueтаблица содержит по одному столбцу для каждого свойства. Например:

Если HorizontalElementsTable свойство имеет значение falseячейки свойств и значений в строке элемента разделяются на несколько строк. Например:

Репортер для форматирования разделов при CreateSections свойство имеет значение true, указано как mlreportgen.report.Section объект. Чтобы настроить внешний вид раздела, измените свойства репортера раздела по умолчанию или замените его настраиваемым репортером раздела.

Функция или выражение для фильтрации свойств сообщаемой шины или элемента шины из отчета. Укажите функцию как дескриптор функции. Укажите выражение как строковый скалярный или символьный вектор.

Если предоставляется дескриптор функции, связанная функция должна:

  • Возьмем следующие аргументы:

    • variableName - имя переменной модели, обозначающей сообщаемый элемент шины или шины;

    • variableObject - Сообщение об элементе шины или шины

    • propertyName - Наименование свойства сообщаемого элемента шины или шины

  • Вернуть true для фильтрации указанного свойства из отчета или false для включения свойства в отчет.

Например, этот код предотвращает отображение HeaderFile и Description свойства объекта шины и Complexity свойство элемента шины:

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('busrpt','pdf');

model = load_system('sldemo_bus_arrays');

modelVariableFinder = ModelVariableFinder(model);
results = find(modelVariableFinder);
for result = results
    if isa(getVariableValue(result),'Simulink.Bus')
        busRptr = slreportgen.report.BusObject(result);
        busRptr.PropertyFilterFcn = @busPropertyFilter;
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busRptr.Name);
        add(chapter, busRptr);   
        add(rpt,chapter)
    end
end
close(rpt);

close_system(model);
rptview(rpt);

function tf = busPropertyFilter(~, variableObject,propertyName)
if isa(variableObject, 'Simulink.Bus')
    tf = (propertyName == "HeaderFile") ||  ...
        (propertyName == "Description");
else
    % Filter Simulink.BusElement Complexity property
    tf = propertyName == "Complexity";
end
end

Если предоставляется строковый скаляр или символьный вектор, он должен содержать выражение. Выражение:

  • Может использовать переменные variableName, variableObject, и propertyName

  • Необходимо задать переменную isFiltered кому true для фильтрации указанного свойства из отчета или false включение свойства в отчет

Например, этот код фильтрует HeaderFile свойство объекта шины из отчета:

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('busrpt','pdf');

model = load_system('sldemo_bus_arrays');

modelVariableFinder = ModelVariableFinder(model);
results = find(modelVariableFinder);
for result = results
    if isa(getVariableValue(result),'Simulink.Bus')
        busRptr = slreportgen.report.BusObject(result);
        busRptr.PropertyFilterFcn = "isFiltered = " + ...
            "isa(variableObject, 'Simulink.Bus') && " + ...
            "propertyName == 'HeaderFile';";
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busRptr.Name);
        add(chapter, busRptr);   
        add(rpt,chapter)
end
end
close(rpt);

close_system(model);
rptview(rpt);

Источник шаблона для этого репортера, указанный одним из следующих способов:

  • Вектор символов или строковый скаляр, указывающий путь к файлу, содержащему шаблон для этого репортера

  • Репортер или отчет, шаблон которого используется для этого репортера или библиотека шаблонов которого содержит шаблон для этого репортера

  • Документ DOM или деталь документа, шаблон которого используется для этого репортера или библиотека шаблонов которого содержит шаблон для этого репортера

Указанный шаблон должен быть того же типа, что и отчет, к которому добавлен этот репортер. Например, для отчета Microsoft ® Word :TemplateSrc должен быть шаблоном репортера Word. Если TemplateSrc пустое свойство, этот репортер использует шаблон репортера по умолчанию для типа вывода отчета.

Имя шаблона для этого репортера, указанного как вектор символов или скаляр строки. Шаблон для этого репортера должен находиться в библиотеке шаблонов источника шаблона (TemplateSrc) для этого репортера.

Цель гиперссылки для этого репортера, указанная как вектор символов или скаляр строки, указывающий идентификатор цели связи, или mlreportgen.dom.LinkTarget объект. Вектор символов или строковое скалярное значение преобразуется в LinkTarget объект. Цель ссылки непосредственно предшествует содержимому этого репортера в выходном отчете.

Методы

развернуть все

Примеры

свернуть все

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

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");
open(rpt);

% Load a model
model_name = "sldemo_bus_arrays";
load_system(model_name);

% Find all variables used by the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Create a Bus object reporter object for all results representing a
% Simulink.Bus object
while hasNext(finder)
    result = next(finder);
    if isa(getVariableValue(result), "Simulink.Bus")
        % Create a Bus object reporter
        busReporter = slreportgen.report.BusObject(result);
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busReporter.Name);
        % Add bus to chapter
        add(chapter, busReporter)
        % Add chapter to the report
        add(rpt,chapter);
    end
end

% Close and view the report
close(rpt);
rptview(rpt);

Настройте содержимое отчетов и форматирование содержимого, установив свойства репортера объектов шины. Этот пример использует собственность ReportedElementProperties ограничить свойства элемента, о которых сообщают. Свойство HorizontalElemityTable используется для создания таблицы свойств с одним столбцом для каждого свойства.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");
open(rpt);

% Load a model
model_name = "sldemo_bus_arrays";
load_system(model_name);

% Find all variables used by the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Create a Bus object reporter object for all results representing a
% Simulink.BusObject object
while hasNext(finder)
    result = next(finder);
    if isa(getVariableValue(result), "Simulink.Bus")
        % Create a Bus object reporter
        busReporter = slreportgen.report.BusObject(result);
        % Limit the properties that are reported
        busReporter.ReportedElementProperties = {'Name','DataType','Min','Max'};
        % Display element properties horizontally
        busReporter.HorizontalElementsTable = true;
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busReporter.Name);
        % Add bus to chapter
        add(chapter, busReporter)
        % Add chapter to the report
        add(rpt,chapter);
    end
end

% Close and view the report
close(rpt);
rptview(rpt);
Представлен в R2019b