Пакет: slreportgen.finder
Суперклассы:
Создайте поисковик для схем
Находит Simulink® диаграммы и Stateflow® чарты.
создает средство поиска, которое по умолчанию находит все необработанные Диаграммы Simulink и диаграммы Stateflow в заданной finder
= DiagramFinder(container
)container
. Чтобы ограничить поиск включением определенных типов схем, используйте свойства этого искателя.
Примечание
Этот искатель может работать или в режиме поиска, или в итераторе. В режиме поиска используйте его find
метод для возврата результатов поиска как массива результатов. В режиме итератора используйте его hasNext
и next
методы для возврата результатов поиска один за другим. При поиске в моделях, которые имеют много модели-ссылки, используйте режим итератора. Режим итератора закрывает модель после компиляции и поиска, в то время как режим поиска сохраняет все модели, которые он ищет, открытыми. Наличие многих открытых моделей может потреблять всю системную память и медленную генерацию отчетов. Режим итератора медленнее, чем режим поиска, поэтому используйте режим поиска для поиска моделей, которые ссылаются на несколько других моделей или нет.
устанавливает свойства с помощью пар "имя-значение". Можно задать несколько аргументы пары "имя-значение" в любом порядке. Заключайте каждое имя свойства в одинарные кавычки.finder
= DiagramFinder(Name,Value
)
results = find(finder)
находит схемы в заданном container
. The finder
является slreportgen.finder.DiagramFinder
объект. results
является массивом slreportgen.finder.DiagramResult
объекты, каждый из которых содержит схему, найденную этим методом. Добавление этого массива к отчету или репортеру добавляет изображения всех схем, которые он содержит. Отчеты, в которые можно добавить results
этого метода являются отчеты типа slreportgen.report.Report
или другой объект, такой как slreportgen.report.Chapter
репортер.
Примечание
The find
метод открывает и компилирует модель верхнего уровня и все модели, на которые он ссылается. Этот метод оставляет все модели открытыми при завершении поиска, что может замедлить создание отчетов о моделях, которые содержат много модели-ссылки. Чтобы избежать этого замедления, используйте hasNext
и next
методы поиска такой модели.
tf = hasNext(finder)
определяет, содержит ли контейнер, который ищет поисковик, по крайней мере, одну схему. Если контейнер имеет хотя бы одну схему, hasNext
в очереди методов, которые являются следующей схемой, которую next
метод вернется. The hasNext
затем метод возвращает true
. Используйте next
способ получения этой схемы. При последующих вызовах hasNext
метод определяет, имеет ли контейнер схему, которую next
еще не извлечен. Он ставит схему в очередь для next
метод для извлечения и возвратов true
. Если больше нет схем, которые нужно извлечь, этот метод возвращается false
. Чтобы постепенно искать контейнеры для схем, используйте hasNext
метод с next
метод в цикле while.
Примечание
Если текущий результат является последним результатом в очереди поиска для текущей модели и AutoCloseModel
свойство true
, этот метод закрывает текущую модель, прежде чем она откроет следующую модель. Хотя это увеличивает время поиска, это уменьшает потребление памяти при поиске верхней модели, которая ссылается на многие другие модели. Если ваша модель не ссылается на многие другие модели, чтобы ускорить поиск, установите AutoCloseModel
свойство к false
или используйте find
способ.
result = next(finder)
возвращает следующую result
поиска в очереди результатов, которую
hasNext
создан метод. Результат поиска содержит получившуюся схему. Добавление этого result
объект к отчету или reporter добавляет репортер схемы для схемы.
Указатель. Чтобы узнать, как классы 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.finder.ChartDiagramFinder
| slreportgen.finder.DiagramElementFinder
| slreportgen.finder.DiagramResult
| slreportgen.finder.StateflowDiagramElementFinder
| slreportgen.finder.SystemDiagramFinder
| slreportgen.report.Diagram
| slreportgen.report.Report