映射编辑器- C代码
把模型元素与代码接口定义
描述
映射的代码编辑器是一个图形界面,您可以配置数据元素和入口点函数在代码生成的模型。每个模型在模型中引用层次结构都有自己的代码的映射。将每个类别的模型数据元素与特定的存储类每个类别的入口点函数与一个特定的函数模型定制模板在一个模型。覆盖这些设置,根据需要,对特定数据元素和功能。模型与附加嵌入式编码字典定义了一个服务接口配置,您可以将模型的元素映射到服务接口中定义的一个共享的字典模型。
存储类定义的外观和位置等属性,代码生成器生成代码的时候使用的相关数据。功能定制模板定义如何关联函数的代码生成器生成的代码。如果你离开存储类或函数设置为自定义模板默认的
,您可以配置一个内存部分数据或函数类别。
配置数据元素和功能代码生成,使用标签在代码映射编辑器中显示:
数据默认值(仅数据接口)
功能默认值(仅数据接口)
功能
港口
外港
数据传输(仅服务接口)
参数
数据存储
信号/州
当有额外的代码映射属性能够被配置为一个模型元素,您可以配置这些属性通过选择活跃表中的一行,单击图标。
之前您可以配置代码生成的信号,将信号添加到模型代码映射。添加和删除信号从暂停映射的代码省略出现高于或低于一个信号线打开操作栏。单击添加信号或删除信号按钮。这些按钮也可以在代码映射编辑器信号/州选项卡。
打开编辑器- C代码映射
做下列之一:
打开嵌入式编码器®应用程序。对于一个数据接口配置,在C代码选项卡上,选择代码接口>默认的代码映射或代码接口>单个元素的代码映射。服务接口的配置,C代码选项卡上,选择代码接口>组件接口或代码接口>子组件接口。
打开嵌入式编码器的应用程序。C代码选项卡中,左下角的仿真软件金宝app®编辑器窗口,单击代码的映射选项卡。
模型中的画布的模型编辑器窗口,单击右下角的角度控制和选金宝app择代码。然后,单击代码的映射选项卡。
例子
为根尺寸和外港块配置代码生成
为根配置代码生成轮廓尺寸和外港块在一个模型。应用默认配置可以节省时间,特别是对于大型模型,使用大量的数据。应用默认的映射后,您可以调整单个数据元素映射。
打开模型
RollAxisAutopilot
。openExample (“RollAxisAutopilot”);
roll_input_data.c
roll_input_data.h
roll_heading_mode.c
roll_heading_mode.h
打开嵌入式编码器应用程序。
配置代码生成器:
使用头文件
roll_input_data.h
声明的变量代表模型尺寸块。代表变量模型外港块作为单独的全局变量。
定义输出变量
roll_output_data.c
并宣布他们roll_output_data.h
。为变量配置名称,代码生成器使用它生成的代码轮廓尺寸块。
在C代码选项卡上,选择代码接口>默认的代码映射。
在数据默认值选项卡,在港口和外港,选择的行港口。然后,设置存储类
ImportFromFile
。单击
图标和设置头文件来
roll_input_data.h
。设置存储类模型元素类别外港来
ExportToFile
。集头文件来
roll_output_data.h
和定义文件来roll_output_data.c
。
在代码映射编辑器中,单击港口选项卡。每个尺寸设置的存储类
汽车
,这意味着代码生成器可能消除或改变的代表性相关代码进行优化。如果不可能优化,代码生成器适用于港口的默认配置。力代码生成器为港口使用默认配置,存储类
ImportFromFile
与外部的头文件roll_input_data.h
。按下Ctrl键,选择港口。对选定的港口之一,设置存储类模型默认值:ImportFromFile
。编辑器更新存储类设置为选定的港口。
覆盖默认的源位置尺寸变量HDG_Mode
。外部文件中声明变量roll_heading_mode.h
。
在代码映射编辑器中,单击港口选项卡。
选择
HDG_Mode
行。集存储类来
ImportFromFile
。单击
图标和设置头文件来
roll_heading_mode.h
。配置代码生成器生成的代码中变量名轮廓尺寸在外部文件块匹配的变量名
roll_input_data.h
和roll_heading_mode.h
。在港口选项卡上,选择每轮廓尺寸块,点击图标和设置标识符块的名字。当存储类以外的一个值
汽车
,你可以指定一个值标识符存储类属性。如果你离开标识符财产空,代码生成器使用块的名称或相关信号建模元素。
包括外部源文件roll_input_data.c
和roll_heading_mode.c
在代码生成和构建过程。设置模型配置参数源文件来roll_input_data.croll_heading_mode.c
。
保存模型。
生成代码,并验证代码生成的轮廓尺寸和输出块出现像您预期的那样。
RollAxisAutopilot.h
包括这些头文件与存储相关的类:# include“roll_output_data。h roll_input_data # include。h roll_heading_mode.h“# include
roll_heading_mode.c
包括roll_heading_mode.h
并定义变量HDG_Mode
。# include“roll_heading_mode。h”boolean_T HDG_Mode;
roll_input_data.c
定义中声明的变量roll_input_data.h
。# include“roll_input_data。h”boolean_T AP_Eng;real32_T HDG_Ref;real32_T Rate_FB;real32_Tφ;real32_T Psi;real32_T助教;real32_T Turn_Knob;
roll_output_data.c
包括这个导出的数据定义:real32_T Ail_Cmd;
roll_output_data.h
包括这个导出的数据声明:走读生real32_T Ail_Cmd;
配置默认入口点函数的函数名
默认情况下,代码生成器使用标识符的命名规则R N美元
入口点函数的名字。$ R
的名字是根模型。$ N
函数的名称,例如,初始化
,一步
,终止
。将生成的代码与现有外部代码或符合命名标准或指南,您可以调整默认命名规则。这个例子展示了如何添加文本字符串myproj_
作为一个前缀,R美元
。调整默认命名规则可以节省时间,特别是对于多重速率的代码生成器产生一个独特的模型一步
为每个率函数。
开放模式
MultirateMultitasking
。保存一个副本可写的文件夹。打开嵌入编码器应用。C代码选项卡打开,包括代码映射编辑器。
创建一个自定义的函数模板定义了命名规则myproj_ R N美元
。
开放的嵌入式编码字典。在C代码选项卡上,选择代码接口>嵌入式编码字典。
单击功能定制模板选项卡。
点击添加。
在的名字新表的列行,新模板名称
myproj_FunctionTemplate
。在函数名列中,输入命名规则
myproj_ R N美元
。关闭嵌入式编码字典。
在C代码选项卡上,选择代码接口>默认的代码映射。
单击功能默认值选项卡。
为初始化和终止和执行功能类别,修改默认功能定制模板
默认的
来myproj_FunctionTemplate
。保存模型。
生成代码并验证的入口点函数的名字。
空白myproj_MultirateMultitasking_step0 (void) / *样品时间:[1.0,0.0 s] * / {(rtM - > Timing.RateInteraction.TID0_1) + +;如果((rtM - > Timing.RateInteraction.TID0_1) > 1) {rtM - > Timing.RateInteraction。TID0_1 = 0;如果(rtM - > Timing.RateInteraction}。{rtDW TID0_1 = = 1)。RateTransition = rtDW.RateTransition_Buffer0;}而无。Out2 = 2.0 * rtDW。RateTransition + rtU.In1_1s;而无。着干活= (3.0 * rtDW。RateTransition + rtU.In1_1s) * 5.0 + rtY.Out2; } /* Model step function for TID1 */ void myproj_MultirateMultitasking_step1(void) /* Sample time: [2.0s, 0.0s] */ { rtDW.RateTransition_Buffer0 = rtDW.Integrator_DSTATE; rtDW.Integrator_DSTATE += 2.0 * rtU.In2_2s; } void myproj_MultirateMultitasking_initialize(void) { /* (no initialization code required) */ } void myproj_MultirateMultitasking_terminate(void) { /* (no terminate code required) */ }
定制个人入口点函数
对于您的模型,您可以定制大多数入口点函数的名称和执行函数的参数,如步骤功能和仿真软件的功能。金宝app这个例子展示了如何定制的入口点函数模型RollAxisAutopilot
。
打开模型
RollAxisAutopilot
。openExample (“RollAxisAutopilot”);
roll_input_data.c
roll_input_data.h
roll_heading_mode.c
roll_heading_mode.h
打开嵌入式编码器应用程序。C代码选项卡打开,包括代码映射编辑器。
在C代码选项卡上,选择代码接口>单个元素的代码映射。
单击功能选项卡。
自定义步骤(执行)函数的名称。在函数名列中,输入名称
roll_run
。自定义参数
一步
函数。打开配置对话框一步
函数通过单击超链接的原型预览功能列。选择为阶跃函数原型配置参数。
打开一个表显示的默认配置参数,点击获取默认。
自定义参数:
从C返回参数下拉列表中,选择
Ail_Cmd
。每个端口的C标识符名称字段,删除
arg_
从他们的缺省名称前缀。为
HDG_Mode
轮廓尺寸,从C类型限定符下拉列表中,选择指针
。在C标识符名称字段更改名字HDG_Mode_Ptr
点击应用和验证函数原型反映了变化。
通过点击验证更改验证。
点击好吧。
生成的代码。
验证更新生成的C文件
RollAxisAutopilot.c
。找到更新的一步
函数(roll_run
),用搜索字段。选择
一步
函数来验证它的原型。real32_T roll_run (real32_Tφ,real32_T Psi real32_T Rate_FB, real32_T助教,boolean_T AP_Eng, boolean_T * HDG_Mode_Ptr real32_T HDG_Ref, real32_T Turn_Knob)
相关的例子
参数
版本历史
介绍了R2018a