Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: C++, MFC, Interrupt?
AUTOR BEITRAG
GumbyMan *Mein Gesicht denkt zu laut*

RANG Deckschrubber

#1 - 29.05 22:12

Hi zusammen,


mir ist kein besserer Tital für den Thread eingefallen

Zu meinem Problem:

Ich realisiere eine Kommunikation zwischen dem PC und einem Microcontroller über RS232. Von der µC seite ist das auch gar kein Problem, denn wenn ich ihm einen Befehl schicke, dann wird ein Interrupt ausgeführt und die entsprechende Routine abgehandelt.


Auf der PC Seite habe ich einen MFC Dialog.

Mein Problem ist, dass der µC auch Befehle an meine Software, respektive den Dialog schicken soll.

Eine Lösung wäre, in der Main-Loop des Dialoges, den ReadBuffer zyklisch abzufragen, und dementsprechend eine Funktion aufrufen.
Nur ist die Main Loop in der MFC nicht wirklich zugänglich

Eine andere Lösung wäre, einen extra Thread zu starten, der mir den ReadBuffer abfrägt, allerdings würde ich diese Methode nur als wirkliche Notlösung verwenden.

Gibt es nicht die Möglichkeit, dass ich das ganze Hardware-Interrupt ähnlich aufziehen könnte?
Schickt Windows nen Software Interrupt, wenn Daten im ReadBuffer vorhanden sind?

Mit ist gerade noch eine Lösungsalternative eingefallen:
Der MFC dialog hat ja eine OnIdle() Methode, die immer dann gestartet wird, denn dine WM_IDLE (oder so änhlich) Nachricht kommt.
Allerdings stelle ich in diesem Dialog auch einen Stream einer WebCam dar, wodurch der Dialog aber nie in seine Idle Funktion kommen sollte.

Kann mir jemand ein paar Denkanstösse für das Problem geben?

Um es nochmal kurz zu fassen:

Ich suche nach einer Möglichkeit, einem C++ Programm über die RS232 Schnittstelle bestimmte Befehle zu senden, die in einer Art Interruptroutine abgehandelt werden.

Vielen Dank!
Sascha
Crush (sexy shoeless god of war)

RANG Deckschrubber

#2 - 30.05 15:06

Wie wäre es den Buffer regelmäßig mittels eines Timers abzufragen?
http://msdn2.microsoft.com/en-us/library/ms644906.aspx

Über WM_IDLE zu gehen halte ich für eine ganz schlechte Idee, da die Anwendung unter Umständen nur sehr unregelmäßig geidlet wird.
GumbyMan *Mein Gesicht denkt zu laut*

RANG Deckschrubber

#3 - 01.06 17:42

Ey, hab zwar nen reminder auf diesen thread gelegt, aber nix angezeigt bekommen.

jo danke crush, das hab ich mittlerweile auch so realisiert