slreportgen.report.BusObject class

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

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

Описание

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

Примечание

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

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

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

HandleCompatible
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Создание

Описание

reporter = slreportgen.report.BusObject() создает пустой slreportgen.report.BusObject объект reporter. Настройте содержимое и форматирование информации, сообщаемой для объекта шины, с помощью свойств объекта 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) устанавливает свойства reporter с помощью пар "имя-значение". Можно задать несколько аргументы пары "имя-значение" в любом порядке. Заключайте каждое имя свойства в одинарные или двойные кавычки.

Свойства

расширить все

Объект, который задает 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, reporter включает снимок схемы для каждой родительской подсистемы, которая использует объект шины. Блоки, которые используют объект шины, подсвечиваются в моментальном снимке.

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

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

  • иерархия

  • свойства

  • элементы

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

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

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

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

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

Table reporter используется для форматирования таблицы свойств элемента шины, заданной как 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® Отчет о словах, 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, чтобы ограничить свойства элемента, которые сообщаются. Он использует свойство HorizontalElementsTable, чтобы сгенерировать таблицу свойств с одним столбцом для каждого свойства.

% 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