exponenta event banner

класс slreportgen.report.ExecityOrder

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

Отчет о системных задачах и заказах на выполнение блоков

Описание

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

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

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

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

Используйте ExecutionOrder свойства reporter для фильтрации содержимого отчета и настройки форматирования содержимого.

Примечание

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

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

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

HandleCompatible
true

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

Создание

Описание

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

пример

reporter = slreportgen.report.ExecutionOrder(system) создает ExecutionOrder reporter и устанавливает свойство Object для указанной модели или подсистемы.

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

Свойства

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

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

  • Вектор символов или строковый скаляр, содержащий путь к модели или подсистеме

  • Обращение к модели или подсистеме

  • Один slreportgen.finder.BlockResult объект

  • Один slreportgen.finder.DiagramResult объект

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

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

Типы данных: logical

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

Типы данных: logical

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

  • 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, таблица сведений о задаче включает столбцы, не содержащие данных.

Типы данных: logical

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

Типы данных: logical

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

Типы данных: logical

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

Типы данных: logical

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

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

  • "NestedList" - Блоки подсистем отображаются в виде вложенного списка.

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

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

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

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

Методы

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

Примеры

свернуть все

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

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

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