我怎么访问一个在仿真软件的结构体数组。金宝app参数使用C API ?

2视图(30天)
我试图使用C API来访问可调参数生成的代码。仿真软件金宝app。参数是类型的结构体字段也结构:
一切没问题当我只使用1 x1结构(如“plainstruct”从上面)但我难以访问的结构体数组(从上图“arraystruct”)使用C API。
的结构体数组支持当使用C API访问参数?金宝app如果他们支持,你怎么能访金宝app问的结构体数组?

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2021年1月14日
支持结构体数组在使用C API。金宝app自从C API宏依赖参数地址,很难确定的返回类型宏应该(适当地把指针)。说明最佳实践在这方面,我会结合一个简单的例子(见capi_exampl.zip)演示如何使用总线作为数据类型的“仿真软件。金宝app参数“使这更容易。这个示例还演示了使用c api来访问元素的结构参数。
以下是说明运行模式:
1)运行“create_mySimParam。m”脚本
2)加载总线定义
负载(“busDataTypeDefinitions.mat”)
3)“CAPI_example开放。基金”,建立模型(Ctrl + b)
4)然后运行生成的可执行文件在MATLAB命令窗口中使用以下命令:
CAPI_example.exe !
这里有一些笔记的例子:
  • 注意,在“create_mySimParam。m”“仿真软件。金宝app定义参数”。模型中使用的参数是一个结构化的模型参数,使参数的数据类型是总线数据类型。金宝app指定数据类型的结构总线数据类型允许您控制命名数据类型出现的代码,从而将大大简化访问参数通过C API。在这个例子中,我已经设置模型参数的数据类型“simParamDataType”结构如下:金宝app
  • 在这个例子中,通过c api,我想访问的价值“mySimParam.arraystruct (2)。”。代码用来做这个可以找到“初始化函数”部分的定制代码窗格(配置参数> >自定义代码生成代码)。为了您的方便,这是代码片段使用:
  • 请注意分配的参数类型自定义总线(simParamDataType)简化铸造“仿真软件。金宝app参数”模型参数到正确的数据类型在第17行上面的代码
  • “mySimParam的事实。arraystruct”是一个结构体数组中捕获“维度”属性的公共汽车元素命名为“arraystruct”:
这个例子可以提供一个起点,你需要适应你的用例。如果你有问题关于使用的宏,然后“rtw_modelmap请参考文件。h”和“rtw_capi。h”,位于“matlabroot / rtw / c / src”。

更多的答案(0)

类别

找到更多的在金宝app仿真软件编码器帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!