What is "The left-hand side of a . operator must be a valid scope identifier" error for? And how to solve this?

Hi,
I am trying to perform SIL testing and while executing the test cases, I get the following error:
"Error: File: C:\Program Files\MATLAB\R2018b\rtw\c\tlc\mw\capi.tlc Line: 1200 Column: 53
The left-hand side of a . operator must be a valid scope identifier"
Initially, I developed test cases for MIL environment which I could execute without any error. Now, I changed the harness for SIL testing and trying to execute the same test cases but, getting above-mentioned error.
I am testing the SW by creating the test harness, test cases were developed using unittest in MATLAB and were executed by the test manager.
Can anyone please help me with that?
Thank you,
Parin

 Accepted Answer

There were auto-code gen files (from previous build of the same SWC) in my MATLAB working project directory. I made some changes to my test harness and when I was doing SIL testing, MATLAB was referring to files from previous build rather than creating auto-code gen files from scratch. After deleting those previous files, I could resolve this error.

1 Comment

I hope MathWorks come up with the solution for this kind of issues in their new release because whenever I change my harness, I need to delete those auto-code gen files manually and then build the model for SIL.

Sign in to comment.

More Answers (2)

Notice the message about dot indexing not supported.
The most common reason for that message is that some operation returned [] when you expected it to return a struct or an object.
However it can also occur if a variable that was a struct or object was overwritten with a numeric object. It can also occur if the variable previously existed as a numeric object and the code that you expected to overwrite it with a struct or object does not do so.

9 Comments

Thank you for the response, @Walter Roberson!
If this were the case then I would have received the same error in MIL. Also, once the SIL test harness was created, I tried updating the diagram, and during the auto-code generation and compilation, it threw me the same error in Simulink (without running the test cases).
I just installed R2018b on Windows with RTW... but the named file does not exist. The structure of the installed directories does not have a folder named rtw directly under the MATLAB installation directory: instead the rtw folder is underneath a folder named toolbox in the MATLAB directory.
It is possible that the file name reflects an internal Mathworks build; if that is the case then you will need to open a case with Mathworks.
Could you check to see if you have that row\c\tic\mw directory on your machine?
@Walter Roberson Yes, I do have that file at the same location mentioned in the above snipshot.
Odd.. I wonder if you are somehow writing your project underneath the MATLAB installation directory?
Or perhaps it has to do with a support package you have installed ??
My working project directory is different than the MATLAB installation directory.
For code-generation, I am using Autosar.tlc. I have used same packages earlier but never had this kind of error.
Also, my outports(bus signal) have QueuedExplicitSend DataAccessMode. I wonder if this is causing the issue.
I see that you edited the name of the missing file. Before the directory name was tic and now it is tlc. Before the file name was capitol with no file extension; now it is capi.tlc . Those details are important.
I will have another look for the file.
Yeh, I noticed the name change I think because of autocorrect. My bad!! The snapshot has all the accurate details.
I found the file. Line 1200 is
%foreach dwkIdx = Block[blkIdx].ChartData.NumChartData
and that would fail if Block[blkIdx].ChartData is empty.
I do not see anything in the code that sets the ChartData field, so I do not know at the moment where that is coming from.
Thank you so much for your time! I will try to contact Mathworks and see if they know anything about this. I will keep this thread updated.

Sign in to comment.

I noticed this in R2019b as well, and was able to resolve it by disabling the link to some of my library blocks, and then breaking said links. I was able to rebuild and not get the issue mentioned above.

Categories

Asked:

on 6 Aug 2021

Answered:

on 5 Jan 2024

Community Treasure Hunt

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

Start Hunting!