|
|
permanente Aktualisierung der im GUI angezeigten Werte |
|
Lukas___TUChemnitz |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 10.03.20
|
|
|
|
Wohnort: Chemnitz
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.03.2020, 15:15
Titel: permanente Aktualisierung der im GUI angezeigten Werte
|
|
Hi Leute, ich bin ein ziemlicher Frischling was Matlab angeht. Ich habe mir ein GUI erstellt, dass Werte anzeigt, die ich von einem Taupunktspiegel auslese. Das Programm funktioniert soweit ganz gut, nur leider habe ich Probleme bei der Automatisierung. Ich habe mich schon ein wenig umgeguckt und werde wohl eine TimerFcn benutzen müssen. Habe in der Richtung auch schon etwas rumprobiert, aber bisher leider erfolglos. Jetzt seid Ihr meine große Hoffnung.
Mein script sieht folgender Maßen aus :
Beschreibung: |
|
Download |
Dateiname: |
Feuchtesensor.m |
Dateigröße: |
3.18 KB |
Heruntergeladen: |
347 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.03.2020, 19:48
Titel:
|
|
Hallo,
Zitat: |
werde wohl eine TimerFcn benutzen müssen. |
Wäre auch mein Vorschlag
Zitat: |
Habe in der Richtung auch schon etwas rumprobiert, aber bisher leider erfolglos |
Und welche Probleme sind dabei genau aufgetreten?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Lukas___TUChemnitz |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 10.03.20
|
|
|
|
Wohnort: Chemnitz
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.03.2020, 10:18
Titel:
|
|
|
|
|
Hallo Harald,
Vielen Dank für die schnelle Antwort.
Ich hatte eine Timer Funktion erstellt und wollte mit dieser die Callbacks aktualisieren.
Das Problem ist wahrscheinlich, dass die Funktion zum einlesen in den CreateFcn's ist.
Daher habe ich auch diese mit in die Timer genommen, doch auch das hat nichts gebracht.
Mit Timer sah mein Code so aus:
function varargout = Feuchtesensor(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Feuchtesensor_OpeningFcn, ...
'gui_OutputFcn', @Feuchtesensor_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function Feuchtesensor_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Feuchtesensor (see VARARGIN)
% Choose default command line output for Feuchtesensor
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
function t = createtimer()
t = timer;
t.TimerFcn = @edit1_Callback,@edit2_Callback,@edit3_Callback;
t.Period = 5;
t.StartDelay = 1;
t.ExecutionMode = 'fixedRate';
start(t);
function varargout = Feuchtesensor_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
handles.wert1 = str2double(get(hObject,'String'));
guidata(hObject,handles);
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort = Feuchtesensortest
handles.wert1 = antwort(1,11:16);
set(hObject,'String',handles.wert1);
guidata(hObject,handles);
function edit2_Callback(hObject, eventdata, handles)
handles.wert2 = str2double(get(hObject,'String'));
guidata(hObject,handles);
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort2 =Feuchtesensortest
handles.wert2 = antwort2(1,24:29);
set(hObject,'String',handles.wert2);
guidata(hObject,handles);
function edit3_Callback(hObject, eventdata, handles)
handles.wert3 = str2double(get(hObject,'String'));
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort3 = Feuchtesensortest
handles.wert3 = antwort3(1,35:41);
set(hObject,'String',handles.wert3);
guidata(hObject,handles);
% Feuchtesensortest ist eine eigene Funktion, die so aussieht:
%
% function antwort = Feuchtesensortest
%
% portnr='COM7';
% X='send';
%
% s = serial(portnr);
% set(s,'BaudRate',9600,'DataBits', 8, 'Parity', 'none','StopBits', 1, 'FlowControl', 'none','Terminator','cr');
% fopen(s);
% fprintf(s,X);
% antwort = fgets(s);
% fclose(s);
%
%
% end
|
|
|
Lukas___TUChemnitz |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 10.03.20
|
|
|
|
Wohnort: Chemnitz
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.03.2020, 15:39
Titel:
|
|
|
|
|
UPDATE:
habe den Timer jetzt so eingebaut und dazu eine update function erzeugt.
bekomme für die sets ind der upgrade function aber den Fehler, dass es nicht genug input arguments sind. :/
function varargout = Feuchtesensor(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Feuchtesensor_OpeningFcn, ...
'gui_OutputFcn', @Feuchtesensor_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function Feuchtesensor_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Feuchtesensor (see VARARGIN)
% Choose default command line output for Feuchtesensor
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
function varargout = Feuchtesensor_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
createtimer
% Get default command line output from handles structure
varargout{1} = handles.output;
function t = createtimer(hObject, eventdata, handles)
t = timer;
t.TimerFcn = @update;
t.Period = 5;
t.StartDelay = 1;
t.ExecutionMode = 'fixedRate';
start(t);
function update(hObject, eventdata, handles)
antwort = Feuchtesensortest;
TD = antwort(1,11:16);
TDF = antwort(1,24:29);
MV = antwort(1,35:41);
% disp([TD TDF MV])
set(handles.edit1,'String',TD);
set(handles.edit2,'String',TDF);
set(handles.edit3,'String',MV)
guidata(hObject, handles);
function edit1_Callback(hObject, eventdata, handles)
handles.wert1 = str2double(get(hObject,'String'));
guidata(hObject,handles);
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort = Feuchtesensortest;
handles.wert1 = antwort(1,11:16);
set(hObject,'String',handles.wert1);
guidata(hObject,handles);
function edit2_Callback(hObject, eventdata, handles)
handles.wert2 = str2double(get(hObject,'String'));
guidata(hObject,handles);
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort2 =Feuchtesensortest;
handles.wert2 = antwort2(1,24:29);
set(hObject,'String',handles.wert2);
guidata(hObject,handles);
function edit3_Callback(hObject, eventdata, handles)
handles.wert3 = str2double(get(hObject,'String'));
guidata(hObject,handles);
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
antwort3 =Feuchtesensortest;
handles.wert3 = antwort3(1,35:41);
set(hObject,'String',handles.wert3);
guidata(hObject,handles);
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 11.03.2020, 20:29
Titel:
|
|
Hallo,
in der Zeile an sich sehe ich kein Problem. Bei der Länge des Codes ist es schwierig nachzuvollziehen, wo nun das Problem liegt. Wenn schon so langer Code, dann bräuchte man ein vollständig reproduzierbares, d.h. inkl. .fig.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Lukas___TUChemnitz |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 10.03.20
|
|
|
|
Wohnort: Chemnitz
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.03.2020, 10:56
Titel:
|
|
Habe das Problem gefunden und gelöst, irgendwie gab es ein Problem mit den Handles der Upgrade Funktion, deshalb habe ich diese umgangen, ist zwar nicht sehr schön, aber funktioniert ;D
Beschreibung: |
|
Download |
Dateiname: |
Feuchtesensor_funzt.m |
Dateigröße: |
3.84 KB |
Heruntergeladen: |
350 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|