With variable sized signals in Simulink, how can TLC code access the "CurrentDimensions" of a variable sized signal?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
For context, imagine an S-function that outputs a variable-sized signal. How can code be generated that specifies not only the signal's value, but also its current dimensions (since they are variable).
TLC library functions like LibBlockOutputSignalDimensions only return the numeric values for the signal's maximum dimensions (e.g. [1 16]). Variable-sized signals have block state variables that hold the "actual" dimensions. How can we gain access to the C language variable names that hold this state?
For example, here is the automatically generated C code struct that holds the block states I want to access:
<< in the ModelName.h file >>
/* Block states (auto storage) for system '<Root>' */
typedef struct
{
int32_T MyBlock_DIMS1[2]; /* '<Root>/MyBlock' */
}
DW_ModelName_T;
<< in the ModelName.c file >>
/* Block states (auto storage) */
DW_ModelName_T ModelName_DW;
So for this example, I'm looking for TLC syntax that emits something similar to ModelName_DW.MyBlock_DIMS1 into my generated code.
0 commentaires
Réponses (1)
Prashant Arora
le 26 Avr 2017
Hi Keith,
Have you tried using LibBlockInputSignalWidth or LibBlockInputSignalSymbolicWidth?
I have not tried it myself, but it does seem to do the expected.
1 commentaire
Voir également
Catégories
En savoir plus sur Simulink Coder dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!