Описание пользователя
Глава 2. Интерфейс пользователя
§2.15. Операции с несколькими блоками и связями одновременно
Описываются действия, которые одновременно затрагивают несколько блоков и связей, а также способы поиска и выделения блоков, имеющих общие параметры.
§2.15.1. Выделение блоков и связей по заданному критерию
Описывается выделение в подсистеме блоков и связей, имеющих какие-либо общие параметры. Эта функция бывает полезна при внесении изменений в сложные схемы и при отладке таких схем.
Выделить в подсистеме несколько блоков и связей можно разными способами – например, щелчками на них левой кнопкой мыши с нажатой клавишей Shift, или указанием прямоугольной области, внутрь которой должны попасть выделенные объекты. Однако, иногда удобнее выделить блоки или связи, у которых есть нечто общее: например, одна и та же функция модели, или один и тот же текст в комментарии блока. Особенно это удобно при наличии в схеме большого количества однотипных или похожих блоков. После этого для всех выделенных в подсистеме объектов можно, например, установить одинаковые параметры при помощи функции групповой установки. Такое выделение по заданному критерию вызывается пунктом «» главного меню RDS). При выборе этого пункта открывается окно (рис. 230), в котором выбираются способ и критерии выделения.
Рис. 230. Окно выделения: вкладка «»
Окно выделения по заданному критерию содержит четыре вкладки, главная из которых – «». В левой верхней ее части установкой флажка на панели «» выбирается действие, которое будет выполнено при закрытии окна кнопкой «»:
- «» – блоки, связи и шины, соответствующие выбранным в окне критериям, станут выделенными, все остальные объекты выделены не будут;
- «» – блоки, связи и шины, соответствующие выбранным критериям, будут добавлены к уже выделенным объектам;
- «» – выделенные блоки, связи и шины, соответствующие критериям, перестанут быть выделенными.
Таким образом, вызывая это окно несколько раз и меняя способ выделения, можно выделять объекты по довольно сложным алгоритмам. Если, например, необходимо выделить все блоки, функция модели которых находится в библиотеке «Library.dll», кроме тех, в комментарии которых содержится слово «временный», нужно провести выделение два раза. Сначала следует установить флажок «» и выделить все блоки с моделью из библиотеки «Library.dll», а затем снова открыть окно выделения, установить флажок «» и снять выделение со всех блоков со словом «временный» в комментарии. В результате останутся выделенными только нужные блоки (для автоматизации таких действий служит функция пакетной обработки).
Поскольку выбором способа выделения можно как установить выделение для блоков, связей и шин, так и снять его, в дальнейшем будем обобщенно называть действие, выполняемое окном, «обработкой», имея в виду как включение, так и выключение выделения для объектов подсистемы в зависимости от установок панели «».
Флажками на панели «» выбираются обрабатываемые при установке (или снятии) выделения объекты: блоки, связи и шины. Флажки для блоков разбиты по типам – можно независимо выделять простые блоки, подсистемы, внешние входы и выходы и вводы шин. Если флажок рядом с типом объекта не будет установлен, такой объект не будет обработан, даже если он будет удовлетворять остальным критериям, заданным в окне.
В левой нижней части вкладки располагается панель «» со списком слоев подсистемы: при установке флажка «» будут обработаны только блоки, связи и шины, находящиеся на отмеченных в списке слоях.
В правой части вкладки находятся три панели: «», «» и «», на которых задаются критерии выделения соответствующих объектов. Рядом с каждым критерием располагается флажок: если он не установлен, то критерий не будет учтен при обработке, если установлен, то будут обработаны только объекты, удовлетворяющие этому критерию. На панели «» можно задать следующие критерии обработки блоков:
- «» – обрабатываются только блоки, имена которых соответствуют указанному шаблону. В шаблоне можно применять метасимволы «∗», заменяющий произвольное число символов, и «?», заменяющий один символ (точно так же в ОС задают шаблоны имен файлов).
- «» – обрабатываются только блоки, к которым подключены функции моделей, находящихся в указанной библиотеке. Имя библиотеки можно выбирать из выпадающего списка (в нем содержатся имена всех библиотек, используемых данной схемой) или вводить вручную, вместо стандартной папки Dll RDS можно указывать символическое имя «$DLL$». Можно также использовать и другие символические имена папок.
- «» – обрабатываются только блоки, к которым подключена функция модели с указанным именем. Имя можно выбирать из выпадающего списка (он содержит все имена функций моделей, используемые в данной схеме) или вводить вручную.
- «» – обрабатываются только блоки, в составе статических переменных которых используется структура с указанным именем типа. Имя типа структуры выбирается из выпадающего списка. Глубина вложенности структуры указанного типа не важна: если среди переменных блока нет структуры указанного типа, но есть структура, содержащая эту структуру в качестве поля, блок все равно будет обработан.
На панели «» задаются критерии обработки связей (шины, хотя и являются видом связей, сюда не входят – у них отдельная панель):
- «» – обрабатываются только связи, передающие переменную указанного типа. Тип задается в отдельном окне нажатием кнопки справа от флажка.
- «» – обрабатываются только связи, внешний вид которых соответствует одному из стандартных стилей. Имя стиля выбирается из выпадающего списка.
- «» («» или «») – в зависимости от того, какой из дополнительных флажков установлен, обрабатываются только включенные или отключенные связи.
На панели «» указываются критерии обработки шин:
- «» – обрабатываются только шины, имена которых соответствуют указанному шаблону. В шаблоне можно применять метасимволы «∗» и «?». Этот критерий, фактически, единственное место в RDS, где используются имена шин.
- «» – обрабатываются только шины, среди каналов которых используется структура с указанным именем типа. Имя типа структуры выбирается из выпадающего списка. Глубина вложенности структуры, как и при обработке блоков, не важна.
- «» – обрабатываются только шины, внешний вид которых соответствует одному из стандартных стилей.
На вкладке «» окна выделения задаются критерии, используемые реже (рис. 231). Панель «» позволяет обработать блоки, содержащие заданные фрагменты в тексте комментария. Если на панели установлен флажок «», будут обработаны блоки, содержащие любой из указанных фрагментов, если же установлен флажок «», будут обработаны только блоки, содержащие все из них. Фрагменты текста для поиска задаются в строчках таблицы на этой же панели, кнопки справа от нее служат для добавления и удаления строчек. Отдельный флажок «» под таблицей позволяет искать фрагменты комментария как с учетом, так и без учета регистра символов.
Рис. 231. Окно выделения: вкладка «»
На панели «» можно указать критерии, имеющие отношение к изображению блока:
- «» – будут обработаны только блоки, либо содержащие (выбрано «да»), либо не содержащие (выбрано «нет») векторную картинку. Следует помнить, что картинку могут содержать и блоки, для которых задано программное рисование. Этот критерий имеет отношение именно к наличию картинки, а не к ее использованию в изображении блока.
- «» – будут обработаны только блоки, изображаемые выбранным в выпадающем списке способом:
- «картинка» – внешний вид блока задается векторной картинкой (даже если самой картинки у блока при этом нет);
- «DLL» – внешний вид блока рисуется программно его функцией модели;
- «прямоуг.» – блок изображается прямоугольником с текстом.
На панели «» можно разрешить обработку либо только блоков, к которым не подключено ни одной связи (вариант «неподключенные блоки» в выпадающем списке), либо только соединенных с чем-то блоков (вариант «блоки с подключенными связями»). Это может оказаться полезным для выявления уже не используемых блоков. Разумеется, при этом нужно учитывать, что не все не подключенные блоки бесполезны: некоторые из них, например, блок-планировщик, обмениваются данными с другими блоками через динамические переменные или каким-либо другим образом.
На панели «» можно отобрать блоки по способу запуска их функции модели: каждый такт или по сигналу. Этот критерий более полезен для программистов моделей, чем для пользователей: например, программист, переписав модель блока для работы с запуском по сигналу, может выделить все блоки со своей моделью и запуском каждый такт, чтобы изменить в них способ запуска на новый.
На панели «» можно задать тип переменной для блоков-внешних входов и выходов: все внешние входы и выходы, тип которых не соотвествует указанному, будут исключены из обработки. Тип переменной задается в отдельном окне нажатием кнопки справа от флажка «».
На панели «» можно задать значения дополнительных параметров для связей, которые должны быть включены в обработку. Если у связи вообще не будет параметра с указанным именем, или если значение параметра будет отличаться от введенного, связь будет исключена. В выпадающем списке можно выбрать два варианта проверки: «все значения» (все указанные параметры должны иметь указанные значения) или «одно из значений» (для включения связи в обработку достаточно, чтобы значение хотя бы одного из указанных параметров совпало с заданным). Флажок «» позволяет вводить в значениях параметров метасимволы «*», заменяющий произвольное число символов, и «?», заменяющий один символ (точно так же в ОС задают шаблоны имен файлов). Ниже располагается список параметров и их значений вида «имя = значение», элементы которого можно добавлять и удалять кнопками справа.
На вкладке «» окна выделения можно отобрать блоки и связи с какими-либо ошибками (рис. 232). Она содержит две панели: одну – для блоков, другую – для связей. Если установить на панели «» флажок «», то, среди блоков, удовлетворяющих всем остальным критериям в окне выделения, будут отобраны только те, состояние которых соответствует хотя бы одному из установленных дополнительных флажков:
Рис. 232. Окно выделения: вкладка «»
- «» – будут обработаны блоки, функция модели которых отказывается работать из-за того, что структура статических переменных блока не удовлетворяет ее требованиям (как правило, такая ситуация возникает в тех случаях, когда пользователь по ошибке изменяет структуру переменных библиотечного блока);
- «» – будут обработаны блоки, у которых имя функции модели, заданное в окне параметров, не найдено среди экспортированных функций заданного там же файла DLL (чаще всего это свидетельствует либо об ошибке в задании параметров блока, либо о том, что компилятор изменяет имена экспортируемых функций;
- «» – будут обработаны блоки, для которых отсутствует файл DLL, указанный в окне параметров (вероятнее всего, из-за неполного комплекта файлов в установленной версии RDS).
Установив на панели «» одноименный флажок «», можно отобрать связи со следующими ошибками:
- «» – будут обработаны связи, либо соединяющие выход со входами, несовместимыми по типам, либо соединяющие между собой два выхода;
- «» – будут обработаны связи, одна из точек соединения которых ссылается на переменную, отсутствующую в блоке, или на канал, отсутствующий в шине.
Вкладка «» окна выделения (рис. 233) позволяет обработать блоки с теми или иными параметрами подключенного модуля автоматической компиляции моделей (см. также главу 3), если установить на ней флажок «». При этом можно выбрать либо вообще все блоки с подключенным модулем автокомпиляции (дополнительный флажок «»), либо отобрать их по модулю, по имени модели или и по тому, и по другому параметру.
Рис. 233. Окно выделения: вкладка «»
Если установлен дополнительный флажок «», будут обработаны только блоки, к которым подключен модуль, определяемый следующими флажками:
- «» – из выпадающего списка выбирается название модуля автокомпиляции, с которым он зарегистрирован в RDS, при установке этого флажка установка двух следующих невозможна;
- «» – из выпадающего списка выбирается имя файла динамически подключаемой библиотеки, в которой находится нужный модуль (в списке будут присутствовать только файлы библиотек с модулями, используемыми в данной схеме);
- «» – из выпадающего списка выбирается экспортированное имя функции нужного модуля автокомпиляции (в списке будут присутствовать только имена функций модулей, используемых в данной схеме).
Если установлен дополнительный флажок «», будут обработаны только блоки с указанным именем модели. Имя модели выбирается из выпадающего списка, в котором будут присутствовать только используемые в схеме модели, или вводится вручную. Если установить флажок «» справа от списка, то во вводимом имени модели можно будет использовать стандартные метасимволы «∗» и «?».
Если для схемы заданы какие-либо классы объектов, в окне выделения по заданному критерию будет присутствовать вкладка «» (рис. 234), которая позволяет обработать блоки, связи и шины по признаку принадлежности к заданным классам. При отсутствии в схеме классов эта вкладка не отображается.
Рис. 234. Окно выделения: вкладка «»
Чтобы обработать объекты подсистемы (блоки, связи и шины) по признаку принадлежности к классам, необходимо установить флажок «», выбрать в выпадающем списке справа от него один из вариантов обработки и расставить флажки возле названий требуемых классов в списке, занимающем большую часть вкладки. Возможны следующие варианты обработки:
- «в точности к указанным классам» – будут обработаны только объекты, принадлежность к классам которых в точности совпадает с заданной на вкладке (объекты должны принадлежать ко всем классам с установленными флажками и не принадлежать к классам, флажки для которых не установлены);
- «к любому из указанных классов» – для обработки объекта достаточно, чтобы он принадлежал хотя бы к одному из классов, отмеченных в списке флажками;
- «ко всем указанным классам» – для обработки объекта необходимо, чтобы он одновременно принадлежал ко всем классам, отмеченным в списке флажками.
Кнопки «» и «» внизу вкладки устанавливают и сбрасывают все флажки классов соответственно.
В левой нижней части окна находятся кнопки «», «» и «». Кнопки «» и «» открывают диалоги сохранения и загрузки файла и позволяют записать выбранные в окне критерии в файл для повторного использования в будущем, или загрузить их из этого файла. По умолчанию такому файлу дается расширение «.sel», но в момент сохранения ему можно дать любое расширение по желанию пользователя. Такие сохраненные файлы критериев используются при пакетной обработке. Кнопка «» сбрасывает все флажки в окне. При закрытии окна выделения и повторном его открытии флажки автоматически не сбрасываются (это позволяет быстро поправить критерии, если они были заданы с ошибкой), поэтому для возврата всех флажков в исходное состояние предусмотрена специальная кнопка.
Нажатие кнопки «» в правой нижней части окна закроет его без выполнения каких-либо действий по выделению блоков и связей (при этом, как было указано выше, заданные в окне критерии не сбросятся, и при повторном открытии окна выделения можно будет продолжать работать с ними). Нажатии кнопки «» выполнит в текущей подсистеме выделение по указанным критериям, при этом, если ни один блок, связь или шина не будут удовлетворять этим критериям, RDS сообщит об этом пользователю.
Следует помнить, что выделение по заданным критериям выделяет блоки, связи и шины только в одной, текущей, подсистеме. Если требуется найти похожие блоки в разных подсистемах схемы, следует использовать функцию поиска.