Пакет: slreportgen.finder
Суперклассы:
Создайте средство поиска для схем
Находит Simulink® схемы и Stateflow® графики.
создает средство поиска, которое находит по умолчанию все непрокомментированные Диаграммы Simulink и схемы диаграммы Stateflow в заданном finder
= DiagramFinder(container
)container
. Чтобы ограничить поиск включать определенные типы схем, используйте свойства этого средства поиска.
Примечание
Это средство поиска может действовать или в найти или в режим итератора. В режиме находки используйте его find
метод, чтобы возвратить результаты поиска как массив результатов. В режиме итератора используйте его hasNext
и next
методы, чтобы возвратить результаты поиска один за другим. При поиске в моделях, которые имеют много моделей - ссылок, используйте режим итератора. Режим Iterator закрывает модель после компиляции и поиска его, тогда как находят, что режим сохраняет все модели, которые это ищет открытый. Наличие многих открытых моделей может использовать всю системную память и замедлить генерацию отчета. Режим Iterator медленнее, чем находят режим, таким образом, использование находит, что режим ищет модели что ссылка немногие или никакие другие модели.
свойства наборов с помощью пар "имя-значение". Можно задать несколько аргументов пары "имя-значение" в любом порядке. Заключите каждое имя свойства в одинарные кавычки.finder
= DiagramFinder(Name,Value
)
results = find(finder)
находит схемы в заданном container
. finder
slreportgen.finder.DiagramFinder
объект. results
массив slreportgen.finder.DiagramResult
объекты, каждый из которых содержит схему, найденную этим методом. Добавление этого массива к отчету или генератору отчетов добавляет изображения всех схем, которые это содержит. Отчеты, в которые можно добавить results
из этого метода отчеты типа slreportgen.report.Report
или другой объект генератора отчетов, такой как slreportgen.report.Chapter
генератор отчетов.
Примечание
find
метод открывает и компилирует модель верхнего уровня и все модели, на которые он ссылается. Этот метод оставляет все модели открытыми в конце поиска, который может замедлить создание отчетов о моделях, которые содержат много моделей - ссылок. Чтобы избежать этого замедления, используйте hasNext
и next
методы, чтобы искать такую модель.
tf = hasNext(finder)
определяет, если контейнер, что поисковые запросы средства поиска содержат по крайней мере одну схему. Если контейнер имеет по крайней мере одну схему, hasNext
очереди метода, которые схематически изображают как следующая схема что next
метод возвратится. hasNext
метод затем возвращает true
. Используйте next
метод, чтобы получить ту схему. На последующих вызовах, hasNext
метод определяет, имеет ли контейнер схему что next
еще не получил. Это ставит схему в очередь для next
метод, чтобы получить и возвращает true
. Если больше нет схем, которые будут получены, этот метод возвращает false
. Чтобы прогрессивно искать контейнер схемы, используйте hasNext
метод с next
метод в некоторое время цикле.
Примечание
Если текущим результатом является последний результат в поисковой очереди для текущей модели и AutoCloseModel
свойством является true
, этот метод закрывает текущую модель, прежде чем это откроет следующую модель. Несмотря на то, что это увеличивает время поиска, оно уменьшает потребление памяти при поиске топ-модели что ссылки много других моделей. Если ваша модель не ссылается на многие другие модели, чтобы ускорить поиск, установите AutoCloseModel
свойство к false
или используйте find
метод.
result = next(finder)
возвращает следующий поисковый result
в очереди результата, что hasNext
метод создается. Результат поиска содержит получившуюся схему. Добавление этого result
возразите против отчета, или генератор отчетов добавляет генератор отчетов Схемы для схемы.
Указатель. Чтобы узнать, как классы Handle влияют на операции копирования, см. раздел "Копирование объектов".
Создайте отчет, который включает изображение всех схем в slrgex_sf_car
модель. Несмотря на то, что модель, используемая в этом примере, не содержит модели - ссылки, пример использует режим итератора, чтобы проиллюстрировать его синтаксис.
import mlreportgen.report.* import slreportgen.report.* import slreportgen.finder.* model_name = 'slrgex_sf_car'; load_system(model_name); rpt = slreportgen.report.Report('output','pdf'); add(rpt, TitlePage('Title', sprintf('%s Systems',... model_name))); finder = DiagramFinder(model_name); while hasNext(finder) add(rpt,next(finder)); end close(rpt); close_system(model_name); rptview(rpt);
Откройте slrgex_sf_car
модель и находит все схемы в своем Engine
подсистема. Используйте или путь к подсистеме или ее указатель. Можно затем включать результаты в отчет.
slrgex_sf_car % Use path enginePath = "slrgex_sf_car/Engine"; finder = slreportgen.finder.DiagramFinder(enginePath); results = find(finder); % or use handle engineHandle = get_param("slrgex_sf_car/Engine","Handle"); finder = slreportgen.finder.DiagramFinder(engineHandle); results_enginehandle = find(finder);
Чтобы найти элементы с определенными значениями свойств, используйте объект slreportgen.finder.DiagramElementFinder
класс. Откройте f14
модель и находит все блоки Gain со значением Zw
.
model = 'f14'; load_system(model); finder = slreportgen.finder.DiagramElementFinder(model) finder.Properties = {'Gain','Zw'}; results = find(finder);
slreportgen.report.Report
| slreportgen.finder.DiagramElementFinder
| slreportgen.finder.SystemDiagramFinder
| slreportgen.finder.ChartDiagramFinder
| slreportgen.finder.StateflowDiagramElementFinder
| slreportgen.report.Diagram
| slreportgen.finder.DiagramResult