Определение и объявление данных сигнала

В этом примере показано, как экспортировать определение и объявление глобальной переменной, что сгенерированный код использует в качестве сигнала.

C построение

float mySig;

extern float mySig;

Процедура

1. Откройте модель ex_defn_decl в качестве примера.

open_system('ex_defn_decl');

2. В Model Data Editor откройте вкладку Inports/Outports.

3. В Model Data Editor, для блока Inport, Типа данных набора к single.

set_param('ex_defn_decl/In1','OutDataTypeStr','single');

4. Откройте приложение Embedded Coder.

5. Во вкладке C Code выберите Code Interface> Individual Element Code Mappings.

6. В редакторе Отображений Кода, на вкладке Inports, Классе памяти набора для блока Inport к ExportToFile.

7. В Свойстве Inpsector, Идентификатор набора к mySig, Заголовочный файл к myDecls.h, и файл определения к myDefns.c.

cm = coder.mapping.api.get('ex_defn_decl');
setInport(cm,'In1','StorageClass','ExportToFile','Identifier','mySig','HeaderFile','myDecls.h','DefinitionFile','myDefns.c');

8. Сгенерируйте код из модели.

currentDir = pwd;
[~,cgDir] = rtwdemodir();
evalc('rtwbuild(''ex_defn_decl'')');

Результаты

Сгенерированный заголовочный файл myDecls.h объявляет глобальную переменную mySig при помощи extern ключевое слово.

file = fullfile('ex_defn_decl_ert_rtw','myDecls.h');
rtwdemodbtype(file,'/* Declaration for', ...
    'extern real32_T mySig',1,1);
/* Declaration for custom storage class: ExportToFile */
extern real32_T mySig;                 /* '<Root>/In1' */

Сгенерированный исходный файл myDefns.c задает и инициализирует mySig.

file = fullfile('ex_defn_decl_ert_rtw','myDefns.c');
rtwdemodbtype(file,'/* Definition for', ...
    'real32_T mySig;',1,1);
/* Definition for custom storage class: ExportToFile */
real32_T mySig;                        /* '<Root>/In1' */

Похожие темы