2015-10-13 6 views
0

У меня есть функция C mex S, которая может печатать выходные данные в TXT-файле. Этот код внутри mdlStart (SimStruct * S) создает файл datafile.txt и добавляет результат.создание файла .txt из функции S

void** pwork = ssGetPWork(S); 
    FILE *datafile; 

    datafile = fopen("datafile.txt","a"); 
    pwork[0] = datafile; 

Итак, теперь я хочу динамически получить имя файла .txt от пользователя через S-функциональную маску. поэтому, как я могу получить строковое значение имени файла из маски внутри функции S.

ответ

1

Во-первых, лет нужно будет объявить параметр маска

enter image description here

, вам нужно будет передать имя файла в параметре ■ Функции

enter image description here

Последняя, ​​вы будете использовать параметр внутри функции, например:

mxGetPr(ssGetSFcnParam(S,0)); 

См:

http://www.mathworks.com/help/simulink/sfg/ssgetsfcnparam.html http://www.mathworks.com/matlabcentral/answers/36028-integer-parameters-to-c-mex-s-function

+0

Я думаю, чтобы принять параметр из маски массива т.е. полукокса внутри ей функции мне нужно использовать Int mxGetString (Const mxArray * ч, символ *, ул mwSize StrLen); метод ... Thanx для справки :) – redumpt

+0

Я не тестировал решение самостоятельно, поэтому вы, вероятно, правы. Я просто дал вам направление следовать. Дайте мне знать, если это сработает. Пусть сила будет с вами :-) – guilhermecgs

+0

Я следовал вашей предлагаемой процедуре, но чтобы получить значение параметра, я использовал mxGetString .... Он работает .Thanx для справки :) – redumpt

Смежные вопросы