В настоящее время я пытаюсь использовать библиотеку на основе кода на C/C++ в Matlab/Simulink с помощью инструмента Matalab legacy_code. Я очень новичок в этом, пожалуйста, принесите мне немного терпения.Matlab legacy_code Tool - Написание функции обертки для захвата массива
Я наткнулся на проблему, что у меня есть члены класса, которые возвращают массив.
То, что я сделал на сейчас, чтобы следовать примерам наследия-код Matlab, особенно это одна:
Integrate External C++ Object Methods
Насколько я могу видеть, инструмент legacy_code требует функции обертки, чтобы быть обернут вокруг вызов метода, так что, в основном, я мог бы, в рамках этой функции-обертки обрабатывать возвращаемое значение вызванного метада любым способом. Это не проблема.
Но я не уверен, как получить массив информации от вызываемого метода, а затем передать этот массив в Matlab/Simulink.
например. Возвращаемое значение метода - это указатель, указывающий на массив информации, из которого, допустим, мы знаем длину достоверной информации, которую он имеет.
/* Simple example */
uint8_t* BUS::answerRcvd()
{
static int r[10];
int i;
srand((unsigned)time(NULL));
for (i = 0; i < 10; ++i)
{
r[i] = rand();
}
return r;
}
Есть ли способ, чтобы создать функцию-оболочку для такого метода, который будет получать массив информации и передать его вместе с MatLab?
Возможно, имеется возможность обрабатывать этот массив, например. одиночные значения uint8_t (если путь остается с данным примером) и передать их как в обычной функции matlab?
[a,b,c] = function()
Я открыт для любых предложений, спасибо вам большое заблаговременно.
Ссылка на соответствующую документацию Matlab: http://de.mathworks.com/help/simulink/sfg/integrating-existing-c-functions-into-simulink-models-with-the-legacy-code-tool .html – RaEyE