整合自定义结构Stateflow图表
这个例子展示了如何使用自定义代码的结构Stateflow®图表。您可以定义结构类型数据与Stateflow C代码并将其集成结构和仿真软件®的公交车。金宝app通过共享数据和自定义代码,您可以增加Stateflow支持的功能和利用你现有的代码。金宝app有关更多信息,请参见重用定制代码Stateflow图表。
在这个例子中,Stateflow图流程数据从一个仿真软件总线和输出结果到另一个模型汽车。金宝app输入和输出定义的公共汽车
对象金宝appSimulink.Bus
(金宝app模型)COUNTERBUS
。图,仿真软件总线接口与Statefl金宝appow结构inbus
和outbus
。图表调用自定义的C函数写入输出结构outbus
。
定义自定义结构的C代码
1。在你的C代码,通过创建一个自定义头文件定义一个结构。头文件包含类型定义
声明定义自定义的属性结构。例如,在这个模型中,头文件counterbus.h
说三个自定义结构:
…typedef struct {int输入;}SIGNALBUS;
typedef struct {int upper_saturation_limit;int lower_saturation_limit;}LIMITBUS;
typedef struct {SIGNALBUS inputsignal;LIMITBUS限制;}COUNTERBUS;…
2。在类型编辑器中,定义一个金宝appSimulink.Bus
对象匹配每个自定义结构类型定义
声明。在头文件每一个领域金宝appSimulink.Bus
对象,输入头文件包含的名称匹配类型定义
声明。
3所示。配置Stateflow图表包含自定义的C代码,描述为您的模型配置自定义代码。
4所示。构建并运行您的模型。
通过Stateflow结构定制代码
当你调用自定义代码的函数结构的指针作为参数,通过Stateflow结构的地址。通过地址Stateflow结构或它的一个字段的自定义函数,使用&
运营商和点符号:
&outbus
提供的地址Stateflow结构outbus
。&outbus.inputsignal
提供了子结构的地址inputsignal
的结构outbus
。&outbus.inputsignal.input
提供的地址字段输入
子结构的outbus.inputsignal
。
有关更多信息,请参见Stateflow结构指数和赋值。
例如,这个例子中包含一个自定义的C函数counterbusFcn
这需要结构指针作为参数。自定义头文件counterbus.h
包含这个函数声明:
走读生空白counterbusFcn (int COUNTERBUS * u1, u2, COUNTERBUS * y1, y2 int *);
图表将地址传递到Stateflow结构counterbus_struct
和outbus
通过使用这个函数调用:
counterbusFcn (&counterbus_struct, u2, &outbus y2);
读取表的值输入的函数u2
和当地的结构counterbus_struct
。它写入表的输出y2
和输出结构outbus
。
另请参阅
金宝appSimulink.Bus
(金宝app模型)