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

Robot Arm - Wert an Funktion übergeben

 

whitecrane19
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 25.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2016, 15:32     Titel: Robot Arm - Wert an Funktion übergeben
  Antworten mit Zitat      
Hallo Zusammen,

ich habe eine GUI, in der ich für ein Kamera-Robotersystem eine Farbe wählen kann: Rot, Grün und Blau.

In der folgenden Funktion wird der selektierte Wert des Dropdown-Menüs dann zurückgegeben und per switch geprüft, welcher gewählt wurde: ROT, GRÜN oder BLAU.

Code:
function O_Farbauswahl_Callback(hObject, eventdata, handles)
% Deklaration der globalen Variablen
global O_Farbwahl O_selColor O_Farbfilterbild O_Anzahl_Objekte O_Image_Farbmittelwertbild Daten

% Gibt den im Dropdown Menü selektierten Wert zurück.
contents = cellstr(get(hObject,'String'));
O_Farbwahl = contents{get(hObject,'Value')}

% Falls Objekt nicht greifbar und Farbe schon gewähl
if (strcmp(O_Farbwahl,'Rot'))
    O_selColor(:,:,1) = 0.784
    O_selColor(:,:,2) = 0.447
    O_selColor(:,:,3) = 0.373
elseif (strcmp(O_Farbwahl,'Grün'))
       O_selColor(:,:,1) = 0.286
    O_selColor(:,:,2) = 0.466
    O_selColor(:,:,3) = 0.290
elseif (strcmp(O_Farbwahl,'Blau'))
    O_selColor(:,:,1) = 0.325
    O_selColor(:,:,2) = 0.483
    O_selColor(:,:,3) = 0.722

else
    % Auswertung der Auswahl
switch O_Farbwahl
  % Vorgabe der Vergleichsfarbwerte
  case 'Rot'
    O_selColor(:,:,1) = 0.784
    O_selColor(:,:,2) = 0.447
    O_selColor(:,:,3) = 0.373
  case 'Grün'
    O_selColor(:,:,1) = 0.286
    O_selColor(:,:,2) = 0.466
    O_selColor(:,:,3) = 0.290
  case 'Blau'
    O_selColor(:,:,1) = 0.325
    O_selColor(:,:,2) = 0.483
    O_selColor(:,:,3) = 0.722
end
end


In meinem Hauptcode wird, falls beispielsweise ein Objekt der Farbe blau nicht gegriffen wurde, ein Screenshot erstellt und geprüft, ob das Objekt noch auf dem Tisch liegt. Liegt das Objekt auf dem Tisch und ist die Farbe (O_Farbwahl) immer noch dieselbe, dann die obere FUnktion aufrufen und die entsprechenden Farbe anwählen.
Code:

           if ((strcmp(O_Farbwahl,'Blau'))&&(n_fail~=0))
             %set(handles.O_Farbauswahl,'value',4)
              O_Farbauswahl_Callback(hObject, eventdata, handles)
           end
 


Das Problem ist, dass meine Farbe vor dem Aufruf von "O_Farbauswahl_Callback(hObject, eventdata, handles)" logischerweise immer noch BLAU ist, da ich diese zuvor im Dropdown-Menü gewählt habe. Sobald ich obere Funktion aber aufrufe, wird die Farbe BLAU wieder auf NULL gesetzt, da darin ja der selektierte Wert des Dropdown-Menüs abgefragt wird. Dieser ist jedoch NULL, da ich ja die Farbe nicht erneut wählen möchte. Kann ich beim Aufruf von O_Farbauswahl_Callback(hObject, eventdata, handles) in meinem Hauptprogramm initialisieren, ohne irgendwie den Wert des Dropdown-Menüs nochmal wählen zu müssen?


Ich habe sowas wie set(handles.O_Farbauswahl,'value',WERT) gemacht, aber das funktioniert nicht wirklich.
Private Nachricht senden Benutzer-Profile anzeigen


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.