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

80 vues (au cours des 30 derniers jours)
Nolan King
Nolan King le 9 Mar 2020
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).

Réponses (3)

Jingyi Zhou
Jingyi Zhou le 17 Juin 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 le 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 le 27 Mar 2020
Modifié(e) : Harsha Priya Daggubati le 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 commentaire
Nolan King
Nolan King le 30 Mar 2020
Unfortunatly that doesn't close the serial connection, which is the point of clearing the variable.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by