exponenta event banner

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

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

Конструкция C

float mySig;

extern float mySig;

Процедура

1. Открыть пример модели ex_defn_decl.

open_system('ex_defn_decl');

2. В редакторе данных модели откройте вкладку Ввод/вывод (Inports/Outports).

3. В редакторе данных модели для блока «Ввод» задайте для параметра «Тип данных» значение single.

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

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

5. На вкладке Код C выберите Интерфейс кода > Сопоставления кодов отдельных элементов.

6. В редакторе Сопоставления кодов на вкладке Inports установите класс Storage для блока Inport равным ExportToFile.

7. В инспекторе свойств задайте для параметра «Идентификатор» значение 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('slbuild(''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' */

Связанные темы