MATLAB Answers

Serial Communication Code Error

2 views (last 30 days)
Tobias Wzl
Tobias Wzl on 24 Oct 2017
Commented: Walter Roberson on 3 Nov 2017
h=instrfindall;
for i= 1:length(h)
fopen('COM'+string(i))
end
h=instrfindall;
str=string(h.name(find(cell2mat(h.BytesAvailable))));
fclose('all');
fopen(str);
I developed this code on friday for finding out on which Port my Arduino is plugged in and it actually worked. Today I tried to implement the code into my GUI and an error is appearing.
Error: Struct contents reference from a non-struct array object.
What do I have to do, so that the error won't appear anymore?
Thank you for your help

  0 Comments

Sign in to comment.

Answers (2)

Nate
Nate on 26 Oct 2017
Hi Tobias,
Could you please provide more information?
1) Does the code still work correctly when it is not in a GUI? 2) Could you please provide the full error? I am interested in knowing which line causes the error.
Thanks, Nate

  1 Comment

Tobias Wzl
Tobias Wzl on 27 Oct 2017
No unfortunately not, but in first place it worked in both ways I don't know what's wrong now.
If run the code separate outside of a GUI the error appears in line 6:
*Struct contents reference from a non-struct array object.
Error in Untitled (line 6) str=string(h.name(find(cell2mat(h.BytesAvailable))));*

Sign in to comment.


Walter Roberson
Walter Roberson on 27 Oct 2017
You would get that error if instrfindall returns empty.

  8 Comments

Show 5 older comments
Walter Roberson
Walter Roberson on 27 Oct 2017
What is returned if you execute
com.mathworks.toolbox.instrument.Instrument.jinstrfindall
Also, try
instrreset
Tobias Wzl
Tobias Wzl on 3 Nov 2017
if I execute the first command an empty answer appears --> ans=[]
if I execute the second command Matlab tells me that the function is undefined
And sorry for the late answer I was ill for the last whole week
Walter Roberson
Walter Roberson on 3 Nov 2017
Hmmm, instrreset has been around in Instrument Control Toolbox since before R2006a; https://www.mathworks.com/help/instrument/instrreset.html
Anyhow, I do not know why your devices cannot be seen, unless perhaps the system considers them to already be in use for something else. Perhaps this link will help: http://www.intech.co.nz/downloads/help/mscanv5/faq_84.htm

Sign in to comment.


Translated by