У меня есть функция Mex, которая перенаправляет определенные сообщения и типы сообщений (1,2,3) из C в функцию Matlab 'fruit_getpar.m'.Эта функция Matlab 'fruit_getpar.m' извлекает параметры из строки сообщения и сохраняет ее как переменные.Сообщения C генерируются в случайных случаях.Проблема: иногда происходит сбой Matlab при создании сообщений C, хотя структура этого сообщения всегда одна и та же.
какие-либо подсказки?
#include "mex.h"
#include "fruit_matlab.h"
#include "string.h"
// Callback function
void fruit_mexCallback(char *message, double message_type){
mxArray *lhs[2];
char sType[5];
if (message == NULL || message_type <= 0)
return;
if (strstr(message, "apple") == NULL && strstr(message, "banana") == NULL && strstr(message, "orange") == NULL) {
itoa((int)message_type, sType, 10);
lhs[0] = mxCreateString(message);
lhs[1] = mxCreateString(sType);
mexCallMATLAB(0, NULL, 2, lhs, "fruit_getpar");
mxDestroyArray(lhs[0]);
mxDestroyArray(lhs[1]);
}
return;
}
// MEX Gateway
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
//pointer to callback function
void (*cbPtr)() = NULL;
cbPtr = fruit_mexCallback;
Register_Callback(cbPtr);
}