|
|
handles in Funktion speichern geht nicht. BytesAvailableFcn |
|
Alex__Matlab |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 14.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 16:52
Titel: handles in Funktion speichern geht nicht. BytesAvailableFcn
|
|
Hallo,
ich habe ein GUI "beispielGUI" mit Guide erstellt. Die GUI liest Daten von einem Arduino und visualisiert diese. Mit der BytesAvailableFcn wird durch den Dateninput eine Funktion "schleife" ausgeführt. In dieser Funktion möchte ich Daten in den struct handles speichern. In diesem Fall zum Testen einen Zähler.
Dies funktionier nicht. Bei jedem Aufruf der Funktion wird der alter Wert handles.zaehler = 0 gelesen.
Hab das Forum und das Internet durchstöbert, aber nur Lösungen dazu finden können wie man handles an die Funktionen übergibt. Das klappt bei mir.
Die relevanten Teile meines Codes habe ich hier gepostet.
In der OpeningFcn wird die Variable inialisiert und die BytesAvailableFcn definiert
Die Funktion Schleife sieht folgendermaßen aus
Errormeldungen bekomme ich nicht.
Würde mich freuen, wenn mir jemand weiterhelfen könnte.
Gruß
Alex
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.07.2015, 18:18
Titel:
|
|
Hallo,
wo genau wird handles.zaehler denn abgefragt? Meine Vermutung ist, dass du die handles-Variable zwar in der GUI aktualisierst, dir aber nicht die aktualisierte Version zurückholst.
Ein reproduzierbares Beispiel wäre hilfreich.
Grüße,
Harald
|
|
|
Alex__Matlab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 14.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 19:48
Titel:
|
|
Hallo Harald,
ein reproduzierbares Beispiel ist schwierig, da du dazu einen Arduino braucht der Daten schickt.
Jedes Mal wenn Daten gelesen werden, wird meine Funktion schleife durchlaufen. Und hier wird handles.zaehler erst aufgerufen und dann mit einem neuen Wert besetzt.
Das Problem ist das jedes Mal handles.zaehle = 0 eingelesen wird und nicht der neue Wert. Beim 2. Aufruf der Schleife also z.B. handles.zaehle = 1
Grüße
Alex
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.07.2015, 19:54
Titel:
|
|
Hallo,
meine Vermutung habe ich dir ja schon geschrieben.
Was ich versuchen würde:
und
Natürlich mangels Reproduzierbarkeit nur eine Trockenübung.
Wenn du das aber z.B. mit Timern versuchst, sollte es genau auf das gleiche herauskommen.
Grüße,
Harald
|
|
|
Alex__Matlab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 14.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 20:28
Titel:
|
|
Hallo Harald,
vielen Dank für deine schnelle Antwort. So funktioniert es.
Ich verstehe nur nicht genau was der Unterschied zwischen deinem Code und meinem ist. Wenn ich die handles in der BytesAvailableFcn übergebe und in der Funktion schleife übergebe müssten sie doch auch aktualisiert sein?
Ich habe erst vor 2 Wochen mit Matlab angefangen, daher sind mir viele Sachen noch nicht klar.
Grüße
Alex
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.07.2015, 21:05
Titel:
|
|
Hallo,
Zitat: |
Wenn ich die handles in der BytesAvailableFcn übergebe und in der Funktion schleife übergebe müssten sie doch auch aktualisiert sein? |
Nein, da handles letztlich auch nur eine lokale Variable ist.
Grüße,
Harald
|
|
|
Alex__Matlab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 14.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 22:12
Titel:
|
|
Hallo Harald,
das muss ich mir nochmal anschauen um das im Detail zu verstehen.
Danke, dass du mir so schnell geholfen hast.
Gruß
Alex
|
|
|
|
|
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 - 2024
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.
|
|