simulink: custum code not detecting header file.

8 views (last 30 days)
I created a matlab function and converted it to c++ code using the matlab coder(matlab function below:).
function [s1, s2] = factorGraphTest() %#codegen
G = factorGraph;
fctr = factorTwoPoseSE2([1 2], Measurement=[1 1 0]);
addFactor(G,fctr);
fixNode(G,1,true);
optns = factorGraphSolverOptions(MaxIterations=1000,VerbosityLevel=2);
optimize(G,optns);
s1 = nodeState(G,1);
s2 = nodeState(G,2);
end
My intention is to then call this function in simulink on hardware. I made sure to add the relevent files in the in the custom code section of the configuration parameters:
Include headers:
#include "factorGraphTest.h"
Include directories:
"C:\Program Files\MATLAB\R2022b\extern\include\" C:\Users\Blue\Desktop\debug\build\initalizationScripts\onlineSLAM\codegen\lib\factorGraphTest\
Source files:
factorGraphTest.cpp
However I'm receiving the following error when validating the custom code:
What's strange is that this file is located at "C:\Program Files\MATLAB\R2022b\extern\include\ceres\" and simulink should be able to find the file based on the infomation provided in the Include Dirctories. Is there an addtional step I might have failed to consider?
  1 Comment
Sarvesh Kale
Sarvesh Kale on 19 Apr 2023
Edited: Sarvesh Kale on 19 Apr 2023
Hi Daniel Delannes-molka,
I can suggest a workaround for this, follow the following steps, if you want your generated code to run on hardware
  1. generate code for simulink model targetting a hardware.
  2. after the code generation, an model_ert_rtw folder must be generated, inside that folder copy paste your source file and header file, in your case factorGraphTest.cpp and factorGraphTest.h, also their dependencies
  3. Once the files are copy pasted in the folder, you have to edit the model.c generated file, at the top of file do your file inclusion and Cpp file inclusion and in the step function call your function factorGraphTest in places you wish
  4. compile the source code using gmake on matlab command line, make sure you are in the ert_rtw folder where the code is modified, !gmake -f model.mk clean followed by !gmake -f model.mk
  5. if everything compiles then the hex file will be generated one level up from your ert_rtw folder
I hope this help, make sure to include both your factorGraphTest.c and factorGraphTest.h file otherwise the liker will throw an error
Thank you
Sarvesh kale

Sign in to comment.

Answers (0)

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!