What is the correct way to close a serialport connection in App Designer?

83 views (last 30 days)
As per the the serialport documentation, the way to create and delete a serial connection should be
s = serialport(device,baudrate);
clear s;
However, in app designer, I want multiple functions to be able to read/write to the port, so I have made s a property of the app. You can't clear an app property thought. So what is the correct way free app.s so it can be reconnected to the same device later?
Failing to clear s gives the usual error of "Unable to connect". Setting app.s to some other value, and then creating a new serialport object doesn't close the old connection (i suppose it overwrites the location of the serialport object).

Answers (3)

Jingyi Zhou
Jingyi Zhou on 17 Jun 2020
I find a solution for this question.
First, I add a public property for this app. It is called Serial_Port, used to save the serialport objet.
properties (Access = public)
Serial_Port % Description
end
then, when I want to open a serial
app.Serial_Port = serialport(app.DropDown_SerialPort.Value,str2double(app.DropDown_Baudrate.Value));
when I want to close this serialport,
app.Serial_Port = [];
And because this property is public, this open and close command don't have to be in the same function.
Hope can help you~

Dominik Mair
Dominik Mair on 27 Oct 2020
Hi!
I used a "dirty" workaround with the old guis. Maybe something similar works with apps:
In an old project i used following containing my serialport object:
handles.ACTIVECOMPORT
If i want to reset it i used:
temp=handles.ACTIVECOMPORT;
handles.ACTIVECOMPORT=[];
delete(temp)

Harsha Priya Daggubati
Harsha Priya Daggubati on 27 Mar 2020
Edited: Harsha Priya Daggubati on 27 Mar 2020
Hi,
I guess you can set app.s to an empty value, after all the intended work is done.
Link to a similar question:
Hope this helps!
  1 Comment
Nolan King
Nolan King on 30 Mar 2020
Unfortunatly that doesn't close the serial connection, which is the point of clearing the variable.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!