Is there a setting somewhere in the Data Store Memory block I can set to force the data store to use my previouly declared definition of a bus type when generating code?

1 ビュー (過去 30 日間)
I’m working on a tire model that uses a data store to hold a bunch of tire parameters with a bus structure defined by the attached “tireParamBus.h” header. I generate the bus structure using the “Simulink.importExternalCTypes” function which give me a bus definition in the base workspace defined as “tireParamBus” with an imported data scope and the “tireParamBus.h” header file.
I then have a tire model which is implemented as an S-Function which gets a pointer to this data store in the mdlStart function and stores the pointer in a DWork vector for use by the derivatives and outputs. The S-Function has a wrapper tlc file for code generation which works when building the model as a standalone model.
The problem I’m having is when I integrate this model with my airplane simulation, the struct tireParamBus is redefined in the “…_types.h” header.
If I delete the TIRE_PARAMS data store, this issue goes away (so do my parameters).
My question is: is there a setting somewhere in the Data Store Memory block I can set to force the data store to use my previous definition of tireParamBus? I have tried a few different Storage Class options, but none seem to work.

回答 (1 件)

TAB 2018 年 6 月 1 日
Check definition of your tireParamBus.
Assuming that its is "Simulink.Bus" object, you should assign the data scope propertie as below
tireParamBus.DataScope = 'Imported';
tireParamBus.HeaderFile = 'tireParamBus.h' % This file will be included in generated code using #include
  1 件のコメント
Taylor Hubbard
Taylor Hubbard 2018 年 6 月 1 日
Unfortunately, that doesn't help. As I stated earlier, the DataScope is set to Imported and the header file is set to tireParmBus.h. In other places this seems to work fine.
tireParamBus =
Bus with properties:
Description: ''
DataScope: 'Imported'
HeaderFile: 'tireParamBus.h'
Alignment: -1
Elements: [7×1 Simulink.BusElement]



Find more on Simulink Coder in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by