模型的数据接口是模型与其他外部模型或系统交换数据(例如,信号值)的方法。将模型的数据接口定制为:
支持将生成的代码与您自己的代码集成。
提高代码的可跟踪性和可读性。
在模型的顶层,input和Outport块表示模型的输入和输出信号。要在生成的代码中自定义数据接口,请配置这些块。在设计过程的早期,当模型可以包含未连接的Inport和Outport块时,在开发内部算法之前使用这种技术来指定接口。
当您将存储类应用到Inport和Outport块时,每个块在生成的代码中以全局结构的字段或生成的算法直接引用的独立全局变量的形式出现。如果你有嵌入式编码器,你可以使用函数原型控件而不是存储类来传递数据进出模型一步
函数作为形式参数。有关更多信息,请参见为模型入口点函数配置C代码生成(嵌入式编码).
打开示例模型rtwdemo_configrpinterface
.
open_system (“rtwdemo_configrpinterface”)
配置模型以显示生成的块名称。
set_param (“rtwdemo_configrpinterface”,“HideAutomaticNames”,“关闭”)
在建模选项卡上,单击模型数据编辑器.
在模型数据编辑器中,选择港口/外港选项卡。表中的每一行表示一个Outport块或一个退出一个Inport块的信号。
对于退出Inport块的每个信号,设置数据类型来单
或者到不同的数据类型。由于模型中其他块默认使用的数据类型继承设置,模型中其余部分的下游信号使用相同或类似的数据类型。
可选地,配置其他设计属性,如最小值和马克斯(最小值和最大值)。
您可以为Inport块和Outport块配置一个默认存储类,然后选择应该使用指定默认值的块。
打开金宝app仿真软件编码器应用程序。
在C Code选项卡中,选择Code接口>默认代码映射.
下面的代码映射编辑器中港口和外港,为两者都设置默认存储类港口和外港来ExportedGlobal
.
下一个,港口选项卡,选择应该使用默认存储类的数据项。新闻Ctrl并单击每个输入。
对于所选的输入,将存储类设置为模型默认值:ExportedGlobal
.
同样,在外港选项卡,将输出端口的存储类设置为模型默认值:ExportedGlobal
.
另外,要在命令提示符中配置数据默认值,可以使用以下命令:
厘米= coder.mapping.api.get (“rtwdemo_configrpinterface”);setDataDefault(厘米,“港口”,“StorageClass”,“ExportedGlobal”);setDataDefault(厘米,“输出港”,“StorageClass”,“ExportedGlobal”);setInport(厘米,“三机”,“StorageClass”,“模型默认”);setInport(厘米,“In2”,“StorageClass”,“模型默认”);setInport(厘米,“In3”,“StorageClass”,“模型默认”);setInport(厘米,“In4”,“StorageClass”,“模型默认”);setOutport(厘米,着干活的,“StorageClass”,“模型默认”,“标识符”,“output_sig”);
从模型生成代码。
slbuild (“rtwdemo_configrpinterface”);
### #开始构建程序:rtwdemo_configrpinterface模型重建行动的原因 ============================================================================================= rtwdemo_configrpinterface代码生成的代码生成信息文件不存在。建立1个模型(0个已经更新的模型)建立时间:0h 0m 13.56秒
查看生成的文件rtwdemo_configrpinterface.c
.因为您应用了存储类ExportedGlobal
对于Inport和Outport块,代码创建单独的全局变量来表示输入和输出。
文件= fullfile (“rtwdemo_configrpinterface_grt_rtw”,“rtwdemo_configrpinterface.c”);rtwdemodbtype(文件,/*导出的数据*/,“real_T output_sig;”, 1, 1)
/*导出的数据*/ real_T input1;/* '/In1' */ real_T input2;/* ' /In2' */ real_T input3;/* ' /In3' */ real_T input4;/* ' /In4' */ real_T output_sig;/ * * / < Root > /着干活
在模型中生成算法一步
函数直接引用这些全局变量来计算和存储输出信号值,output_sig
.
配置了inport和outport的默认存储类之后,可以选择覆盖这个默认值,并分别为一些数据元素设置存储类。例如,您可以将单个信号路由到多个Outport块,并对每个Outport应用不同的存储类。例如,使用这种技术发送信号数据到自定义函数(如设备驱动程序)和全局变量,你的自定义算法代码可以使用:
将目标信号线分支到每个Outport区块。
为了获得更高效的代码,请将目标信号线的存储类配置为汽车
(默认)。然后,优化可以从生成的代码中消除信号线。
在代码映射编辑器中,在外港选项卡,应用存储类GetSet
到一个外埠区块ExportToFile
到另一个Outport区块。
在属性检查器中,配置与每个应用的存储类关联的属性。
open_system (“ex_route_sig”)
如果输出块的输入大小可变,则不能将存储类应用于输出块。相反,将存储类应用于信号线。