|
|
Prüfen, ob COM Schnittstelle bereits geöffnet ist |
|
FelixF |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 22.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2013, 11:38
Titel: Prüfen, ob COM Schnittstelle bereits geöffnet ist
|
 |
Hallo all beisammen,
ich habe ein GUI welches einen Motor steuert. Der Datenaustausch erfolgt über einen COM-Port.
Die Verbindung funktioniert problemlos, die Daten werden auch übertragen. Allerdings habe ich das Problem, dass ich manchmal die Fehlermeldung bekommen, dass der Port noch offen sei, obwohl ich ihn eigentlich geschlossen habe.
Daher meine Frage, ob es möglich ist, zu überprüfen, dass der Port noch offen ist bzw. schon geschlossen ist. Wenn ja, wie kann ich das anstellen?
Grüße und ein Dankeschön
Felix
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.09.2013, 10:09
Titel:
|
 |
Hallo,
mit welchen Befehlen öffnest / schließt du den Port denn?
Zitat: |
dass der Port noch offen sei, obwohl ich ihn eigentlich geschlossen habe. |
Dann eben vermutlich nur "eigentlich" ;) Versuch doch mal, Schritte zu finden, die das Verhalten klar reproduzieren. Dann setz mal einen Haltepunkt an die Stelle, an der der Port geschlossen wird, und führe diese Schritte nochmal aus. Vielleicht wird der Haltepunkt gar nicht erreicht, und dann müsstest sehen, warum der Programmablauf nicht so ist wie von dir gedacht.
Grüße,
Harald
|
|
|
FelixF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 22.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.09.2013, 22:21
Titel:
|
 |
Danke für deinen Hinweis mit den Haltepunkten. Ich bin erst neu in Matlab eingestiegen und kannte sowas mit Haltepunkten aus PHP noch nicht. So habe ich gesehen, dass eine if-Bedingung nicht gegriffen hatte, wo ich dachte, dass sie greift.
Auf den Port greife ich wie folgt zu (auf das aller wesentliche verkürzt)
Ich habe außerdem noch eine Methode gefunden, wie ich prüfen kann, ob der Port geöffnet ist.
...liefert mit 'on' bzw. 'off' zurück. Nur weiß ich jetzt leider nicht, ob das allgemein gülitg ist, oder nur speziell auf meinen Fall passt.
Grüße Felix
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.09.2013, 22:33
Titel:
|
 |
Hallo,
http://www.mathworks.com/help/matlab/matlab_external/status.html
Ich hätte an sich erwartet, dass es 'open' oder 'closed' zurückgibt.
Geschlossen wird der Port vermutlich mit fclose? Vielleicht kannst du die Sache mit der if-Abfrage korrigieren.
Im Zweifelsfall kannst du auch eine CloseRequestFcn machen, in der in einem try-catch versucht wird, den Port zu schließen. Wenn das nicht klappt, weil er schon geschlossen ist, macht's dann auch nichts.
Grüße,
Harald
|
|
|
FelixF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 22.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.09.2013, 13:15
Titel:
|
 |
Ich habe Unsinn erzählt! Natürlich bekomme ich open und closed als Rückgabewert zurück.
Ja genau, schließen tue ich es mit fclose.
Ich habe es jetzt hinbekommen, dass Problem durch eine if Bedingung und Abfrage des Status den Port zu überprüfen.
Mit der CloseRequestFcn werde ich mich noch einmal genauer auseinander setzen, wenn ich Matlab ein bisschen besser verstanden habe
Danke
|
|
|
|
|
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 - 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.
|
|