exponenta event banner

registerCPPFunctionEntry

Создание записи функции C++ на основе заданных параметров и регистрация в таблице замены кода

Описание

пример

entry = registerCPPFunctionEntry(hTable,priority,numInputs,functionName,inputType,implementationName,outputType,headerFile,genCallback,genFileName,nameSpace) обеспечивает быстрый способ создания и регистрации записи функции замены кода C++.

Эта функция может использоваться только в том случае, если запись функции C++ соответствует следующим условиям:

  • Входные аргументы одного типа.

  • Имена входных аргументов и имена возвращаемых аргументов соответствуют соглашению об именовании Simulink ® по умолчанию:

    • Для имен входных аргументов u1, u2, ..., un

    • Для возвращаемого аргумента y1

При регистрации библиотеки замены кода, содержащей записи функций C++, необходимо указать значение {'C++'} для LanguageConstraint свойства записи реестра библиотеки. Дополнительные сведения см. в разделе Регистрация библиотеки замены кода.

Примеры

свернуть все

В этом примере показано, как использовать registerCPPFunctionEntry для создания записи функции C++ для sin в таблице замены кода.

hLib = RTW.TflTable;

hLib.registerCPPFunctionEntry(100, 1, 'sin', 'single', 'sin', ...
                              'single', 'cmath', '', '', 'std');

Входные аргументы

свернуть все

hTable является дескриптором таблицы замены кода, ранее возвращенной hTable = RTW.TflTable.

Пример: hLib

priority определяет приоритет поиска для записи функции относительно других записей с тем же именем функции и списком концептуальных аргументов в этой таблице. Наивысший приоритет равен 0, а наименьший приоритет равен 100. Если таблица предоставляет две реализации для функции, реализация с более высоким приоритетом затеняет реализацию с более низким приоритетом.

Пример: 100

Пример: 1

functionName указывает имя заменяемой функции. Имя должно соответствовать функции, указанной в разделе Код, который можно заменить из кода MATLAB или Код, который можно заменить из моделей Simulink.

Пример: 'sin'

Эта функция требует, чтобы входные аргументы были одного типа.

Пример: 'double'

implementationName указывает имя реализации. Например, если functionName является 'sqrt', implementationName может быть 'sqrt' или другое имя.

Пример: 'sqrt'

Пример: 'double'

Пример: '<math.h>'

genCallback задает обратный вызов, следующий за генерацией кода. При указании 'RTW.copyFileToBuildDir', и если эта запись функции сопоставлена и используется, генератор кода вызывает функцию RTW.copyFileToBuildDir после генерации кода. Эта функция обратного вызова копирует дополнительные файлы заголовка, источника или объекта, указанные для этой записи функции, в папку построения.

Пример: ''

Этот аргумент зарезервирован для разработчиков MathWorks.

Пример: ''

nameSpace указывает пространство имен C++, в котором определена функция реализации. Если эта запись функции соответствует, программное обеспечение выдает пространство имен в сгенерированном коде функции (например, std::sin(tfl_cpp_U.In1)). При указании '', программное обеспечение не выдает обозначение пространства имен в сгенерированном коде.

Пример: 'std'

Выходные аргументы

свернуть все

entry является дескриптором созданной записи функции C++. Указание возвращаемого аргумента в registerCPPFunctionEntry вызов функции необязателен.

Представлен в R2010a