Verfasst am: 13.09.2013, 12:20
Titel: Daten in GUI plotten
Hallo,
ich habe ein Problem Daten in einer grafischen Oberfläche zu plotten.
Ich habe ein Gerät, dass Puls, Herzfrequenz usw mist. Die Daten sollen dann über Bluetooth eingelesen werden und in einer grafischen Oberfläche angezeigt werden.
Code:
% --- Executes just before bioGui is made visible. function bioGui_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 bioGui (see VARARGIN)
Ich habe also immer 256 mal den Wert 0. Danach die richtigen Werte.
Der Plan war eigentlich, dass die Werte so von rechts nach links durchgeschoben werden.
Ich hatte schon etwas gefunden, dass man die handles-Struktur aktualisieren soll, aber da bekomme ich die Meldung:
"Error using guidata (line 89)
H must be the handle to a figure or figure descendent."
Habt ihr vielleicht einen Tipp für mich?
Vielen dank schonmal.
die ersten beiden Inputs von BytesAvailableFcn haben ja nichts mit der GUI zu tun. Damit weiß guidata nicht, in welcher GUI was aktualisiert werden soll.
Das Verhalten ist das gleiche: geplottet wird mit anfangs 0en und irgendwann kommen Daten.
Eine Fehlermeldung erhalte ich nicht.
Ich habe in die Funktion noch ein disp(handles) eingefügt. Und man sieht, dass die Daten nicht aktualisiert werden. Bei Start werden einmal alle Hanldes angezeigt ud dieses Bild ändert sich nicht.
Allerdings funktioniert es auch nicht und gibt auch keine Fehlermeldung.
EDIT:
Wenn ich eine andere Funktion aufrufe
Code:
function stopButton_Callback(hObject, eventdata, handles) % hObject handle to stopButton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) disp(handles);
ifstrcmp(handles.s.status,'open') fclose(handles.s);
end
Bei erstmaligen aufrufen der "serialBytesAvailableFcn" sind doch auch keine
Daten vorhanden (s. Initialisierung) -> müsstes den disp-Aufruf mal ans Ende der
Callback setzen.
Zu deinen Hauptproblem:
Wenn ichs verstanden hab dann werden die Daten zumindest beim ersten aufruf richtig
dargestellt. Zum Aktualisieren/Durchlaufen der Daten muss du die Funktion doch irgendwo
in ne Schleife packen, was aus deinen bisherigen Code-Auszügen nicht ersichtlich ist.
Müsste mal deine StartCallback posten mit dem Aufruf der "serial...Fcn"! Dann kann man
dir leichter weiterhelfen.
Gruß rek
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
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.