slreportgen.report.ExecutionOrder class

Пакет: slreportgen.report

Системная задача и генератор отчетов порядка выполнения блока

Описание

Используйте объект slreportgen.report.ExecutionOrder класс, чтобы сообщить о задачах или невиртуальной подсистемы модели и блоков в каждой задаче, отсортированной по порядку выполнения. По умолчанию, ExecutionOrder генератор отчетов генерирует:

  • Таблица имен задач и свойств

  • Список блоков в каждой задаче

Условно выполняемые блоки, такие как подсистемы, инициированные вызовом функции или блоком If, не отображены в списке порядков выполнения блока. Вместо этого эти блоки отображены в Conditional Execution таблица, которая следует списку порядков выполнения блока. Таблица приводит условно выполняемые блоки и блоки, которые инициировали их выполнение.

Используйте ExecutionOrder свойства генератора отчетов отфильтровать содержимое, о котором сообщают, и настроить довольное форматирование.

Примечание

Использовать slreportgen.report.ExecutionOrder генератор отчетов в отчете, необходимо создать отчет с помощью slreportgen.report.Report класс или подкласс. ExecutionOrder генератор отчетов не генерирует содержимое, если это добавляется к slreportgen.report.Report объект, который имеет CompileModelBeforeReporting установите на false.

slreportgen.report.ExecutionOrder классом является handle класс.

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

HandleCompatible
true

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

Создание

Описание

reporter = slreportgen.report.ExecutionOrder() создает пустой ExecutionOrder генератор отчетов, основанный на объектах на шаблоне по умолчанию. Необходимо задать модель или подсистему, для которой можно сообщить о порядке выполнения путем установки Свойства объекта. Используйте другие свойства задать опции отчета.

пример

reporter = slreportgen.report.ExecutionOrder(system) создает ExecutionOrder генератор отчетов и наборы Свойство объекта к заданной модели или подсистеме.

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

Свойства

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

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

Определение BlockResult или DiagramResult это представляет разгруженную модель, или виртуальная подсистема приводит к ошибке.

Включать ли таблицу деталей задачи в виде true или false. Если ShowTaskDetails true, генератор отчетов генерирует таблицу, которая отображает имена и свойства задач в заданной системе.

Типы данных: логический

Включать ли списки порядков выполнения блока в виде true или false. Если ShowBlockEecutionOrder true, генератор отчетов включает список блоков, отсортированных в порядке выполнения, для каждой задачи в системе. Условно выполняемые блоки, такие как подсистемы, инициированные вызовом функции или блоком If, не отображены в списке порядков выполнения. Вместо этого эти блоки отображены в Conditional Execution таблица, которая следует списку порядков выполнения блока. Таблица приводит условно выполняемые блоки и блоки, которые инициировали их выполнение.

Типы данных: логический

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

  • Order — Место задачи в порядке выполнения задачи на каждом временном шаге. Для Асинхронного и задач Константа, об этом свойстве сообщают как N/A.

  • Name — Имя задачи.

  • Type — Тип задачи, например, Periodic, Aperiodic, Asynchronous, или Constant.

  • Trigger — Уровень, на котором периодические задачи выполняются или список времен, в которые выполняются апериодические задачи.

  • TaskID — Индекс задачи в заданной системе.

  • SourceBlock — Блокируйтесь, который описывает задачу.

Пример: ["Order" "Name" "Type" "Trigger" "TaskID" "SourceBlock"]

Пример: {'Order' 'Name' 'Type'}

Показать ли, что пустые столбцы в задаче подробно излагают таблицу в виде true или false. Если ShowEmptyColumns true, таблица деталей задачи включает столбцы, которые не имеют никаких данных.

Типы данных: логический

Показать ли, что тип каждого блока в порядке выполнения блока перечисляет в виде true или false. Если ShowBlocktype true, генератор отчетов включает тип каждого блока рядом с именем блока в списках порядков выполнения.

Типы данных: логический

Показать ли блоки, созданные во время компиляции в виде true или false. Если ShowHiddenBlocks true, генератор отчетов включает блоки, которые вставляет Simulink®, когда модель скомпилирована. Если ShowHiddenBlocks false, генератор отчетов включает только добавленные пользователями блоки.

Типы данных: логический

Ли к ссылочным черным спискам невиртуальных подсистем в виде true или false. Если IncludeSubsystemBlocks верно, генератор отчетов включает ссылки на невиртуальные блоки подсистемы. Свойство SubsystemBlocksDisplayPolicy определяет, как на невиртуальные блоки подсистемы ссылаются.

Типы данных: логический

Политика для ссылки на списки порядков выполнения блоков, которые находятся в невиртуальных подсистемах в виде одного из этих строковых скаляров или векторов символов:

  • "Link" — (значение по умолчанию) ссылка на отдельный список порядков выполнения блока для подсистемы вставляется рядом с именем подсистемы. Ссылка работает, только если программа генерации отчета, которая включает этот генератор отчетов также, включает отдельный ExecutionOrder генератор отчетов для подсистемы. Для каждой задачи, которая включает подсистему в многозадачную модель, ссылка продается на аукционе список порядков выполнения для соответствующей задачи, о которой сообщает подсистема ExecutionOrder генератор отчетов. Никакая ссылка не вставляется для подсистем блока MATLAB Function.

  • "NestedList" — Блоки Subsystem отображены как вложенный список.

Функция или выражение, чтобы отфильтровать системные задачи из отчета в виде указателя на функцию, строкового скаляра или вектора символов. Задайте функцию как указатель на функцию. Задайте выражение как строковый скаляр или вектор символов. Если TaskFilterFcn пусто, все задачи включены в отчет.

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

  • Возьмите эти аргументы:

    • taskName — Имя задачи.

    • taskType — Тип задачи.

    • trigger — Шаг расчета или времена хита задачи. Если времена хита для апериодической задачи заданы как выражение, триггер является строкой, которая содержит выражение, которое будет оценено.

    • sourceBlock— Блокируйтесь, который описывает задачу.

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

Например, этот код использует TaskFilterFcn свойство сообщить только о периодических задачах:

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

model_name = "vdp";
load_system(model_name);

rpt = slreportgen.report.Report("ExecutionOrder_example","html");

finder = DiagramFinder(model_name);

ch = Chapter("Diagrams");
while hasNext(finder)
    result = next(finder);
    % Only report block diagrams and nonvirtual subsystems
    if (strcmpi(result.Type,"Simulink.SubSystem")...
            && strcmpi(get_param(result.Object,"IsSubsystemVirtual"),"off")) ...
            || strcmpi(result.Type,"Simulink.BlockDiagram")
        sect = Section(result.Name);
        append(sect,result);
        % Create ExecutionOrder reporter and add to report
        rptr = ExecutionOrder(result);
        % Filter all but periodic tasks
        filterFcnHandle = @(taskName, taskType, trigger, sourceBlock) ...
            ~strcmpi(taskType, "Periodic");
        rptr.TaskFilterFcn = filterFcnHandle;
        append(sect,rptr);
        
        append(ch,sect);
    end
end

append(rpt,ch);
close(rpt);
rptview(rpt);

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

  • Может использовать переменные taskName, taskType, trigger, и sourceBlock

  • Должен установить переменную isFiltered к true отфильтровать заданную задачу из отчета или false включать задачу в отчет

Например, этот код использует TaskFilterFcn свойство сообщить только о периодических задачах:

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

model_name = "vdp";
load_system(model_name);

rpt = slreportgen.report.Report("ExecutionOrder_example","html");

finder = DiagramFinder(model_name);

ch = Chapter("Diagrams");
while hasNext(finder)
    result = next(finder);
    % Only report block diagrams and nonvirtual subsystems
    if (strcmpi(result.Type,"Simulink.SubSystem")...
            && strcmpi(get_param(result.Object,"IsSubsystemVirtual"),"off")) ...
            || strcmpi(result.Type,"Simulink.BlockDiagram")
        sect = Section(result.Name);
        append(sect,result);
        % Create ExecutionOrder reporter and add to report
        rptr = ExecutionOrder(result);
        % Filter all but periodic tasks
        % Code string to include only asynchronous tasks
        filterStr = "isFiltered = ~strcmpi(taskType, ""Periodic"");";
        rptr.TaskFilterFcn = filterStr;
        append(sect,rptr);
        
        append(ch,sect);
    end
end

append(rpt,ch);
close(rpt);
rptview(rpt);

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

Средство форматирования для порядка выполнения блока перечисляет в виде mlreportgen.dom.OrderedList объект или mlreportgen.dom.UnorderedList объект. OrderedList или UnorderedList объект не должен содержать элементы списка.

Значением по умолчанию этого свойства является OrderedList объект с StyleName набор свойств к ExecutionOrderList разработайте, который задан в шаблоне по умолчанию для ExecutionOrder генератор отчетов. Чтобы настроить внешний вид списка, измените свойства OrderedList по умолчанию возразите или замените объект на свой собственный OrderedList или UnorderedList объект.

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

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

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

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

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

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

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

Методы

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

Примеры

свернуть все

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

Импортируйте MATLAB и пакеты API Отчета Simulink так, чтобы вы не использовали долго, полностью определенные имена классов.

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

Откройте модель и создайте отчет.

model_name = 'vdp';
load_system(model_name);
 
rpt = slreportgen.report.Report("ExecutionOrder_example","pdf");

Создайте средство поиска, чтобы найти все схемы в модели. Создайте Diagrams глава.

finder = DiagramFinder(model_name);
ch = Chapter("Diagrams");

Для каждой схемы, которая является блок-схемой или невиртуальной подсистемой, сообщите о системных задачах и блоках в порядке выполнения, с помощью значений по умолчанию slreportgen.report.ExecutionOrder свойства генератора отчетов.

while hasNext(finder)
    result = next(finder);
    if (strcmpi(result.Type,"Simulink.SubSystem") &&...
            strcmpi(get_param(result.Object,"IsSubsystemVirtual"),"off")) ...
            || strcmpi(result.Type,"Simulink.BlockDiagram")
        sect = mlreportgen.report.Section(result.Name);
        append(sect,result);
        rptr = slreportgen.report.ExecutionOrder(result);
        append(sect,rptr);
        append(ch,sect);
    end
end

Добавьте главу к отчету. Закройте и просмотрите отчет.

append(rpt,ch);
close(rpt);
rptview(rpt);
Введенный в R2020b