when to use coder.ceval and Legacy code tool ?

3 views (last 30 days)
Hello,
I am having the interface definitions in c++ files and I would like to use that interfaces in Matlab simulink. So, please suggest whether better to use coder.ceval or legacy code tool ? and how the both are different from each other.

Accepted Answer

Raunak Gupta
Raunak Gupta on 30 Sep 2019
Solution:
Hi,
The Legacy Code Tool is generally used for integrating the C or C++ function into Simulink. The functions are generally S-functions which need to be inserted as a Simulink Block in the model. Whereas using coder.ceval and other equivalent commands we can call external C/C++ functions into MATLAB environment. For this Code Generation is used while calling the C/C++ function. It is suggested to use Legacy Code Tool while working with Simulink Models and if working on Building interface between C/C++ code to MATLAB, coder.ceval can be used.
For more info about interfacing C/C++ function into MATLAB you may refer to the following:
  1 Comment
CHV
CHV on 30 Sep 2019
Edited: CHV on 30 Sep 2019
Hi,
Thanks for your answer.
I am using coder.ceval to call the C functions in matlab. Just I would like to know how to accesss the enum from the c functions. when I am trying to call the enum as shown below it is throwin the below error. Could you please provide me the solution for this.
Cannot assign 'a' from 'coder.ceval' because the type and size of 'a' are not known. To fix, preinitialize 'a'.
**********external c header file**********
typedef enum {
DISABLED = 0,
ENABLED = 1,
ERROR = 11,
UNDEFINED = 10,
}State;
*************Matlab function***************
function a = b
a = coder.ceval('FindState');

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!