主要内容

部署代码生成定义

中描述的定义服务接口、存储类、内存部分,为软件架构和功能模板,您可以创建代码生成定义,您和其他用户可以应用于数据和函数等模型元素。代码定义控制这些元素的外观在生成的代码。

在大型组织中多个模型和用户,您可以通过存储在共享代码生成定义相互访问的位置。共享代码定义的过程部署

多个模型和用户之间共享代码生成定义

当你创建自定义代码生成定义、模型和其他用户之间共享的定义:

  • 当您创建定义在嵌入式编码字典,保存SLDD文件中定义。然后,把SLDD文件,其中包含每个模型的代码生成定义。例如,看到的之间共享代码接口配置模式

  • 当您创建一个包的定义使用自定义存储类设计师,为每个用户,将MATLAB包含包文件夹的文件夹®路径。有关更多信息,请参见MATLAB搜索路径是什么?

词典使用情况模型创建不同版本的模型金宝app

金宝app®为嵌入式编码器提供了版本处理®字典。当这些事件发生时,仿真软件同步数据在数据字典中,包金宝app括嵌入式编码字典,使用仿真软件版本的模型无论用来创建模型。

  • 你附加的数据字典模型的仿真软件保存在前一个版本(例如,你把字典保存在R2018a R2018b模型,您开发)。金宝app

  • 你打开一个模型,它有一个当地的嵌入式编码字典,在仿真软件的一个版本比当前版本(例如,您开发了一个模型,使用本地词典R2018a和你打开模型R2018b继续开发金宝app)。

你也可以选择出口(拯救)嵌入式编码字典使用模型创建之前(或以上)不同版本的代码生成器。

有关更多信息,请参见词典使用情况模型创建不同版本的模型金宝app

配置默认代码映射在一个共享的字典

当你建立一个共享的嵌入式编码字典,您可以将默认代码定义类别的映射模型数据和函数的字典。默认的字典定义适用于默认的映射模型,使用字典。在这个例子中,您将创建嵌入式编码字典exSharedCodeDefs.sldd和地图默认定义的字典。如果你没有创建嵌入式编码字典,创建一个。

  1. 在Model Explorer中,单击文件>>嵌入式编码字典

  2. 指定字典文件名称exSharedCodeDefs.sldd

  3. 选择创建一个数据接口或服务接口配置。对于这个示例,创建一个服务接口配置。点击创建

  4. 创建代码接口定义的字典。对于这个示例,创建一个接收服务定义这些设置:

    • 的名字- - - - - -SharedReceiverService

    • 数据通信方法——执行外

    • 函数命名规则- - - - - -get_data_ $ X $ N

的代码接口配置类型可供你选择决定了类别设置默认的定义。

设置词典默认服务接口配置

服务接口配置,您可以选择字典功能类别和服务接口类的默认值。

  1. 在嵌入式编码字典对话框,在左边窗格中,单击类别要配置的服务接口。服务接口的行,你想选择,单击圆的词典默认列。你可以选择默认的服务接口定义这些接口类。

    服务接口类 描述
    接收机 调用目标平台接收服务,在模型中表示为root港口
    发送方 调用目标平台发送者服务,表现为根级模型中的输出港
    数据传输 调用目标平台数据传输服务,表示为信号可调用的函数在一个组件模型之间的界线
    计时器 调用目标平台时钟周期,表示为离散时间积分器,加权样本时间,数字时钟在非周期模型导出功能
    参数调优 表示访问内存调优参数
    参数参数调优 表示的模型参数可访问内存调优参数
    测量 表示信号、状态和数据存储,以便为测量数据保留在生成的代码

    对于这个示例,接收器的服务接口SharedReceiverService你在前一节中创建的。

  2. 在左边窗格中,单击类别的函数模板,你想配置。的行你想选择的函数模板,单击圆的词典默认列。你可以选择这些功能类别的默认函数模板。

    模型功能类别 描述
    初始化和终止 入口点函数生成的初始化函数终止函数
    周期和非周期 入口点函数生成的函数调用子系统块,函数调用模型,金宝app仿真软件的功能块,功能
    子组件的功能 函数调用子组件之间在一个组件模型
    共享效用 共享效用函数

  3. 通过单击应用您的更改保存并关闭嵌入式编码字典和模型浏览器。

设置词典默认数据接口配置

数据接口配置,您可以选择词典默认类别的模型数据元素和模型的功能。

  1. 在嵌入式编码字典对话框,在左边窗格中,单击数据默认值

  2. 数据默认值表、配置的默认代码定义类别的数据和功能。

    模型元素类别 描述
    港口 根级模型的输入端口,如轮廓尺寸在公共汽车元素块。
    外港 根级模型的输出端口,如外港公共汽车元素块。
    信号、状态和内部数据 内部模型的数据元素,如块输出信号,离散块,数据存储,讨论二阶导数过零信号。
    本地数据存储共享 数据存储内存块的块参数分享跨模型实例集。这些数据存储模型中只能定义。数据存储值之间共享模型的实例。
    全球数据存储 数据存储信号对象定义的基本工作空间或在数据字典。多个模型在一个应用程序可以使用这些数据存储。查看和配置这些数据存储在代码映射编辑器中,单击刷新链接类别名称的权利。点击这个链接更新模型图。
    模型参数的参数 工作区配置的模型参数作为模型参数。这些参数是暴露在模型块,使每个模型实例提供自己的价值。指定一个参数作为模型参数,选择模型数据编辑器>参数>论点复选框。
    模型参数 模型中定义的参数,如模型中参数的工作区。不包括模型参数。
    外部参数 参数定义为基本工作空间中的对象或数据字典。多个模型在一个应用程序可以使用这些参数。查看和配置这些参数在代码映射编辑器中,单击刷新链接类别名称的权利。点击这个链接更新模型图。
    常量

    定值不能内联块输出和参数。这些值存储在变量以下原因之一。

    • 值是一个数组比循环展开阈值。

    • 地址是价值需要在代码中。

    一个类别的默认映射适用于在一个模型元素的一个类别。

    对于这个示例,设置存储类数据类别港口,外港,全球数据存储ExportedGlobal

  3. 在嵌入式编码字典对话框,在左边窗格中,单击功能默认值。配置功能定制模板和,如果适用,内存部分,这些类别的函数:

    模型功能类别 描述
    InitializeTerminate 入口点函数初始化和终止
    执行 入口点函数开始执行和重置
    共享效用 共享效用函数
  4. 通过单击应用您的更改保存并关闭嵌入式编码字典和模型浏览器。

之间共享代码接口配置模式

你可以生成相同的目标的标准化的代码执行环境从不同的模型通过共享相同的代码接口配置模型通过共享嵌入式编码字典。附加.sldd文件,其中包含嵌入式编码字典模型通过设置模型配置参数共享编码器字典

字典CoderDictionary。sldd连着模型A和B。

对于这个示例,配置模型RollAxisAutopilotrtwdemo_configinterface使用共享编码器中创建的字典配置默认代码映射在一个共享的字典

  1. 打开模型。

    rtwdemo_configinterface openExample (“RollAxisAutopilot”);

  2. RollAxisAutopilot,打开嵌入式编码器应用程序。

  3. C代码选项卡上,单击代码接口>设置共享嵌入式编码字典

  4. 在对话框中,您可以打开一个现有嵌入式编码字典或创建一个新的。对于这个示例,选择开放的嵌入式编码字典并指定字典文件exSharedCodeDefs.sldd。点击下一个

    这个模型现在使用共享编码器字典。

  5. 重复这个过程的模型rtwdemo_configinterface

现在,对于每个模型,配置参数共享编码器字典被设置为exSharedCodeDefs.sldd。从共享的模型使用默认定义字典,和字典的定义在代码中为每个模型映射面板。您也可以配置多个模型使用相同的字典通过共享配置的参数设置共享编码器字典字典文件的名称。

应用代码生成模型中定义

确认共享定义中使用模型检查代码映射设置和检查生成的代码。

  1. RollAxisAutopilot面板,打开代码映射。在C代码选项卡上,单击代码接口>组件接口

  2. 港口选项卡中,将确认接收服务词典默认值:SharedReceiverService。其他接收服务定义的词典可供选择的接收服务列表。

  3. 生成代码RollAxisAutopilot

  4. 代码看来,检查生成的文件RollAxisAutopilot.c。代码调用接收方根据默认定义指定的服务。例如,的代码开关块调用接收服务get_data_RollAxisAutopilot_step_AP_Eng

    / *开关:“< S4 > /启用”包含:*尺寸:“< Root > / AP_Eng”*逻辑:“< S3 > /启用”* /如果(! get_data_RollAxisAutopilot_step_AP_Eng()){/ *开关:“< S3 > / RefSwitch”包含:*不变:“< S3 > / LoThr”*不变:“< S3 > / UpThr”*不变:“< S3 > /零”*尺寸:‘< Root > /φ*逻辑:“< S3 > /或“* RelationalOperator:“< S3 > / RefThreshold1”* RelationalOperator:“< S3 > / RefThreshold2”* UnitDelay:“< S4 > / FixPt单位Delay1”* /如果((get_data_RollAxisAutopilot_step_Phi () > = 6.0 f) | | (get_data_RollAxisAutopilot_step_Phi () < = -6.0 f)) {rtDW。FixPtUnitDelay1_DSTATE = get_data_RollAxisAutopilot_step_Phi ();}{rtDW。FixPtUnitDelay1_DSTATE f = 0.0;}/ *开关:年底的< S3 > / RefSwitch * /}

  5. 可选地,生成代码rtwdemo_configinterface并确认代码出现。

迁移数据接口配置从模型文件到共享数据字典

如果你创建的代码生成定义的嵌入式编码字典模型,定义存储在模型文件。如果你想分享模型之间的定义:

  1. 创建一个共享数据字典中所示之间共享代码接口配置模式。在继续下一步之前,确保所有的目标模型可以访问共享的字典。

  2. 使用coder.dictionary.move函数的定义从源模型文件迁移到共享数据字典。

  3. 可选,复制代码映射编辑器设置从源模型与其他模型通过使用代码的编程接口映射编辑器(参见配置默认的数据和函数代码生成以编程方式)。

在本例中,您将一个子系统,一个参考模型。然后,您创建一个存储类的嵌入式编码字典模型和使用的存储类代码映射编辑器。使用相同的代码映射编辑器设置引用的模型和模型中,您必须将存储类提取到一个共享数据字典(.sldd)。

创建引用模型

  1. 打开示例模型RollAxisAutopilot

    openExample (“RollAxisAutopilot”);

  2. 在模型中,右键单击BasicRollMode子系统和选择子系统和模型参考>转换为>引用模型

  3. 点击转换

    引用的新模型,BasicRollMode,打开。模型文件在当前文件夹。

创建和应用存储类

  1. 在模型顶部RollAxisAutopilot,单击C代码选项卡。如果将来发布不显示C代码选项卡,打开嵌入编码器的应用。

  2. 点击代码接口>嵌入式编码字典

  3. 在嵌入式编码字典对话框,存储类表,点击创建

  4. 新存储类,设置这些属性值:

    • 的名字internalsInFile

    • 头文件R_internal.h美元

    • 定义文件R_internal.c美元

  5. 在模型中,在代码映射编辑器中,数据默认值>信号、状态和内部数据行,设置存储类internalsInFile

不能访问代码生成定义的引用模型的嵌入式编码字典父模型。现在,移动存储类的父模型和共享数据字典。

移动存储类共享数据字典

创建共享的,独立的字典和存储代码生成的定义:

  1. 在Model Explorer中,选择文件>>嵌入式编码字典

  2. 创建一个编码器字典命名coderDefs.sldd。对于这个示例,选择选项来创建一个数据接口配置。

  3. 配置RollAxisAutopilotcoderDefs.sldd。为模型,打开模型配置参数和设置共享编码器字典coderDefs.sldd

  4. 设置配置参数共享编码器字典为模型BasicRollModecoderDefs.sldd

  5. 在命令提示符下,移动的代码生成定义RollAxisAutopilot模型文件的coderDefs.sldd数据字典。

    coder.dictionary.move (“RollAxisAutopilot”,“coderDefs.sldd”);

现在,两个模型都访问存储类internalsInFile

复制代码映射编辑器设置从父母模型参考模型

新的引用模型不使用映射编辑器的代码设置父模型使用。复制父母的设置模型引用的模型,使用编程接口的代码映射编辑器。

在命令提示符下,复制存储类设置信号、状态和内部数据RollAxisAutopilotBasicRollMode

roll_mapping = coder.mapping.api.get (“RollAxisAutopilot”);roll_sc = getDataDefault (roll_mapping,“InternalData”,“StorageClass”);mode_mapping = coder.mapping.api.get (“BasicRollMode”);setDataDefault (mode_mapping“InternalData”,“StorageClass”,roll_sc);

现在,两种模式使用相同的代码映射编辑器设置。更多信息代码的编程接口映射编辑器中,看到的配置默认的数据和函数代码生成以编程方式

另请参阅

相关的话题