Вызов функции C в matlab-simulink / stateflow

Я создал функцию C в test.c

#include <stdio.h>


int Test()
{
    FILE * fp = fopen("C:\\workspace\\test.txt", "rw");
    fprintf(fp, "test hello world");
    fclose(fp);
    return 10;
}

И я определил состояние в потоке состояний simulink. я использовал

en: Test();

Я указал файл как в Инструменты-> Открыть цель моделирования-> Пользовательский код-> Включить список дополнительных и Включить пользовательский код C в сгенерированный (с использованием абсолютного пути и имени файла). Когда я попытался запустить модель, я получил ошибку парсера: ru: Test (); ^ Функция с именем «Test» не является функцией Stateflow.

Что я должен делать?


person user1192878    schedule 20.08.2012    source источник


Ответы (2)


Сделал это сам. На вкладке «Включить пользовательский код C в сгенерированный:» -> вкладка файла заголовка я должен указать свой файл заголовка как

#include "test.h"

вместо

test.h

И файл c должен быть указан в «Включить список дополнительных» -> Исходные файлы как

test.c
person user1192878    schedule 20.08.2012

Добавление ссылки на онлайн-пример добавления пользовательского кода C в Stateflow, который поможет другим пользователям, столкнувшимся с аналогичными проблемами: http://www.mathworks.com/support/solutions/en/data/1-1727V/

person Siddharth    schedule 29.10.2012