Установите указанные параметры для ввода функции в таблицу замещения кода
В этом примере показано, как использовать 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
- класс, производный от MyCustomFunctionEntry
RTW.TflCFunctionEntry
.
Пример: fcn_entry
varargin
- Пар имя-значение аргументов для ввода функцииПример: 'Key','sqrt'
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Key','sqrt'
'AcceptExprInput'
- Выбирает, принимает ли функция реализации входы выраженияtrue
| false
The 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
(по умолчанию) | true
The SideEffects
значение помечает генератор кода не для того, чтобы оптимизировать функцию реализации, описанную этой записью. Этот параметр применяется к функциям реализации, которые возвращают void
но не должны быть оптимизированы, например, memcpy
реализация или функция реализации, которая обращается к значениям глобальной памяти. Для этих функций реализации необходимо включить этот параметр и задать значение true
.
Пример: 'SideEffects',false
'StoreFcnReturnInLocalVar'
- Определяет, хранить ли функцию реализации независимо от настроек складывания выраженийfalse
(по умолчанию) | true
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.