Получите сгенерированный тип и имя структур Inport

Чтобы получить сгенерированный тип и имя импорта и структур выходного порта, используйте API дескриптора кода. Генератор кода хранит эту информацию в DataImplementation поле объекта на DataInterface возразите, когда это сгенерирует код.

Чтобы соединить интерфейсом с вашим сгенерированным кодом с другими компонентами вашего приложения, используйте API дескриптора кода.

1. Откройте модель.

open_system('rtwdemo_sum');

2. Создайте модель.

slbuild('rtwdemo_sum');
### Starting build procedure for: rtwdemo_sum
### Successful completion of build procedure for: rtwdemo_sum

Build Summary

Top model targets built:

Model        Action                       Rebuild Reason                                    
============================================================================================
rtwdemo_sum  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 12.777s

Сгенерированный код включает структуру, представляющую импорт.

/* External inputs (root inport signals with default storage) */
ExtU rtU;

3. Получите объект дескриптора кода.

codeDescObj = coder.getCodeDescriptor('rtwdemo_sum')
codeDescObj = 
  CodeDescriptor with properties:

    ModelName: 'rtwdemo_sum'
     BuildDir: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tpc60152a5/simulinkcoder-ex78186698/rtwdemo_sum_ert_rtw'

4. Получите список типов интерфейса данных в сгенерированном коде.

dataInterfaceTypes = codeDescObj.getDataInterfaceTypes()
dataInterfaceTypes = 2x1 cell
    {'Inports' }
    {'Outports'}

5. Получите DataInterface объект, который представляет импорт.

inports = codeDescObj.getDataInterfaces('Inports')
inports = 
  1x2 DataInterface array with properties:

    Type
    SID
    GraphicalName
    VariantInfo
    Implementation
    Timing
    Unit
    Range

6. Получите Implementation объект, который представляет первый импорт. В этом примере импорт каждый представлен как StructExpression, который является подклассом DataImplementation.

impl = inports(1).Implementation
impl = 
  StructExpression with properties:
                 Type: [1x1 coder.descriptor.types.Type]
           BaseRegion: [1x1 coder.descriptor.TypedRegion]
    ElementIdentifier: 'In1'
              Variant: ''

7. Получите Type из первого импорта. Type из импорта real_T.

implType = impl.Type
implType = 
  Double with properties:
    Identifier: 'real_T'
          Name: 'double'
      ReadOnly: 0
      Volatile: 0
    WordLength: 64
    Signedness: 1

8. Получите BaseRegion из первого импорта. BaseRegion представляет структуру, которая содержит импорт. BaseRegion rtU.

baseRegion = impl.BaseRegion
baseRegion = 
  Variable with properties:
                Type: [1x1 coder.descriptor.types.Type]
          Identifier: 'rtU'
            VarOwner: 'rtwdemo_sum'
    StorageSpecifier: ''

9. Получите Type из BaseRegion. Type из BaseRegion ExtU.

baseRegionType = baseRegion.Type
baseRegionType = 
  Struct with properties:
    Identifier: 'ExtU'
          Name: 'ExtU'
      ReadOnly: 0
      Volatile: 0
      Elements: [1x2 coder.descriptor.types.AggregateElement Sequence]
      Checksum: [1x0 Integer Sequence]

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте