Настройте шаг C и инициализируйте функциональные интерфейсы программно

Чтобы сконфигурировать инициализируют и продвигаются интерфейсы функции точки входа для основанной на уровне модели программно, используют эти функции.

ФункцияОписание
addArgConfДобавьте конфигурационную информацию аргумента ступенчатой функции для порта модели Simulink® к прототипу функции C модели специфичному
attachToModelПрисоедините прототипа функции C модели специфичного к загруженной основанной на ERT модели Simulink
getArgCategoryПолучите категорию аргумента ступенчатой функции для порта модели Simulink от прототипа функции C модели специфичного
getArgNameПолучите имя аргумента ступенчатой функции порта модели Simulink от прототипа функции C модели специфичного
getArgPositionПолучите положение аргумента ступенчатой функции для порта модели Simulink от прототипа функции C модели специфичного
getArgQualifierПолучите спецификатор типа аргумента ступенчатой функции для порта модели Simulink от прототипа функции C модели специфичного
getDefaultConfПолучите конфигурационную информацию по умолчанию для прототипа функции C модели специфичного от модели Simulink, до которой это присоединяется
getFunctionNameПолучите имя функции от прототипа функции C модели специфичного
getNumArgsПолучите количество аргументов ступенчатой функции от прототипа функции C модели специфичного
getPreviewПолучите предварительные просмотры прототипа функции кода C модели специфичные
RTW.configSubsystemBuildОткройте пользовательский интерфейс, чтобы сконфигурировать интерфейс прототипа функции или класса C++ C для сборки щелчка правой кнопкой заданной подсистемы
RTW.getFunctionSpecificationПолучите указатель на объект прототипа функции C модели специфичный
setArgCategoryУстановите категорию аргумента ступенчатой функции для порта модели Simulink в прототипе функции C модели специфичном
setArgNameУстановите имя аргумента ступенчатой функции порта модели Simulink в прототипе функции C модели специфичном
setArgPositionУстановите положение аргумента ступенчатой функции для порта модели Simulink в прототипе функции C модели специфичном
setArgQualifierУстановите спецификатор типа аргумента ступенчатой функции для порта модели Simulink в прототипе функции C модели специфичном
setFunctionNameИмя функции множества в прототипе функции C модели специфичном

Типичное использование этих функций включает:

  • Создайте функциональный интерфейс.

  • Измените существующий функциональный интерфейс.

  • Создайте функциональный интерфейс, начиная с конфигурационной информации по умолчанию из модели.

  • Сбросьте функциональный интерфейс модели к настройке функции ERT по умолчанию.

Интерфейс Создания функции

  1. Создайте интерфейс функции C модели специфичный с obj = RTW.ModelSpecificCPrototype, где obj возвращает указатель на новый, пустой функциональный интерфейс.

  2. Добавьте конфигурационную информацию аргумента для своих портов модели при помощи addArgConf.

  3. Присоедините функциональный интерфейс к своей загруженной основанной на ERT модели при помощи attachToModel.

  4. Сохраните свою модель.

  5. Сгенерируйте код при помощи rtwbuild функция.

Измените существующий функциональный интерфейс

  1. Получите указатель на существующий интерфейс функции C модели специфичный, который присоединен к вашей загруженной основанной на ERT модели с obj = RTW.getFunctionSpecification(modelName). modelName вектор символов, задающий имя загруженной основанной на ERT модели. obj возвращает указатель на функциональный интерфейс, присоединенный к заданной модели.

    Можно использовать другие функции на возвращенном указателе только если тест isa(obj,'RTW.ModelSpecificCPrototype') возвращается 1. Если модель не имеет функциональной интерфейсной настройки, функция возвращает []. Если функция возвращает указатель на объект типа RTW.FcnDefault, вы не можете изменить существующий функциональный интерфейс.

  2. Используйте Get и Set функции, чтобы протестировать и сбросить такие элементы как имена функций, имена аргумента, положения аргумента, категории аргумента и спецификаторы типа аргумента.

  3. Сохраните свою модель.

  4. Сгенерируйте код при помощи rtwbuild функция.

Интерфейс Создания функции начиная с настройки по умолчанию из модели

  1. Создайте интерфейс функции C модели специфичный при помощи obj = RTW.ModelSpecificCPrototype, где obj возвращает указатель на новый, пустой функциональный интерфейс.

  2. Присоедините функциональный интерфейс к своей загруженной основанной на ERT модели при помощи attachToModel.

  3. Получите конфигурационную информацию по умолчанию из своей модели при помощи getDefaultConf.

  4. Используйте Get и Set функции, чтобы протестировать и сбросить такие элементы как имена функций, имена аргумента, положения аргумента, категории аргумента и спецификаторы типа аргумента.

  5. Сохраните свою модель.

  6. Сгенерируйте код при помощи rtwbuild функция.

Сбросьте функциональный интерфейс модели, чтобы принять значение по умолчанию настройка функции ERT

Создайте объект функционального интерфейса по умолчанию ERT. Сбросьте функциональный интерфейс модели и отмените пользовательские настройки путем вызова RTW.FcnDefault метод, attachToModel:

obj = RTW.FcnDefault;
obj.attachToModel(model);
model должна быть загруженная основанная на ERT модель.

Не используйте тот же объект интерфейса функции C модели специфичный через многоуровневые модели. Если вы делаете, изменения, которые вы вносите в шаг и инициализируете функции в одной модели, распространены к другим моделям, который обычно является не, что вы хотите.

Демонстрационный скрипт для конфигурирования функциональных интерфейсов

Этот пример скрипт MATLAB® конфигурирует функциональные интерфейсы модели, например, модель rtwdemo_counter.

%% Open the rtwdemo_counter model
rtwdemo_counter

%% Select ert.tlc as the System Target File for the model
set_param(gcs,'SystemTargetFile','ert.tlc')

%% Create a model-specific C function prototype
a=RTW.ModelSpecificCPrototype

%% Add argument configuration information for Input and Output ports
addArgConf(a,'Input','Pointer','inputArg','const *')
addArgConf(a,'Output','Pointer','outputArg','none')

%% Attach the model-specific C function prototype to the model
attachToModel(a,gcs)

%% Rename the initialization function
setFunctionName(a,'InitFunction','init')

%% Rename the step function and change some argument attributes
setFunctionName(a,'StepFunction','step')
setArgPosition(a,'Output',1)
setArgCategory(a,'Input','Value')
setArgName(a,'Input','InputArg')
setArgQualifier(a,'Input','none')

%% Generate code and build
rtwbuild(gcs)

Похожие темы