Можно использовать Редактор Шины, чтобы импортировать объекты шины к базовому рабочему пространству и экспортировать объекты шины от базового рабочего пространства, как описано в Объектах Шины Сохранения и Импорта. По умолчанию Редактор Шины может сохранить объекты шины в и импортировать объекты шины из, файл кода MATLAB® или MAT-файл. Файлы должны быть в месте, которое является доступным использованием обычного диалогового окна Open или Save.
Можно записать настроенные функции MATLAB, которые обеспечивают альтернативный импорт или экспорт (или оба) функциональность. Например, можно записать индивидуально настраиваемую функцию, которая хранит объекты как записи в базе данных в формате, который использует организация.
После вас разработка и реализация пользовательский импорт объекта шины или экспорт функций, используйте Simulink® Customization Manager, чтобы зарегистрировать функцию. Процесс регистрации устанавливает пользовательский импорт и экспорты функций как коллбэки для Редактора Шины Импорт в Базовое рабочее пространство и Экспорт в команды Файла. Коллбэки заменяют поддержку по умолчанию Редактора Шины. При настройке Редактора Шины возможности импорта и экспорта не имеют никакого эффекта на другой MATLAB или функции Simulink. Отмена импорта или индивидуальной настройки экспорта восстанавливает Редактор Шины по умолчанию возможности той операции, не влияя на другой.
Чтобы создать объекты шины из внешнего кода С, вы не должны делать индивидуальные настройки. Смотрите Создают Объекты Шины из Внешнего кода С.
Настройка импорта объекта шины или экспорта требует, чтобы вы поняли:
Язык MATLAB и методы программирования
Шина Simulink возражает синтаксису
Собственный формат, в который вы переводите объекты шины и методы, необходимые, чтобы получить доступ к средству, которое хранит объекты.
Любые специфичные для платформы методы для получения данных от пользователя, такие как имя местоположения, в котором можно сохранить или получить доступ к объектам шины.
Пользовательский экспорт функций объекта шины требует по крайней мере одного аргумента. Можно использовать дополнительные аргументы, чтобы обработать специальные действия функцией. Значение первого аргумента является массивом ячеек, содержащим имена всех объектов шины, что Редактор Шины выбрал. Можно использовать функции, глобальные переменные, или любой другой метод MATLAB, чтобы обеспечить значения для любых дополнительных аргументов. Общий алгоритм индивидуально настраиваемого экспорта функций:
Выполните итерации по списку имен объектов в первом аргументе.
Получите объект шины, соответствующий каждому имени.
Переведите объект шины в собственный синтаксис.
Сохраните переведенный объект шины в локальном репозитории.
Этот пример показывает, что синтаксический интерпретатор такой функции обратного вызова экспорта:
function myExportCallBack(selectedBusObjects) disp('Custom export was called!'); for idx = 1:length(selectedBusObjects) disp([selectedBusObjects{idx} ' was selected for export.']); end
Несмотря на то, что эта функция не экспортирует объектов шины, это синтаксически допустимо и может быть указано. Это принимает массив ячеек имен объектов шины, выполняет итерации по ним и распечатывает каждое имя. Операционный экспорт функций:
Использование каждое имя, чтобы получить соответствующую шину возражает от базового рабочего пространства
Преобразовывает объект в собственный формат
Хранит преобразованный объект
Дополнительная логика специфична для предприятия.
Пользовательская функция импорта объекта шины может взять нуль или больше аргументов, чтобы выполнить его задачу. Можно использовать функции, глобальные переменные или любой другой метод MATLAB, чтобы обеспечить значения аргументов. Кроме того, функция может опросить пользователя относительно информации, такой как обозначение того, где получить информацию об объекте шины. Общий алгоритм пользовательской функции импорта объекта шины:
Получите информацию об объекте шины из локального репозитория.
Переведите каждое определение объекта шины в объект Simulink.Bus
.
Сохраните каждый объект шины в базовое рабочее пространство MATLAB.
Этот пример показывает, что синтаксический интерпретатор функции обратного вызова импорта:
function myImportCallBack disp('Custom import was called!');
Несмотря на то, что эта функция не импортирует объектов шины, это синтаксически допустимо и может быть указано с менеджером по Индивидуальной настройке Simulink. Операционная функция импорта:
Получает обозначение того, где получить объекты шины импортировать
Преобразовывает каждый объект шины в объект Simulink.Bus
Хранит объект в базовом рабочем пространстве
Дополнительная логика специфична для предприятия.
Чтобы настроить импорт объекта шины или экспортировать, обеспечьте регистрационную функцию индивидуальной настройки, которая вводит и конфигурирует менеджера по Индивидуальной настройке каждый раз, когда вы запускаете программное обеспечение Simulink или обновляете индивидуальные настройки Simulink. Шаги для использования регистрационной функции индивидуальной настройки:
Создайте файл с именем sl_customization.m
, чтобы содержать регистрационную функцию индивидуальной настройки. Также можно использовать существующий файл настройки.
Наверху файла создайте функцию с именем sl_customization
, который берет отдельный аргумент (или используйте специальную функцию в существующем файле). Когда функция вызывается, значение этого аргумента является менеджером по Индивидуальной настройке.
Сконфигурируйте функцию sl_customization
, чтобы установить importCallbackFcn
и exportCallbackFcn
быть указателями на функцию, которые задают ваш индивидуально настраиваемый импорт объекта шины и экспорты функций.
Если sl_customization.m
является новым файлом настройки, поместите его где угодно на путь поиска файлов MATLAB. Двумя часто используемыми местами является matlabroot
и текущая рабочая папка. Также можно расширить путь поиска файлов.
Вот простой пример регистрационной функции индивидуальной настройки:
function sl_customization(cm) disp('My customization file was loaded.'); cm.BusEditorCustomizer.importCallbackFcn = @myImportCallBack; cm.BusEditorCustomizer.exportCallbackFcn = @(x)myExportCallBack(x);
Когда Simulink запускает, он пересекает путь поиска файлов MATLAB, ища файлы с именем sl_customization.m
. Simulink загружает каждый такой файл, который он находит (не только первый файл) и выполняет функцию sl_customization
в своей верхней части, устанавливая индивидуальные настройки, которые задает функция.
Выполнение специальной функции в качестве примера отображает сообщение (который фактическая функция, вероятно, не была бы). Функция устанавливает, что Редактор Шины использует функцию с именем myImportCallBack()
, чтобы импортировать объекты шины и функцию с именем myExportCallBack(x)
, чтобы экспортировать объекты шины.
Функция, соответствующая указателю, который появляется в регистрации коллбэка, может быть не определена, когда регистрация происходит. Однако это должно быть задано, когда Редактор Шины вызывает функцию. Та же широта и требование применяются к любым функциям, или глобальные переменные раньше обеспечивали значения дополнительных аргументов.
Другие функции могут также существовать в файле sl_customization.m
. Однако программное обеспечение Simulink игнорирует файлы с именем sl_customization.m
, кроме тех случаев, когда это запускает или обновляет индивидуальные настройки. Любые изменения в функциях в файле настройки проигнорированы, пока одно из тех событий не имеет место. В отличие от этого, изменения в других файлах кода MATLAB на пути MATLAB сразу вступают в силу.
Для получения дополнительной информации смотрите Индивидуальные настройки Регистрации.
Можно изменить указатели, установленные в функции sl_customization
:
Изменение функции, чтобы задать измененные указатели
Сохранение функции
Обновляющие индивидуальные настройки путем выполнения sl_refresh_customizations
Simulink пересекает путь MATLAB и перезагружает все файлы sl_customization.m
, которые это находит, выполняя первую функцию в каждом, как это сделало на запуске Simulink.
Можно вернуться к импорту по умолчанию или экспортировать поведение путем установки в функции sl_customization
соответствующего элемента BusEditorCustomizer
к []
и затем обновляющим индивидуальным настройкам. Также можно устранить обе индивидуальных настройки в одной операции путем выполнения:
cm.BusEditorCustomizer.clear
где cm
был ранее установлен в менеджера по индивидуальной настройке объект (см. Индивидуальные настройки Регистра).
Изменения в импорте и самих функциях обратного вызова экспорта, в отличие от изменений в указателях, которые указывают их как индивидуальные настройки, сразу вступают в силу, если они не находятся в самом файле sl_customization.m
. Если функции обратного вызова находятся в файле sl_customization.m
, они вступают в силу в следующий раз, когда вы обновляете индивидуальные настройки. Хранение функций обратного вызова в отдельных файлах обычно обеспечивает более гибкие и модульные результаты.
Simulink.BlockDiagram.addBusToVector
| Simulink.Bus.cellToObject
| Simulink.Bus.createMATLABStruct
| Simulink.Bus.createObject
| Simulink.Bus.objectToCell
| Simulink.Bus.save