/* Include files */ #include "edibah_sfun.h" #include "c2_edibah.h" /* Type Definitions */ /* Named Constants */ /* Variable Declarations */ /* Variable Definitions */ uint8_T _sfEvent_; uint32_T _edibahMachineNumber_; real_T _sfTime_; /* Function Declarations */ /* Function Definitions */ void edibah_initializer(void) { _sfEvent_ = CALL_EVENT; } void edibah_terminator(void) { } /* SFunction Glue Code */ unsigned int sf_edibah_method_dispatcher(SimStruct *simstructPtr, const char *chartName, int_T method, void *data) { if(!strcmp_ignore_ws(chartName,"edibah/vento/Embedded MATLAB Function/ SFunction ")) { c2_edibah_method_dispatcher(simstructPtr, method, data); return 1; } return 0; } unsigned int sf_edibah_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] ) { #ifdef MATLAB_MEX_FILE char commandName[20]; if (nrhs<1 || !mxIsChar(prhs[0]) ) return 0; /* Possible call to get the checksum */ mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; if(strcmp(commandName,"sf_get_check_sum")) return 0; plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL); if(nrhs>1 && mxIsChar(prhs[1])) { mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char)); commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; if(!strcmp(commandName,"machine")) { ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3324187414U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3258396988U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3891666899U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1787654060U); }else if(!strcmp(commandName,"exportedFcn")) { ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U); }else if(!strcmp(commandName,"makefile")) { ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2945944195U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3884049298U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1586897201U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1439582548U); }else if(nrhs==3 && !strcmp(commandName,"chart")) { unsigned int chartFileNumber; chartFileNumber = (unsigned int)mxGetScalar(prhs[2]); switch(chartFileNumber) { case 2: { extern void sf_c2_edibah_get_check_sum(mxArray *plhs[]); sf_c2_edibah_get_check_sum(plhs); break; } default: ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0); } }else if(!strcmp(commandName,"target")) { ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(4125229215U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(365478573U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1351650418U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(619095777U); }else { return 0; } } else{ ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1811468845U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1481515925U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2244430382U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3963485053U); } return 1; #else return 0; #endif } unsigned int sf_edibah_autoinheritance_info( int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] ) { #ifdef MATLAB_MEX_FILE char commandName[32]; if (nrhs<2 || !mxIsChar(prhs[0]) ) return 0; /* Possible call to get the autoinheritance_info */ mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; if(strcmp(commandName,"get_autoinheritance_info")) return 0; { unsigned int chartFileNumber; chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); switch(chartFileNumber) { case 2: { extern mxArray *sf_c2_edibah_get_autoinheritance_info(void); plhs[0] = sf_c2_edibah_get_autoinheritance_info(); break; } default: plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); } } return 1; #else return 0; #endif } void edibah_debug_initialize(void) { _edibahMachineNumber_ = sf_debug_initialize_machine("edibah","sfun",0,1,0,0,0); sf_debug_set_machine_event_thresholds(_edibahMachineNumber_,0,0); sf_debug_set_machine_data_thresholds(_edibahMachineNumber_,0); }