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

Abfragen und ein Event auslösen oder welche Möglichkeiten.

 

MrHyde
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 05.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2014, 12:13     Titel: Abfragen und ein Event auslösen oder welche Möglichkeiten.
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem bzw. benötige eine clevere Idee von Euch.

Ich lese ein Register aus einem Oszilloskop aus um festzustellen ob das Oszilloskop neue Daten bekommen hat (getriggert hat).

Ich habe das so programmiert, dass ich in einer Schleife regelmäßig das Register auslese und mit dem letzten bestehenden Wert abgleiche.

Das ist natürlich sehr unsauber programmiert, da eine Schleife mein gesamtes Programm lähmt und ich parallel keine anderen Dinge machen kann.

Ich dachte an dieser Stelle an Events, allerdings konnte ich nicht herausfinden wie ich das mit dem addlistener() anstellen könnte, da offenbar eine Objekt eigenständig ein Event feuern muss.

Für mein Problem müsste eigentlich nur "etwas" im Hintergrund ständig das besagte Register abfragen und eine Funktion starten wenn es eine Wertänderung gibt.

Könnt Ihr mir hier einen Tipp geben?

Viele Grüße
MrHyde
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2014, 12:29     Titel:
  Antworten mit Zitat      
Wie ist das Oszilloskop denn angeschlossen? RS232? Ethernet?

Und holst Du die Daten aktiv da raus, indem Du einen Befehl hinschickst und das Gerät antwortet oder meldet sich das Ding von selbst?

Im ersten Fall wäre ein Timer vielleicht das richtige für Dich. Der würde dann alle x Sekunden eine Funktion aufrufen, in der Du abfragst, ob neue Daten vorliegen.

Im zweiten Fall hast Du (je nach Verbindungsart) die Möglichkeit, eine Funktion aufzurufen, wenn eine bestimmte Zeichenfolge empfangen wurde.
Private Nachricht senden Benutzer-Profile anzeigen
 
MrHyde
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 05.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2014, 15:51     Titel:
  Antworten mit Zitat      
Hallo Epfi!
Das Oszilloskop ist über USB angeschlossen.
Im Moment schicke ich einen Befehl hin um die Daten zu bekommen.
Mit dem Timer hatte ich auch schon herumexperimentiert, aber dort hat mich auch etwas gestört, dass er meinen Programmablauf unterbricht. Gibt es eine Möglichkeit einen Timer im Hintergrund ablaufen zu lassen. Z.B. auf anderen Cores, so dass nicht das gesamte Programm unterbrochen wird?

Es war mir überhaupt nicht klar, dass es u.U. eine Möglichkeit gibt, dasss das Oszi sich von selbst meldet. Embarassed

Wie sieht das denn von der Programmseite aus? Muss ich hier ebenfalls regelmäßig die von dir genannte Funktion aufrufen ob eine Zeichenfolge vorliegt? Das Vorgehen ist mir hier völlig unklar.

Grüße
MrHyde
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2014, 20:06     Titel:
  Antworten mit Zitat      
Moin,

MrHyde hat Folgendes geschrieben:
Gibt es eine Möglichkeit einen Timer im Hintergrund ablaufen zu lassen. Z.B. auf anderen Cores, so dass nicht das gesamte Programm unterbrochen wird?

Möglicherweise ist auch Matlab einfach nicht das richtige für Anwendungen, die zeitkritisch sind... Aber vielleicht kannst Du mit der Parallel Computing Toolbox etwas in der Richtung erreichen.

Zitat:
Es war mir überhaupt nicht klar, dass es u.U. eine Möglichkeit gibt, dasss das Oszi sich von selbst meldet. :oops:

Das muss Dir Dein Oszi verraten, ob es das überhaupt kann. Leider hast Du nicht geschrieben, wie Du Dich verbindest.
Wenn es was gibt, was Du seitens Matlab verwenden kannst, solltest Du hier den Einstieg finden: http://www.mathworks.de/de/help/instrument/bytesavailablefcn.html - da ist sogar ein Beispiel für ein Tektronix Scope.
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.