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

Über MEX auf Variable in GUI zugreifen

 

hotelbravo
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 14.03.11
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 08.06.2011, 12:13     Titel: Über MEX auf Variable in GUI zugreifen
  Antworten mit Zitat      
Hallo zusammen,

ich hoffe mir kann hier an dieser Stelle eine Koryphäe weiter helfen!

Es geht darum, dass in einem GUI "cam_prev" Frames von einer Kamera angezeigt werden. Die Bilder von der Kamera erhält man durch einen MEX-File-Aufruf.

In der GUI selbst wurden - um das Videobild starten und stoppen zu können - Start- sowie Stop-Callback-Button integriert.

Für die beiden Buttons wurden zusätzlich noch eine Variable deklariert:
start-Button: handles.k = 1
stop-Button: handles.k = 0

Die Variable ist wichtig, um die Schleife in der Mex-File beenden zu können, sodass das Preview von der Kamera beendet wird.

Das Problem ist nun jedoch folgendes:
Wie kann man in dem Mex-File auf die Variable handles.k aus der GUI "cam_prev" zugreifen? Also ohne die Variable jetzt in den Workspace laden zu müssen?


Vorab schon mal ganz vielen Dank an die Unterstützer/ Helfer !!!
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.06.2011, 16:09     Titel: Re: Über MEX auf Variable in GUI zugreifen
  Antworten mit Zitat      
Hallo hotelbravo,

"handles.k" ist eine ausgesprochen umständliche Methode zum Speichern einer Variablen, die aus einem MEX-File ausgelesen werden soll. Deutlich einfacher wäre es, das Flag in den UserData des Buttons zu speichern und den Button-handle an das Mex zu übergeben.

Dann würde dies im Mex reichen:
Code:
% Let Matlab process the event queue:
mxArray *UserData;
mexCallMATLAB(0, NULL, 0, NULL, "drawnow");
UserData = mxGet(Button_Handle, "UserData");
if (mxGetScalar(UserData) == 1) { ...
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hotelbravo
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 14.03.11
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 09.06.2011, 09:38     Titel:
  Antworten mit Zitat      
Hallo Jan,

erstmal vielen Dank für deinen Tipp! Werde ich dann möglichst bald ausprobieren und Dir dann mitteilen, ob es geklappt hat!

Merci!
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 09.06.2011, 11:45 Uhr von _Peter_
Von Programmierung nach GUIs
 
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.