GetSet
要将生成的代码与使用专门函数读取和写入数据的遗留代码集成,可以使用存储类GetSet
.信号、块参数和使用的状态GetSet
作为访问器函数的调用出现在生成的代码中。您提供函数定义。
您也可以在Embedded Coder中创建自己的存储类®字典通过函数访问数据。在Embedded Coder Dictionary中创建自己的存储类,可以灵活地自定义函数名和返回类型。有关更多信息,请参见使用嵌入式编码器字典中的存储类通过函数访问数据.
通过访问数据来生成符合AUTOSAR标准的代码Rte
函数调用时,使用AUTOSAR代码透视图。看到AUTOSAR组件配置(AUTOSAR Blockset).
得到
而且集
功能这个例子展示了如何通过使用专门的方法生成与遗留代码接口的代码得到
而且集
函数来访问数据。
查看示例遗留头文件ComponentDataHdr.h
.该文件定义了一个大型结构类型ComponentData
.
rtwdemodbtype (“ComponentDataHdr.h”,'/* ComponentData */',“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;
这个领域标量
是否使用该结构类型的子结构ScalarData
.结构类型ScalarData
定义三个标量字段:inSig
,scalarParam
,outSig
.
rtwdemodbtype (“ComponentDataHdr.h”,'/* ScalarData */',“}ScalarData;”, 1, 1)
/* ScalarData */ typedef struct {double insg;双scalarParam;双outSig;} ScalarData;
查看示例遗留源文件getsetSrc.c
.该文件定义并初始化一个全局变量ex_getset_data
它使用结构类型ComponentData
.初始化包含子结构的值标量
.
rtwdemodbtype (“getsetSrc.c”,'/*字段"标量" */','/* "标量"结束*/', 1, 1)
/ *字段“标量”* /{3.9,12.3,0.0},/ * * /“标量”的结束
该文件还定义了读写子结构字段的函数标量
.这些函数通过取消对全局结构变量的叶字段的引用来简化数据访问ex_getset_data
.
rtwdemodbtype (“getsetSrc.c”,...'/*标量get()和set()函数*/','/*标量函数的结束*/', 1, 1)
/*标量get()和set()函数*/ double get_inSig(void) {return ex_getset_data.scala . insig;{ex_getset_data.scalars}无效set_inSig(双值)。insg =价值;} double get_scalarParam(void){返回ex_getset_data.scalars.scalarParam;} void set_scalarParam(double value) {ex_getset_data.scalars. scalars. xmlscalarParam = value;} double get_outSig(void){返回ex_getset_data.scala . outsig;} void set_outSig(double value) {ex_getset_data.scalars. xmloutSig = value;}
查看示例遗留头文件getsetHdrScalar.h
.该文件包含走读生
原型得到
而且集
定义的函数getsetSrc.c
.
打开示例模型rtwdemo_getset_scalar
.模型创建数据对象inSig
,outSig
,scalarParam
在基本工作区中。对象对应于模型中的信号和参数。
open_system (“rtwdemo_getset_scalar”)
在基本工作区中,双击该对象inSig
查看其属性。对象使用存储类GetSet
.的GetFunction
而且SetFunction
属性设置为默认值,get_ $ N
而且set_ $ N
.生成的代码使用中指定的函数名GetFunction
而且SetFunction
读取和写入数据。代码替换令牌$ N
数据对象的名称。例如,对于数据对象inSig
,生成的代码使用对遗留函数的调用get_inSig
而且set_inSig
.
对于数据对象inSig
,HeaderFile
属性设置为getsetHdrScalar.h
.此遗留头文件包含得到
而且集
函数原型。数据对象outSig
而且scalarParam
也可以使用存储类GetSet
头文件getsetHdrScalar.h
.
在“模型配置参数”对话框中,在代码生成>自定义代码窗格中,在其他构建信息中,选择源文件.的源文件框标识源文件getsetSrc.c
用于在构建过程中包含。此遗留源文件包含得到
而且集
函数定义和全局结构变量的定义ex_getset_data
.
使用示例模型生成代码。
slbuild (“rtwdemo_getset_scalar”);
rtwdemo_getset_scalar的构建过程已成功完成构建摘要构建的顶级模型目标:模型动作重建原因====================================================================================================== rtwdemo_getset_scalar生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 34.998秒
在代码生成报告中,查看该文件rtwdemo_getset_scalar.c
.该模型一步
函数使用遗留的得到
而且集
函数来执行算法。生成的代码通过调用自定义的手写代码来访问遗留信号和参数数据得到
而且集
功能。
rtwdemodbtype (fullfile (“rtwdemo_getset_scalar_ert_rtw”,“rtwdemo_getset_scalar.c”),...'/*模型阶跃函数*/',“}”, 1, 1)
/*模型步函数*/ void rtwdemo_getset_scalar_step(void){/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ set_outSig(get_scalarParam() * get_inSig());}
您可以生成调用自定义的代码得到
而且集
函数,只要您编写的函数接受并返回期望的值。对于标量数据,函数必须具有以下特征:
的得到
函数必须返回适当数据类型的单个标量数值,并且不能接受任何参数(无效
).
的集
函数必须不返回任何内容(无效
),并且必须接受适当数据类型的单个标量数值。
GetSet
矢量数据这个例子展示了如何应用存储类GetSet
信号和参数是向量。
查看示例遗留头文件ComponentDataHdr.h
.该文件定义了一个大型结构类型ComponentData
.
rtwdemodbtype (“ComponentDataHdr.h”,'/* ComponentData */',“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;
这个领域向量
是否使用该结构类型的子结构VectorData
.结构类型VectorData
定义三个向量字段:inVector
,vectorParam
,outVector
.每个向量有5个元素。
rtwdemodbtype (“ComponentDataHdr.h”,'/* VectorData */',“}VectorData;”, 1, 1)
/* VectorData */ typedef struct{双vector [5];双vectorParam [5];双outVector [5];} VectorData;
查看示例遗留源文件getsetSrc.c
.该文件定义并初始化一个全局变量ex_getset_data
它使用结构类型ComponentData
.初始化包含子结构的值向量
.
rtwdemodbtype (“getsetSrc.c”,/*字段“向量”*/','/* "向量"结束*/', 1, 1)
/ *字段“向量”* /{{5.7,6.8,1.2,3.5,10.1},{12.3,18.7,21.2,28日,32.9},{0.0,0.0,0.0,0.0,0.0}},/ * * /“向量”的结束
该文件还定义了读写子结构字段的函数向量
.这些函数通过取消对全局结构变量的叶字段的引用来简化数据访问ex_getset_data
.为了访问向量数据,函数接受一个整数索引参数。的得到
函数返回输入下标处的向量值。的集
函数为输入赋值价值
到输入索引。
rtwdemodbtype (“getsetSrc.c”,...'/*向量get()和set()函数*/','/*向量函数结束*/', 1, 1)
/* Vector get()和set()函数*/ double get_inVector(int index) {return ex_getset_data.vectors.inVector[index];} void set_vector (int索引,double值){ex_getset_data.vectors. vector . ex_getset_data.vector .vector . ex_getset_data.vector .vector . ex_getset_data.vector .vector。index = value;} double get_vectorParam(int index){返回ex_getset_data.vectors.vectorParam[index];} void set_vectorParam(int索引,double值){ex_getset_data.vectors. vector . xmlvectorParam[index] = value;} double get_outVector(int index){返回ex_getset_data.vectors.outVector[index];} void set_outVector(int索引,double值){ex_getset_data.vectors. xmloutVector[index] = value;}
查看示例遗留头文件getsetHdrVector.h
.该文件包含走读生
原型得到
而且集
定义的函数getsetSrc.c
.
打开示例模型rtwdemo_getset_vector
.模型创建数据对象inVector
,outVector
,vectorParam
在基本工作区中。对象对应于模型中的信号和参数。
open_system (“rtwdemo_getset_vector”)
在基本工作区中,双击该对象inVector
查看其属性。对象使用存储类GetSet
.房地产HeaderFile
指定为getsetHdrVector.h
.此遗留头文件包含得到
而且集
函数原型。
在“配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c
在构建过程中被标识为包含。此遗留源文件包含得到
而且集
函数定义和全局结构变量的定义ex_getset_data
.
使用示例模型生成代码。
slbuild (“rtwdemo_getset_vector”);
###开始构建过程:rtwdemo_getset_vector成功完成构建过程:rtwdemo_getset_vector构建摘要顶级模型目标构建:模型动作重建原因====================================================================================================== rtwdemo_getset_vector生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 34.459s
在代码生成报告中,查看该文件rtwdemo_getset_vector.c
.该模型一步
函数使用遗留的得到
而且集
函数来执行算法。
rtwdemodbtype (fullfile (“rtwdemo_getset_vector_ert_rtw”,“rtwdemo_getset_vector.c”),...'/*模型阶跃函数*/',“}”, 1, 1)
/*模型步长函数*/ void rtwdemo_getset_vector_step(void) {int32_T i;For (i = 0;I < 5;i++){/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ set_outVector(i, get_vectorParam(i) * get_inVector(i));}
当您使用存储类时GetSet
对于向量数据,得到
而且集
您提供的函数必须接受索引输入。的得到
函数必须返回向量的单个元素。的集
函数必须写入向量的单个元素。
GetSet
使用结构化数据这个例子展示了如何应用存储类GetSet
模型中的非虚拟总线信号和结构参数。
查看示例遗留头文件ComponentDataHdr.h
.该文件定义了一个大型结构类型ComponentData
.
rtwdemodbtype (“ComponentDataHdr.h”,...'/* ComponentData */',“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;
这个领域结构体
是否使用该结构类型的子结构StructData
.结构类型StructData
定义三个字段:指导
,structParam
,outStruct
.
rtwdemodbtype (“ComponentDataHdr.h”,/* StructData */',“}StructData;”, 1, 1)
/* StructData */ typedef struct {SigBus指令;ParamBus structParam;rt_signal_lease outStruct;} StructData;
的字段指导
,structParam
,outStruct
子结构是否也使用结构类型rt_signal_lease
而且ParamBus
.这两种结构类型都定义了三个标量字段。
rtwdemodbtype (“ComponentDataHdr.h”,'/* SigBus */','} ParamBus ', 1, 1)
/* SigBus */ typedef struct {double cmd;双sensor1;双sensor2;} rt_signal_lease;/* ParamBus */ typedef struct {double offset;双gain1;双gain2;} ParamBus;
查看示例遗留源文件getsetSrc.c
.该文件定义并初始化一个全局变量ex_getset_data
它使用结构类型ComponentData
.初始化包含子结构的值结构体
.
rtwdemodbtype (“getsetSrc.c”,...'/*字段"structs" */','/* "structs"结束*/', 1, 1)
/ *字段“结构”* /{{1.3,5.7,9.2},{12.3,9.6,1.76},{0.0,0.0,0.0}},/ * "结构" * /结束
该文件还定义了读写子结构字段的函数结构体
.这些函数通过取消对全局结构变量字段的引用来简化数据访问ex_getset_data
.函数访问字段中的数据指导
,structParam
,outStruct
通过接受并返回类型的完整结构rt_signal_lease
而且ParamBus
.
rtwdemodbtype (“getsetSrc.c”,...'/*构造get()和set()函数*/',...'/*结构函数结束*/', 1, 1)
/*结构get()和set()函数*/ SigBus get_directive (void){返回ex_getset_data.structs. directive;{ex_getset_data.structs}无效set_inStruct (rt_signal_lease值)。指令=值;} ParamBus get_structParam(void){返回ex_getset_data.structs.structParam;{ex_getset_data.structs}无效set_structParam (ParamBus值)。structParam = value;} SigBus get_outStruct(void){返回ex_getset_data.structs.outStruct;{ex_getset_data.structs}无效set_outStruct (rt_signal_lease值)。outStruct = value;}
查看示例遗留头文件getsetHdrStruct.h
.该文件包含走读生
原型得到
而且集
定义的函数getsetSrc.c
.
打开示例模型rtwdemo_getset_struct
.模型创建数据对象指导
,structParam
,outStruct
在基本工作区中。对象对应于模型中的信号和参数。
open_system (“rtwdemo_getset_struct”)
在基本工作区中,双击该对象指导
查看其属性。对象使用存储类GetSet
.房地产HeaderFile
指定为getsetHdrStruct.h
.此遗留头文件包含得到
而且集
函数原型。
该模型还创建了总线对象ParamBus
而且rt_signal_lease
在基本工作区中。模型中的信号和参数使用这些对象定义的总线类型。房地产DataScope
每个总线对象的进口
.房地产HeaderFile
设置为ComponentDataHdr.h
.生成的代码从遗留头文件导入这些结构类型ComponentDataHdr.h
.
在“模型配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c
在构建过程中被标识为包含。此遗留源文件包含得到
而且集
函数定义和全局结构变量的定义ex_getset_data
.
使用示例模型生成代码。
slbuild (“rtwdemo_getset_struct”);
rtwdemo_getset_struct的构建过程成功完成:rtwdemo_getset_struct构建摘要构建的顶级模型目标:模型动作重建原因====================================================================================================== rtwdemo_getset_struct生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建时间:0h 0m 16.575s
在代码生成报告中,查看该文件rtwdemo_getset_struct.c
.该模型一步
函数使用遗留的得到
而且集
函数来执行算法。
rtwdemodbtype (fullfile (“rtwdemo_getset_struct_ert_rtw”,...“rtwdemo_getset_struct.c”),...'/*模型阶跃函数*/',“}”, 1, 1)
/*模型步函数*/ void rtwdemo_getset_struct_step(void){/*偏差:'<根>/偏差'合并:*输入:'<根>/In1' */ rtdww . buscreator .cmd = (get_instruction()))。cmd + (get_structParam()).offset;/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ rtdww . buscreator。sensor1 = (get_structParam())。gain1 * (get_instruction ()).sensor1;/*增益:'<根>/Gain1'合并:*输入:'<根>/In1' */ rtdww . buscreator。sensor2 = (get_structParam())。gain2 * (get_instruction ()).sensor2;/* SignalConversion: '<根>/信号转换' */ set_outStruct(rtdww . buscreator);}
当您使用存储类时GetSet
对于结构化数据,可以使用得到
而且集
您提供的函数必须返回并接受完整的结构。所生成的代码对结构的各个字段进行解引用得到
函数返回。
总线创建器块的输出信号是一个测试点。这个信号是信号转换块的输入。测试点和Signal Conversion块存在,因此生成的代码为总线创建器块的输出定义了一个变量。为函数提供完整的结构参数set_outStruct
,则必须配置模型以创建此变量。
GetSet
矩阵数据这个例子展示了如何应用存储类GetSet
信号和参数是矩阵。
查看示例遗留头文件ComponentDataHdr.h
.该文件定义了一个大型结构类型ComponentData
.
rtwdemodbtype (“ComponentDataHdr.h”,...'/* ComponentData */',“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;
这个领域矩阵
是否使用该结构类型的子结构MatricesData
.结构类型MatricesData
定义三个字段:matrixInput
,matrixParam
,matrixOutput
.字段以串行数组的形式存储矩阵数据。在本例中,输入和参数字段各有15个元素。输出字段有9个元素。
rtwdemodbtype (“ComponentDataHdr.h”...,'/* MatricesData */',“}MatricesData;”, 1, 1)
/* MatricesData */ typedef struct {double matrixInput[15];双matrixParam [15];双matrixOutput [9];} MatricesData;
查看示例遗留源文件getsetSrc.c
.该文件定义并初始化一个全局变量ex_getset_data
它使用结构类型ComponentData
.初始化包含子结构的值矩阵
.
rtwdemodbtype (“getsetSrc.c”,.../*字段“矩阵”*/,/*“矩阵”的结尾*/', 1, 1)
/ *字段“矩阵”* /{{12.0,13.9,7.4,0.5,11.8,6.4,4.7,5.3,13.0,0.7,16.1,13.5,1.6,0.5,3.1},{8.3,12.0,11.5,2.0,5.7,7.5,12.8,11.1,8.4,9.9,10.9,4.6,2.7,16.3,3.8},{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}}/ * * /“矩阵”的结束
输入矩阵有五行三列。矩阵参数有三行五列。矩阵输出有三行三列。该文件定义了指示这些维度的宏。
rtwdemodbtype (“getsetSrc.c”,...'/*矩阵维度*/','/*矩阵维数结束*/', 1, 1)
/*矩阵维数*/ #定义矩阵维数5 #定义矩阵维数3 #定义矩阵维数5 #定义矩阵维数5 #定义矩阵维数
该文件还定义了读写子结构字段的函数矩阵
.
rtwdemodbtype (“getsetSrc.c”,...'/*矩阵get()和set()函数*/','/*矩阵函数结束*/', 1, 1)
/*矩阵get()和set()函数*/ double get_matrixInput(int colIndex) {int rowIndexGetInput = MATRIXINPUT_NCOLS * (colIndex % MATRIXINPUT_NROWS) + colIndex/MATRIXINPUT_NROWS;返回ex_getset_data.matrices.matrixInput [rowIndexGetInput];} void set_matrixInput(int colIndex, double value) {int rowIndexSetInput = MATRIXINPUT_NCOLS * (colIndex % MATRIXINPUT_NROWS) + colIndex/MATRIXINPUT_NROWS;ex_getset_data.matrices。matrixInput[rowIndexSetInput] = value; } double get_matrixParam(int colIndex) { int rowIndexGetParam = MATRIXPARAM_NCOLS * (colIndex % MATRIXPARAM_NROWS) + colIndex/MATRIXPARAM_NROWS; return ex_getset_data.matrices.matrixParam[rowIndexGetParam]; } void set_matrixParam(int colIndex, double value) { int rowIndexSetParam = MATRIXPARAM_NCOLS * (colIndex % MATRIXPARAM_NROWS) + colIndex/MATRIXPARAM_NROWS; ex_getset_data.matrices.matrixParam[rowIndexSetParam] = value; } double get_matrixOutput(int colIndex) { int rowIndexGetOut = MATRIXOUTPUT_NCOLS * (colIndex % MATRIXOUTPUT_NROWS) + colIndex/MATRIXOUTPUT_NROWS; return ex_getset_data.matrices.matrixOutput[rowIndexGetOut]; } void set_matrixOutput(int colIndex, double value) { int rowIndexSetOut = MATRIXOUTPUT_NCOLS * (colIndex % MATRIXOUTPUT_NROWS) + colIndex/MATRIXOUTPUT_NROWS; ex_getset_data.matrices.matrixOutput[rowIndexSetOut] = value; }
从模型生成的代码将矩阵表示为串行数组。因此,每一个得到
而且集
函数接受单个标量索引参数。
生成的代码使用列主格式存储和访问矩阵数据。然而,许多C应用程序使用行主索引。将生成的代码与存储矩阵的示例遗留代码集成matrixInput
而且matrixParam
使用行主格式,自定义得到
函数使用列主索引输入计算等效的行主索引。生成的代码算法默认情况下使用列-主格式解释矩阵数据,执行正确的矩阵数学,因为得到
函数有效地将遗留矩阵转换为列主格式。的集
函数的输出,matrixOutput
,也计算行主索引,因此代码将算法输出写入matrixOutput
使用行主行格式。或者,要将列主格式生成的代码与行主格式遗留代码集成,可以通过转换矩阵数据和算法手动将遗留代码转换为列主格式。
查看示例遗留头文件getsetHdrMatrix.h
.该文件包含走读生
原型得到
而且集
定义的函数getsetSrc.c
.
打开示例模型rtwdemo_getset_matrix
.模型创建数据对象matrixInput
,matrixParam
,matrixOutput
在基本工作区中。对象对应于模型中的信号和参数。
load_system (“rtwdemo_getset_matrix”) set_param (“rtwdemo_getset_matrix”,“SimulationCommand”,“更新”) open_system (“rtwdemo_getset_matrix”)
在基本工作区中,双击该对象matrixInput
查看其属性。对象使用存储类GetSet
.房地产HeaderFile
指定为getsetHdrMatrix.h
.此遗留头文件包含得到
而且集
函数原型。
在“配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c
在构建过程中被标识为包含。此遗留源文件包含得到
而且集
函数定义和全局结构变量的定义ex_getset_data
.
使用示例模型生成代码。
slbuild (“rtwdemo_getset_matrix”);
###开始构建过程:rtwdemo_getset_matrix成功完成构建过程:rtwdemo_getset_matrix构建摘要顶层模型目标构建:模型动作重建原因====================================================================================================== rtwdemo_getset_matrix生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 14.472s
在代码生成报告中,查看该文件rtwdemo_getset_matrix.c
.该模型一步
函数使用遗留的得到
而且集
函数来执行算法。
rtwdemodbtype (fullfile (“rtwdemo_getset_matrix_ert_rtw”,...“rtwdemo_getset_matrix.c”),'/*模型阶跃函数*/',“}”, 1, 1)
/*模型步长函数*/ void rtwdemo_getset_matrix_step(void) {int32_T i;int32_T i_0;int32_T i_1;int32_T matrixOutput_tmp;For (i_0 = 0;I_0 < 3;I_0 ++) {for (i = 0;I < 3;i++) {/* Product: '<根>/Product'合并:* Constant: '<根>/Constant' * Inport: '<根>/In1' */ matrixOutput_tmp = 3 * i_0 + i;set_matrixOutput (matrixOutput_tmp, 0.0); for (i_1 = 0; i_1 < 5; i_1++) { set_matrixOutput(matrixOutput_tmp, get_matrixParam(3 * i_1 + i) * get_matrixInput(5 * i_0 + i_1) + get_matrixOutput (matrixOutput_tmp)); }
默认情况下,指定头文件名,得到
函数名,和集
使用存储类的每个数据项(如信号或参数)的函数名GetSet
.
要配置单个头文件,得到
函数命名方案,或集
函数命名方案用于每个数据项,则可以使用自定义存储类设计器创建自己的副本GetSet
.您可以在单个位置指定头文件或函数名。
按照以下步骤创建您自己的存储类:创建您自己的数据类包,创建一个副本GetSet
,并将新的存储类应用于模型中的数据项。
创建自己的数据类包,myPackage
,通过复制示例包文件夹+金宝app SimulinkDemos
并将复制的文件夹重命名为+ myPackage
.修改参数
而且信号
类定义,以便它们使用来自的存储类定义myPackage
.有关示例,请参见创建数据类包.
将当前文件夹设置为包含包文件夹的文件夹。或者,将包含包文件夹的文件夹添加到MATLAB中®路径。
打开自定义存储类设计器。
cscdesigner (“myPackage”)
选择存储类GetSet
.点击复制创建一个名为GetSet_1
.
选择新的存储类GetSet_1
.在一般选项卡,设置的名字来myGetSet
.
设置下拉列表头文件来指定
.在新的文本框中,设置头文件来myFcnHdr.h
.点击应用.
在Access功能属性选项卡,设置下拉列表获取函数而且集函数来指定
.
在新的盒子里,设置获取函数来myGetFcn_ $ N
而且集函数来mySetFcn_ $ N
.点击好吧.点击是的响应关于保存更改的消息。
生成代码时,令牌$ N
展开为使用此存储类的数据项的名称。
应用存储类myGetSet
从您的包到数据项。例如,创建一个myPackage。参数
基本工作区中的对象。
myParam = myPackage.Parameter(15.23);myParam.CoderInfo.StorageClass =“自定义”;myParam.CoderInfo.CustomStorageClass =“myGetSet”;
使用对象在模型中设置参数值。生成代码时,代码算法通过指定的函数访问参数。该代码使用# include
指令来包含您指定的头文件。
如果您实现得到
将标量或数组数据作为宏而不是函数的机制,可以生成在读取数据时省略括号的代码。
对于标量数据,宏必须生成标量值。
对于数组数据,宏必须提供起始内存地址。
创建自己的AccessFunction
使用自定义存储类设计器,如中所述为数据项指定头文件或函数命名方案.在“设计器”中,在Access功能属性选项卡上,选择通过宏获取数据(省略括号).
GetSet
存储类别限制GetSet
不支持复杂信号。金宝app
同一模型中的多个数据不能使用相同的数据GetFunction
或SetFunction
.
有些块不直接支持金宝appGetSet
.
自定义s函数不直接支持金宝appGetSet
.
使用GetSet
使用不支持的块或自定金宝app义s函数:
插入一个信号转换块或函数的输出。
在信号转换对话框中,选择从“减少块”优化中排除此块.
分配存储类GetSet
的输出信号转换块。