MATLAB Answers

Converting and Instrument Object Array (instrfind) into strings?

5 views (last 30 days)
Jason
Jason on 6 Jan 2020
Commented: Jason on 6 Jan 2020
Hello, Im using an edit box (GUIDE) as a message reported by utilising multi lines (by setting max property >1)
I have a function that I have created to report out important information.
I am using it for RS232 connections, and want to show in my edit box the results of instrfind:
Instrument Object Array
Index: Type: Status: Name:
1 serial closed Serial-COM3
2 serial closed Serial-COM3
3 serial closed Serial-COM3
4 serial closed Serial-COM3
5 serial open Serial-COM3
Here is my ReportMessage function:
function ReportMessage(handles,msg)
currString=get(handles.editMessage,'String');
currString=[{msg};currString]; %add to top of message box
set(handles.editMessage,'String',currString);
drawnow;
How can I convert and Instrument Object Array into strings?How can I convert and Instrument Object Array into strings?
In particular, I just want to report out any open comms ports
Thanks
Jason

  2 Comments

Guillaume
Guillaume on 6 Jan 2020
Note that as of R2019b, instrfind is not recommended, you should be using serialport instead.
There is no built-in function that directly convers an instrument object array into strings but it's trivial to write one that simply insert into strings whichever properties of the object you want to display. Therefore, what text do you want displayed?
Jason
Jason on 6 Jan 2020
Hi, thanks for this. So it would just be the coms port and its CURRENT status:
Index: Type: Status: Name:
1 serial closed Serial-COM3
2 serial closed Serial-COM3
3 serial closed Serial-COM3
4 serial closed Serial-COM3
5 serial open Serial-COM3
Thanks

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 6 Jan 2020
I don't have any serial port on this machine so can't really test for the actual property names, but it should be something like:
ports = instrfind('Type', 'serial');
descriptions = compose('%s on port %s is currently %s', string(ports.Name), string(ports.Port), string(ports.Status));

More Answers (0)

Sign in to answer this question.