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

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

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

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

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

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

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

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

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

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

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

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

  4. Подтвердите функциональный интерфейс при помощи RTW.ModelSpecificCPrototype.runValidation.

  5. Если валидация успешно выполняется, сохраните свою модель. Затем сгенерируйте код при помощи функции rtwbuild.

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

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

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

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

  3. Подтвердите функциональный интерфейс при помощи RTW.ModelSpecificCPrototype.runValidation.

  4. Если валидация успешно выполняется, сохраните свою модель, и затем сгенерируйте код при помощи функции rtwbuild.

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

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

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

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

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

  5. Подтвердите прототипа функции при помощи RTW.ModelSpecificCPrototype.runValidation.

  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')

%% Validate the function prototype against the model
[status,message]=runValidation(a)

%% if validation succeeded, generate code and build
if status
    rtwbuild(gcs)
end

Похожие темы