MATLAB Answers

0

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?

Asked by Taylor Hubbard on 31 May 2018
Latest activity Commented on by Taylor Hubbard on 1 Jun 2018
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.

  0 Comments

Sign in to comment.

1 Answer

Answer by TAB
on 1 Jun 2018

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 Comment

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]

Sign in to comment.