主要内容

生成c++类接口模型或子系统的代码

生成c++类接口模型代码,设置模型配置参数代码接口包装c++类。生成的接口封装所需模型数据转换成c++类属性和入口点函数到c++类方法。c++类封装的好处包括:

  • 更好地控制访问模型数据

  • 能力创建模型类的多个实例

  • 容易集成的模型代码到c++编程环境

c++类封装也适用于右击nonvirtual子系统的构建。(信息需求申请,请参阅生成c++类接口Nonvirtual子系统的代码。)

生成c++类接口模型代码

生成c++类封装代码从一个模型:

  1. 集模型配置参数语言c++。这个选择还支持c++类代码界面模型的包装。

  2. 验证模型配置参数代码接口包装被设置为c++类

  3. 检查设置多实例代码错误诊断。离开这个参数在其默认值错误除非你需要改变的严重程度诊断时显示一个模型生成多实例代码违反了要求。

  4. 为模型生成代码。

  5. 检查c++模型类中的代码生成的文件模型。h模型. cpp。例如,下面的代码摘录H模型文件生成的例子rtwdemo_secondOrderSystem显示了模型的c++类声明。

    / *类声明为模型rtwdemo_secondOrderSystem * /类rtwdemo_secondOrderSystemModelClass{/ *公共数据和函数成员* /:/ *外部输出* / ExtY_rtwdemo_secondOrderSyste_T rtwdemo_secondOrderSystem_Y;/ *模型入口点函数* / / *模型初始化函数* /无效的初始化();/ *模型阶跃函数* /无效步骤();/ *模型终止函数* /空终止();/ *构造函数* / rtwdemo_secondOrderSystemModelClass ();/ *析构函数* / ~ rtwdemo_secondOrderSystemModelClass ();/ *实时模型得到方法* / RT_MODEL_rtwdemo_secondOrderS_T * getRTM ();…};

    关于生成和调用模型入口点函数的更多信息,参见配置C代码生成模型入口点函数

请注意

如果你有一个嵌入式编码器®许可证,你选择一个ERT-based系统目标文件为您的模型,使用额外的代码生成>接口面板参数来定制生成的c++类接口。

生成c++类接口Nonvirtual子系统的代码

您可以生成c++类接口右键单击nonvirtual子系统的构建,如果满足以下需求:

  • 模型的配置c++语言和c++类包装代码接口。

  • 可转换到一个子系统模型块使用函数金宝appSimulink.SubSystem.convertToModelReference。引用的模型转换的需求,看到仿真软件金宝app®参考页面金宝appSimulink.SubSystem.convertToModelReference

配置c++类接口子系统满足要求:

  1. 打开包含模型并选择子系统的块。

  2. 右键单击该子系统和选择C / c++代码>构建这个子系统

  3. 当子系统构建完成后,检查c++类接口生成的文件和HTML代码生成报告。关于生成和调用模型入口点方法的更多信息,参见配置C代码生成模型入口点函数

如果你有一个嵌入式编码器许可证,你选择一个ERT-based系统目标文件为您的模型,您可以使用MATLAB®命令RTW.configSubsystemBuild自定义生成的c++类接口子系统的代码。

c++类接口的局限性

  • 之间的数据交换接口上可用接口面板的配置参数对话框,只支持C API接口金宝appc++类代码生成。如果您选择外部模式ASAP2接口验证错误,代码生成失败。

  • 如果一个模型根尺寸值连接Simscape™转换块,你必须插入一个仿真软件金宝app信号转换块根尺寸和Simscape之间转换。在仿真软件金宝app信号转换块参数对话框中,选择排除这一块从减少块的优化

  • 您不能使用c++类接口的情况下当引用模型不能有一个组合输出/更新功能。案例包括一个模型

    • 有连续样品时间

    • 保存状态

相关的话题