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

Pushbutton gedrückt halten

 

Peter Quint
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 28.02.2011, 10:39     Titel: Pushbutton gedrückt halten
  Antworten mit Zitat      
Gutne Morgen,
ich möchte einen Schrittmotor über serielle Schnittstelle so lange Daten senden wie die Pushbotton-Taste gedrückt ist.

Die Callback-Fct funktioniert leider nur beim Klicken&loslassen , die ButtonDownFct beim klicken mit der rechten Mausstate (ausser man setzt Enable auf inaktiv oder off... was mir so nichts nützt).

Kennt jemand einen Trick? Im Forum habe ich gelesen, dass man einen java-Button nutzen soll, aber ich weiß leider nicht wie ich diesen in meine GUI einbauen kann (nutze guide).

Lieben Gruß
Peter
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 28.02.2011, 21:10     Titel:
  Antworten mit Zitat      
Hi,

schau mal hier. Ich denke, dass es dir helfen könnte...

http://www.gomatlab.de/pushbutton-p.....highlight,push++talk.html

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter Quint
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 01.03.2011, 09:56     Titel:
  Antworten mit Zitat      
Hallo Marco,
danke für Deine Antwort. Ich hatte mir den Artikel schon zu Gemüte geführt, aber dieserbringt mich leider nicht weiter:

Ich habe mittels guide schon eine GUI erstellt und weiß daher nicht, wie man den Button in ein "javax.swing.JButton" ändert.

Im Beispielcode werden zwei Callbacks (Maus gedrückt, Maus losgelassen) genuzt. (Ich weiß auch nicht, wie ich diese Callbacks in eine vorhandene GUIDE-Figure einbetten kann).

Das nächste Problem:
ich möchte, dass beim Tastendruck folgendes passiert:
(Auszug, pseudocode)
Code:

Button_gedrückt_callback(..)
  while true
    sendeAnRoboter('bewege AchseX um 1°') (über serielle Schnittstelle)
  if Masutaste_losgelassen
    break;
  end if

  pause(0.2);
  end while
end callback
 


Edit: Man kann sich das Prinzip wie die Fernbedieung eines ferngesteuertem Spielzeug-Autos vorstellen
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 01.03.2011, 12:31     Titel:
  Antworten mit Zitat      
Hey Peter,
wenn du das mit java lösen möchtest, dann könntest du z.B. beim MFE findjobj runterladen und dann

Code:

d = uicontrol('Style','pushbutton','String','Hallo')
c = findjobj(d);
get(c)
 


mal ausprobieren. Es würden dir dann folgende cbs angezeigt.

MouseWheelMovedCallback: []
MouseWheelMovedCallbackData: []
MouseClickedCallback: []
MouseClickedCallbackData: []
MouseEnteredCallback: []
MouseEnteredCallbackData: []
MouseExitedCallback: []
MouseExitedCallbackData: []
MousePressedCallback: []
MousePressedCallbackData: []
MouseReleasedCallback: []
MouseReleasedCallbackData: []
StateChangedCallback: []
StateChangedCallbackData: []
ComponentHiddenCallback: []
ComponentHiddenCallbackData: []
ComponentMovedCallback: []
ComponentMovedCallbackData: []
ComponentResizedCallback: []
ComponentResizedCallbackData: []
ComponentShownCallback: []
ComponentShownCallbackData: []
MouseDraggedCallback: []
MouseDraggedCallbackData: []
MouseMovedCallback: []
MouseMovedCallbackData: []
ComponentAddedCallback: []
ComponentAddedCallbackData: []
ComponentRemovedCallback: []
ComponentRemovedCallbackData: []
ItemStateChangedCallback: []
ItemStateChangedCallbackData: []
ActionPerformedCallback: []
ActionPerformedCallbackData: []
AncestorResizedCallback: []
AncestorResizedCallbackData: []
FocusGainedCallback: []
FocusGainedCallbackData: []
FocusLostCallback: []
FocusLostCallbackData: []
HierarchyChangedCallback: []
HierarchyChangedCallbackData: []
CaretPositionChangedCallback: []
CaretPositionChangedCallbackData: []
InputMethodTextChangedCallback: []
InputMethodTextChangedCallbackData: []
PropertyChangeCallback: []
PropertyChangeCallbackData: []
AncestorMovedCallback: []
AncestorMovedCallbackData: []
AncestorAddedCallback: []
AncestorAddedCallbackData: []
AncestorRemovedCallback: []
AncestorRemovedCallbackData: []
KeyPressedCallback: []
KeyPressedCallbackData: []
KeyReleasedCallback: []
KeyReleasedCallbackData: []
KeyTypedCallback: []
KeyTypedCallbackData: []
VetoableChangeCallback: []
VetoableChangeCallbackData: []

Welche du dann genau nehmen musst weiß ich gerade auch nicht aus dem Kopf. Manche werden beim Knopfdruck öfter ausgeführt glaube ich zumindest. Du kannst ja mal einige ausprobieren. Zudem könntest du den MouseReleasedCallback benutzen um zu wissen wann die Akton aufhören soll.
Zuweisen von cbs wie in Matlab bekannt
Code:

set(c,'MouseReleasedCallback',@DeinCB)

function DeinCB(obj,evd)
 

Wenn du selbst welche erstellen möchtest kannst du uicomponent (MFE) benutzen oder z.B. javaObjectEDT('javax.swing.JButton','Dies ist ein Pb');

Zitat:

Ich habe mittels guide schon eine GUI erstellt und weiß daher nicht, wie man den Button in ein "javax.swing.JButton" ändert.

Eigentlich sind viele Matlab Objekte Javaobjekte. Dementsprechend kann man sie auch im vollen Umfang nutzen. Dieses beruht allerdings auf undokumentierten Matlabfunktionen welche in zukünftigen releases zu Fehlern führen könnte...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
faceman
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 27.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2011, 17:01     Titel: ohne java
  Antworten mit Zitat      
hallo, ich habe so ein ähnliches problem. bin dabei ein roboterarm über eine serielle schnittstelle zu steuern. eine GUI habe ich auch schon erstellt, es funktioniert auch alles, nur möchte ich, dass sich der roboter bewegt wenn ich den button gedrückt halt. lasse ich den button los, soll er nix mehr machen. ich habe leider keine ahnung was java angeht, kenne nur einige sachen in delphi und da konnte man sowas wie button1.press oder so sagen, dann wird nur was ablaufen wenn der button gedrückt wird. gibt es in matlab im guide sowas ähnliches?
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 15.06.2011, 09:01     Titel:
  Antworten mit Zitat      
Hey,

nur mit Matlab gibt es lediglich die Möglichkeit wie im oberen Link beschrieben mit der 'WindowButtonUpFcn' & 'WindowButtonDownFcn' dies zu lösen (also über einen Umweg).

MfG Marco
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.