Задать заданные параметры для ввода функции в таблицу замены кода
В этом примере показано, как использовать setTflCFunctionEntryParameters для установки указанных параметров для записи функции замены кода для sqrt.
fcn_entry = RTW.TflCFunctionEntry; fcn_entry.setTflCFunctionEntryParameters( ... 'Key', 'sqrt', ... 'Priority', 100, ... 'ImplementationName', 'sqrt', ... 'ImplementationHeaderFile', '<math.h>' );
hEntry - Обработка записи функции замены кода hEntry является дескриптором записи функции замены кода, ранее возвращенной или hEntry = RTW.TflCFunctionEntry, где hEntry = MyCustomFunctionEntry является классом, производным от MyCustomFunctionEntryRTW.TflCFunctionEntry.
Пример: fcn_entry
varargin - Пары «имя-значение» аргументов для ввода функцииПример: 'Key','sqrt'
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Key','sqrt''AcceptExprInput' - Определяет, принимает ли функция реализации входы выраженийtrue | false AcceptExprInput значение помечает генератор кода, что функция реализации, описанная этой записью, принимает входные выражения. Значение по умолчанию: true если ImplType равняется FCN_IMPL_FUNCT и false если ImplType равняется FCN_IMPL_MACRO.
Если значение равно true, входы выражений интегрированы в сгенерированный код в форме, аналогичной этой форме:
rtY.Out1 = mySin(rtU.In1 + rtU.In2);
Если значение равно false, создается временная переменная для ввода выражения:
real_T rtb_Sum; rtb_Sum = rtU.In1 + rtU.In2; rtY.Out1 = mySin(rtb_Sum);
Пример: 'AcceptExprInput',true
'AdditionalHeaderFiles' - Указывает дополнительные файлы заголовка для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalHeaderFiles значение указывает дополнительные файлы заголовка для записи таблицы замены кода. Векторы могут включать в себя маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB ® или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'AdditionalHeaderFiles',{}
'AdditionalIncludePaths' - Указывает дополнительные пути включения для записи таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalIncludePaths значение указывает полный путь дополнительных путей включения для записи замены кода. Векторы символов или строковый массив могут содержать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'AdditionalIncludePaths',{}
'AdditionalLinkObjs' - Указывает дополнительные объекты связи для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalLinkObjs значение определяет дополнительные объекты связи для записи таблицы замены кода. Векторы символов или строковый массив могут содержать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'AdditionalLinkObjs',{}
'AdditionalLinkObjsPaths' - Указание дополнительных путей к объектам связи для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalLinkObjsPaths значение указывает полный путь дополнительных путей объекта ссылки для записи замены кода. Векторы символов или строковый массив могут содержать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа. Значение по умолчанию: {}.
Пример: 'AdditionalLinkObjsPaths',{}
'AdditionalSourceFiles' - Указывает дополнительные исходные файлы для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalSourceFiles значение указывает дополнительные исходные файлы для записи таблицы замены кода. Векторы символов или строковый массив могут содержать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'AdditionalSourceFiles',{}
'AdditionalSourcePaths' - Указывает дополнительные исходные пути для записи таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalSourcePaths значение указывает полный путь дополнительных исходных путей для записи замены кода. Векторы символов или строковый массив могут содержать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'AdditionalSourcePaths',{}
'AdditionalCompileFlags' - Указывает дополнительные флаги компилятора для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalCompileFlags значение указывает дополнительные флаги, необходимые для компиляции исходных файлов, определенных для записи таблицы замены кода. Значение по умолчанию: {}.
Пример: 'AdditionalCompileFlags',{}
'AdditionalLinkFlags' - Указывает дополнительные флаги компоновщика для ввода таблицы{} (по умолчанию) | массив символьных векторов | строковый массив AdditionalLinkFlags значение указывает дополнительные флаги, необходимые для связывания скомпилированных файлов для записи таблицы замены кода.
Пример: 'AdditionalLinkFlags',{}
'ArrayLayout' - Указывает макет хранилища массива для ввода таблицы'COLUMN_MAJOR' (по умолчанию) | 'ROW_MAJOR' | 'COLUMN_AND_ROW' ArrayLayout значение указывает порядок элементов массива в памяти, поддерживаемый реализацией замены. По умолчанию реализация замены поддерживает компоновку основных данных столбца. Для ROW-MAJOR, реализация замены поддерживает компоновку основных данных строк. Для COLUMN_AND_ROW, реализация замены поддерживает макеты данных «основной столбец» и «основная строка».
Пример: 'ArrayLayout','ROW_MAJOR'
'EntryInfoAlgorithm' - задает метод вычисления или аппроксимации, соответствующий записи таблицы.'RTW_DEFAULT' | 'RTW_NEWTON_RAPHSON' | 'RTW_CORDIC' | 'RTW_UNSPECIFIED' EntryInfoAlgorithm значение определяет метод вычисления или аппроксимации, настроенный для указанной математической функции, который должен быть сопоставлен, чтобы произошла замена функции. Библиотеки замены кода поддерживают замену функций на основе метода вычисления или аппроксимации для математических функций rSqrt, sin, cos, и sincos. Допустимые аргументы для каждой поддерживаемой функции перечислены в таблице.
| Функция | Аргумент | Значение |
|---|---|---|
|
|
|
Сопоставьте метод вычисления по умолчанию, |
|
|
Сопоставить | |
|
|
Сопоставление метода вычисления | |
|
|
|
Сопоставить |
|
|
Сопоставьте метод аппроксимации по умолчанию, | |
|
|
Сопоставление метода аппроксимации |
Пример: 'EntryInfoAlgorithm','RTW_DEFAULT'
'GenCallback' - Указывает обратный вызов, следующий за созданием кода'' (по умолчанию) | 'RTW.copyFileToBuildDir' GenCallback задает обратный вызов, следующий за генерацией кода. При указании 'RTW.copyFileToBuildDir', и если эта запись функции сопоставлена и используется, генератор кода вызывает функцию RTW.copyFileToBuildDir после генерации кода. Эта функция обратного вызова копирует дополнительные файлы заголовка, источника или объекта, указанные для этой записи функции, в папку построения.
Пример: 'GenCallback',''
'ImplementationHeaderFile' - указывает имя файла заголовка, объявляющего функцию реализации;'' (по умолчанию) | символьный вектор | строковый скаляр ImplementationHeaderFile значение указывает имя файла заголовка, который объявляет функцию реализации, например, '<math.h>'. Вектор символов или строковый скаляр может включать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'ImplementationHeaderFile',''
'ImplementationHeaderPath' - Указывает путь к файлу заголовка реализации'' (по умолчанию) | символьный вектор | строковый скаляр ImplementationHeaderPath значение указывает полный путь к файлу заголовка реализации. Вектор символов или строковый скаляр может включать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'ImplementationHeaderPath',''
'ImplementationName' - Указывает имя функции реализации'' (по умолчанию) | символьный вектор | строковый скаляр ImplementationName значение указывает имя функции реализации, например, 'sqrt', которые могут совпадать или отличаться от Key имя.
Пример: 'ImplementationName',''
'ImplementationSourceFile' - Указывает имя исходного файла реализации'' (по умолчанию) | символьный вектор | строковый скаляр ImplementationSourceFile значение указывает имя исходного файла реализации. Вектор символов или строковый скаляр может включать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'ImplementationSourceFile',''
'ImplementationSourcePath' - Указывает путь к исходному файлу реализации'' (по умолчанию) | символьный вектор | строковый скаляр ImplementationSourcePath значение указывает полный путь к исходному файлу реализации. Вектор символов или строковый скаляр может включать маркеры. Например, в маркере $mytoken$, mytoken - переменная, определяемая как вектор символа или скаляр строки в рабочей области MATLAB или как функция MATLAB в пути поиска, которая возвращает вектор символа.
Пример: 'ImplementationSourcePath',''
'ImplType' - Указывает тип записи'FCN_IMPL_FUNCT' (по умолчанию) | 'FCN_IMPL_MACRO'Использовать FCN_IMPL_FUNCT для функции или FCN_IMPL_MACRO для макроса.
Пример: 'ImplType','FCN_IMPL_FUNCT'
'Key' - Указывает имя заменяемой функцииЗначение Key указывает имя заменяемой функции. Имя должно совпадать с именем функции, перечисленным в разделе Код, который можно заменить из кода MATLAB или Код, который можно заменить из моделей Simulink.
Пример: 'Key','sqrt'
'Priority' - Указывает приоритет поиска для записи функции100 (по умолчанию) | целое число 0.. 100 Priority значение определяет приоритет поиска для записи функции относительно других записей с тем же именем функции и списком концептуальных аргументов в этой таблице. Наивысший приоритет равен 0, а наименьший приоритет равен 100. Если таблица предоставляет две реализации для функции, реализация с более высоким приоритетом затеняет реализацию с более низким приоритетом.
Пример: 'Priority',100
'RoundingModes' - Определение режимов округления, поддерживаемых функцией реализации'RTW_ROUND_UNSPECIFIED' (по умолчанию) | 'RTW_ROUND_FLOOR' | 'RTW_ROUND_CEILING' | 'RTW_ROUND_ZERO' | 'RTW_ROUND_NEAREST' | 'RTW_ROUND_NEAREST_ML' | 'RTW_ROUND_SIMPLEST' | 'RTW_ROUND_CONV' | массив векторов символов | строковый массив RoundingModes значение определяет один или несколько режимов округления, поддерживаемых функцией реализации.
Пример: 'RoundingModes',{'RTW_ROUND_UNSPECIFIED'}
'SaturationMode' - Определение режима насыщения, поддерживаемого функцией реализации'RTW_SATURATE_UNSPECIFIED' (по умолчанию) | 'RTW_SATURATE_ON_OVERFLOW' | 'RTW_WRAP_ON_OVERFLOW' SaturationMode значение указывает режим насыщения, поддерживаемый функцией реализации.
Пример: 'SaturationMode','RTW_SATURATE_UNSPECIFIED'
'SideEffects' - Определяет необходимость оптимизации функции реализации.false (по умолчанию) | true SideEffects значение помечает генератор кода, чтобы не оптимизировать функцию реализации, описанную в этой записи. Этот параметр применяется к функциям реализации, которые возвращают void но не должны быть оптимизированы, такие как memcpy реализация или функция реализации, которая обращается к значениям глобальной памяти. Только для этих функций внедрения необходимо включить этот параметр и указать значение. true.
Пример: 'SideEffects',false
'StoreFcnReturnInLocalVar' - Указывает, следует ли сохранять функцию реализации независимо от параметров сворачивания выраженийfalse (по умолчанию) | true StoreFcnReturnInLocalVar значение помечает генератор кода, что возвращаемое значение функции реализации, описанной в этой записи, должно храниться в локальной переменной независимо от других настроек сворачивания выражения. Если значение равно false, другие параметры сворачивания выражений определяют, является ли возвращаемое значение свернутым. Сохранение возвращаемых функций в локальной переменной может повысить четкость генерируемого кода. В этом примере показан код, созданный при сворачивании выражения:
void sw_step(void)
{
if (ssub(sadd(sw_U.In1, sw_U.In2), sw_U.In3) <=
smul(ssub(sw_U.In4, sw_U.In5),sw_U.In6)) {
sw_Y.Out1 = sw_U.In7;
} else {
sw_Y.Out1 = sw_U.In8;
}
}С StoreFcnReturnInLocalVar установить в значение trueсгенерированный код потенциально легче понять и отладить:
void sw_step(void)
{
real32_T rtb_Switch;
real32_T hoistedExpr;
......
rtb_Switch = sadd(sw_U.In1, sw_U.In2);
rtb_Switch = ssub(rtb_Switch, sw_U.In3);
hoistedExpr = ssub(sw_U.In4, sw_U.In5);
hoistedExpr = smul(hoistedExpr, sw_U.In6);
if (rtb_Switch <= hoistedExpr) {
sw_Y.Out1 = sw_U.In7;
} else {
sw_Y.Out1 = sw_U.In8;
}
}Пример: 'StoreFcnReturnInLocalVar',false
addAdditionalHeaderFile | addAdditionalIncludePath | addAdditionalLinkObj | addAdditionalLinkObjPath | addAdditionalSourceFile | addAdditionalSourcepath
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.