Установите указанные параметры для ввода функции в таблицу замещения кода
В этом примере показано, как использовать setTflCFunctionEntryParameters функция, чтобы задать заданные параметры для записи функции замены кода для sqrt.
fcn_entry = RTW.TflCFunctionEntry; fcn_entry.setTflCFunctionEntryParameters( ... 'Key', 'sqrt', ... 'Priority', 100, ... 'ImplementationName', 'sqrt', ... 'ImplementationHeaderFile', '<math.h>' );
hEntry - Обработайте запись функции замены кодаThe 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 | falseThe 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' - Задает дополнительные файлы заголовков для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalHeaderFiles значение задает дополнительные файлы заголовков для записи таблицы замещения кода. Векторы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в MATLAB® рабочая область или как функция MATLAB в пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalHeaderFiles',{}
'AdditionalIncludePaths' - Задает дополнительные пути включения для записи таблицы{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalIncludePaths значение задает полный путь к дополнительным путям включения для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'AdditionalIncludePaths',{}
'AdditionalLinkObjs' - Задает дополнительные объекты ссылки для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalLinkObjs значение задает дополнительные объекты ссылки для записи таблицы замещения кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'AdditionalLinkObjs',{}
'AdditionalLinkObjsPaths' - Определение дополнительных путей к объектам ссылки для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalLinkObjsPaths значение задает полный путь к дополнительным ссылкам объекта путям для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов. Значение по умолчанию является {}.
Пример: 'AdditionalLinkObjsPaths',{}
'AdditionalSourceFiles' - Задает дополнительные исходные файлы для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalSourceFiles значение задает дополнительные исходные файлы для записи таблицы замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'AdditionalSourceFiles',{}
'AdditionalSourcePaths' - Задает дополнительные исходные пути для записи таблицы{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalSourcePaths значение задает полный путь к дополнительным исходным путям для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'AdditionalSourcePaths',{}
'AdditionalCompileFlags' - Задает дополнительные флаги компилятора для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalCompileFlags значение задает дополнительные флаги, необходимые для компиляции исходных файлов, определенных для записи таблицы замещения кода. Значение по умолчанию является {}.
Пример: 'AdditionalCompileFlags',{}
'AdditionalLinkFlags' - Задает дополнительные флаги линкера для записи в таблицу{} (по умолчанию) | массив векторов символов | строковые массивыThe AdditionalLinkFlags значение задает дополнительные флаги, необходимые для связи скомпилированных файлов с записью таблицы замещения кода.
Пример: 'AdditionalLinkFlags',{}
'ArrayLayout' - Задает размещение хранилища массивов для записи в таблицу'COLUMN_MAJOR' (по умолчанию) | 'ROW_MAJOR' | 'COLUMN_AND_ROW'The ArrayLayout значение задает порядок элементов массива в памяти, поддерживаемый реализацией замены. По умолчанию реализация замены поддерживает размещение данных основного столбца. Для ROW-MAJOR, реализация замены поддерживает размещение данных основной строки. Для COLUMN_AND_ROW, реализация замены поддерживает размещения данных основной и основной строк.
Пример: 'ArrayLayout','ROW_MAJOR'
'EntryInfoAlgorithm' - Задает метод расчета или приближения, соответствующий записи в таблице'RTW_DEFAULT' | 'RTW_NEWTON_RAPHSON' | 'RTW_CORDIC' | 'RTW_UNSPECIFIED'The EntryInfoAlgorithm значение задает расчет или приближение метод, сконфигурированный для указанной математической функции, который должен совпадать порядок чтобы произошла замена функции. Библиотеки замены кода поддерживают замену функции на основе расчетов или метода приближения для математических функций rSqrt, sin, cos, и sincos. Допустимые аргументы для каждой поддерживаемой функции перечислены в таблице.
| Функция | Аргумент | Значение |
|---|---|---|
|
|
|
Соответствуйте методу расчета по умолчанию, |
|
|
Соответствовать | |
|
|
Соответствовать методу расчета | |
|
|
|
Соответствовать |
|
|
Совпадайте с методом приближения по умолчанию, | |
|
|
Совпадает с методом приближения |
Пример: 'EntryInfoAlgorithm','RTW_DEFAULT'
'GenCallback' - Задает коллбэк, который следует за генерацией кода'' (по умолчанию) | 'RTW.copyFileToBuildDir'The GenCallback задает коллбэк, который следует за генерацией кода. Если вы задаете 'RTW.copyFileToBuildDir'и если эта запись функции совпадает и используется, генератор кода вызывает функцию RTW.copyFileToBuildDir после генерации кода. Эта функция обратного вызова копирует дополнительные файлы заголовка, источника или объекта, которые вы указали для этой записи функции, в папку сборки.
Пример: 'GenCallback',''
'ImplementationHeaderFile' - Задает имя файла заголовка, который объявляет функцию реализации'' (по умолчанию) | символьный вектор | строковый скалярThe ImplementationHeaderFile значение задает имя файла заголовка, который объявляет функцию реализации, например '<math.h>'. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'ImplementationHeaderFile',''
'ImplementationHeaderPath' - Задает путь к файлу заголовка реализации'' (по умолчанию) | символьный вектор | строковый скалярThe ImplementationHeaderPath значение задает полный путь к файлу заголовка реализации. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'ImplementationHeaderPath',''
'ImplementationName' - Задает имя функции реализации'' (по умолчанию) | символьный вектор | строковый скалярThe ImplementationName значение задает имя функции реализации, например 'sqrt', который может соответствовать или отличаться от Key имя.
Пример: 'ImplementationName',''
'ImplementationSourceFile' - Задает имя исходного файла реализации'' (по умолчанию) | символьный вектор | строковый скалярThe ImplementationSourceFile значение задает имя исходного файла реализации. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.
Пример: 'ImplementationSourceFile',''
'ImplementationSourcePath' - Задает путь к исходному файлу реализации'' (по умолчанию) | символьный вектор | строковый скалярThe 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.. 100The 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' | массив векторов символов | строковые массивыThe RoundingModes значение задает один или несколько режимов округления, поддерживаемых функцией реализации.
Пример: 'RoundingModes',{'RTW_ROUND_UNSPECIFIED'}
'SaturationMode' - Определение режима насыщения, поддерживаемого функцией реализации'RTW_SATURATE_UNSPECIFIED' (по умолчанию) | 'RTW_SATURATE_ON_OVERFLOW' | 'RTW_WRAP_ON_OVERFLOW'The SaturationMode значение задает режим насыщения, поддерживаемый функцией реализации.
Пример: 'SaturationMode','RTW_SATURATE_UNSPECIFIED'
'SideEffects' - Определяет, пытаться ли оптимизировать функцию реализацииfalse (по умолчанию) | trueThe SideEffects значение помечает генератор кода не для того, чтобы оптимизировать функцию реализации, описанную этой записью. Этот параметр применяется к функциям реализации, которые возвращают void но не должны быть оптимизированы, например, memcpy реализация или функция реализации, которая обращается к значениям глобальной памяти. Для этих функций реализации необходимо включить этот параметр и задать значение true.
Пример: 'SideEffects',false
'StoreFcnReturnInLocalVar' - Определяет, хранить ли функцию реализации независимо от настроек складывания выраженийfalse (по умолчанию) | trueThe 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.