WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem mit Callback Funktion

 

damator

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 11:56     Titel: Problem mit Callback Funktion
  Antworten mit Zitat      
Hallo,
habe ein Problem, dass die Werte immer in ein neues Figure geschrieben werden, wenn das "start_button_Callback" von der "GUI_head_OpeningFcn" aus aufgerufen wird.

Stattdessen sollen sie in der "GUI_head" in ein vorhandenes Diagramm geschrieben werden. Dies funktioniert auch allerdings nur, wenn ich die "start_button_Callback" Funktion durch Druck auf den Start Button öffne. Unten sind die beiden Matlab Funktionen der GUI.

Habt ihr eine Ahnung woran das liegen könnte? Muss evt. die "GUI_head_OpeningFcn" beim ersten Mal Starten vollständig ausgeführt werden? Wenn ja wie lässt sich das umgehen?

Außerdem habe ich noch eine andere Frage. Ist es prinzipiell möglich auf Callback Funktionen auch außerdhalb des jeweiligen GUI-Files zuzugreifen, also z.B. damit den Druck auf einen Button zu simulieren?


Code:
function GUI_head_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

if not(isempty(getappdata(0, 'Config')))
    Config = getappdata(0, 'Config');
else
    Config.Start = 0;
end

if not(Config.Start == 1)
    if exist('prev_data.mat', 'file')
        %gespeicherte Daten einlesen
        load prev_data.mat;
        setappdata(0, 'SensWerte', SensWerte);
        setappdata(0, 'Settings', Settings);
        setappdata(0, 'Aktiv_Werte', Aktiv_Werte);
        if Settings{1}.autostart == 1 %#ok<USENS>
            start_button_Callback(hObject,eventdata,handles);
        end
    end
end
 


Code:
function start_button_Callback(hObject, eventdata, handles)
% hObject handle to start_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%start flag = 1!
Config = getappdata(0, 'Config');
Config.Start = 1;
setappdata(0, 'Config', Config);

%sicherstellen, dass neue Linien gezeichnet werden
del_handlesTemp=get(handles.PlotTemp, 'children');
if isempty(del_handlesTemp)
else
    delete(del_handlesTemp);
end

del_handlesVolt=get(handles.PlotVolt, 'children');
if isempty(del_handlesVolt)
else
    delete(del_handlesVolt);
end

%handles von GUI_head holen...
handles = guidata(GUI_head);

Configuration; %Startet Abtastung usw.

%handles nochmal aktualisieren...
handles = guidata(GUI_head);

Plot_Nr = 1; %Anzahl linien...

handles.plotHandle = zeros(Plot_Nr,1);

set(GUI_head,'CurrentAxes',handles.PlotTemp);
c_map = colormap(handles.PlotTemp,jet(Sens_Nr));
for m = 1:Sens_Nr
     set(GUI_head,'CurrentAxes',handles.PlotTemp);
     handles.plotHandle(m) = line(0,0,'Marker','.','LineWidth',1,'Color',c_map(m,:));
     set(handles.plotHandle(m), 'DisplayName', SensWerte{m}.bezeichnung);
     hold on;
end  
set(GUI_head,'CurrentAxes',handles.PlotVolt);
del_handlesLegendVolt = legend('show');
if isempty(del_handlesLegendVolt)
    disp('emptyVolt');
else
    delete(del_handlesLegendVolt);
    disp('fullVolt');
end
legend('show');

set(GUI_head,'CurrentAxes',handles.PlotTemp);
del_handlesLegendTemp = legend('show');
if isempty(del_handlesLegendTemp)
    disp('emptyTemp')
else
    delete(del_handlesLegendTemp);
    disp('fullTemp');
end
legend('show');
 


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.