RS232 mit MFC mit Visual-C++ auslesen (Interrupt)
-
Hallo Forum,
ich möchte gerne die RS232 in der MFC auslesen. Nur ist das nicht zu bestimmten Zeiten, denn das auslesen ist von dem Controller abhängig.
In normalem C++ habe ich es hinbekommen, das er ständig darauf wartet.
Wie bekomme ich es nun mit MFC hin das ich sozusagen einen Interrupt auslösen kann, damit ich weiß, das ein Byte im RS232 Register ist.Mit freundlichen Grüßen
Martin
-
Mit der MFC wird ein ActiveX für den Zugriff auf die serielle Schnittstelle mitgeliefert, in der Online Hilfe nach CMSCOMM suchen. Die Anwendung findet sich im Beispiel VCTREM.
Ein weiteres Control für Schnittstellen (auch Druckerschnittstellen) findet sich unter www.jspayne.com.
Wenn Daten an der Schnittstelle ankommen wird eine Nachricht in die Nachrichtenschleife eingetragen, was dann völlig unkompliziert bearbeitet werden kann. Mit 30% Wahrscheinlichkeit ist das OCX schon auf deinem Rechner installiert, viele Professionelle Geräte arbeiten damit.
-
ansonsten mit 'WaitCommEvent'
guckst du: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/waitcommevent.asp
'WaitCommEvent' legt deinen thread solange schlafen, bis der uart einen interrupt auslöst (weil er z.b. ein zeichen empfangen hat)
-
Hallo
Ich habe mir letztens eine Bibliothek für die Ansteuerung der seriellen Schnittstelle heruntergeladen. Diese enthält eine Klasse, die eine Message sendet, sobald sich an der seriellen Schnittstelle was tut...
Funktioniert bei mir unter MFC prima... In deinem MFC Code kannst Du dann diese Messages abfangen...Zudem ist das ganze auch umfangreichend Dokumentiert...
Schau mal unter:
http://www.codeproject.com/system/serial.aspViel Spass!!
-
Hallo Martin,
ich stehe vor dem Problem, welches du anscheinend schon gelöst hast. Ich möchte die RS232 Schnittstelle permanet auslesen. In meinem Programm möchte ich diese dann als string verarbeiten. Vielleicht kannst du mir tios geben, wie man das realisiert. Mit dem Auslesen einer Schnittstelle habe ich bis heute eigentlich keine Ahnung.
Grüße
Markus