Neglection of [outport]variable generated for bus assignment block
조회 수: 5 (최근 30일)
이전 댓글 표시

My intention is to generate th code as mentioned below
void computeArea() {
rectangle.area = rectangle.length * rectangle.width;
}
답변 (2개)
Akshat Dalal
2025년 1월 30일
편집: Akshat Dalal
2025년 1월 30일
Hi Gowtham,
As per the image you attached and some guesswork, this could be because you're using virtual buses throughout the model. Virtual buses are just an graphical affordance to avoid cluttering the model and make it look cleaner. However, internally the member variables are considered as separate entities. You will have to use a non-virtual bus which actually treats the different variables as a single entity. You may refer the following documentations for more information:
- https://www.mathworks.com/help/simulink/ug/getting-started-with-buses.html
- https://www.mathworks.com/help/simulink/ug/create-nonvirtual-buses.html
Thanks
Akshat
댓글 수: 0
Shivam Gothi
2025년 1월 30일
편집: Shivam Gothi
2025년 1월 30일
As I do not have the simulink model, I tried to make a simple simulink model to reproduce the issue as shown below. I am also attaching it with this answer.

I was able to generate code that was of format:
void computeArea() {
rectangle.area = rectangle.length * rectangle.width;
}
You just need to do some optimisation setting under "Model Configurations -> Code Generation -> Optimisation:". I have done the following optimisation settings:
CASE-1: buid code for Generic real time (.grt)
below given are the optimisation settings:


The screen-shot of generated code is:

CASE-2: Build code for embedded real time (.ert)
below given are the optimisation settings:



The screenshot of generated code is:

I hope you find this useful !
참고 항목
카테고리
Help Center 및 File Exchange에서 Naming Conventions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
