Guten Abend...! Für eine Anwendung mit einem WinCE Betriebssystem benötige ich eine grafische Oberfläche und eine serielle Schnittstelle für Ein- und Ausgabe Parameter. Jetzt möchte ich gerne die serielle Schnittstelle im Hintergrund laufen lassen und diese autark von meiner grafischen Oberfläche betreiben. Jetzt meine Frage: Was ist die beste Lösung den Kommunikationsweg zwischen der seriellen Schnittstelle und der grafischen Oberfläche miteinander zu verknüpfen? Ich möchte gerne zwei unabhängige "Programmteile" haben! In anderen Programmiersprachen wie Linux kann man eine "Named Pipe" verwenden. Da ich aber noch kaum Erfahrung mit WinCE habe, wäre es gut wenn mir jemand das nötige Background Wissen vermittelt. Besten Dank im Voraus !
Der Thread ist dein Freund. Und dann über Messages oder Events untereinander kommunizieren.
Unter WinCE gibt es das Prinzip der Point-To-Point Message Queues. Es eignet sich dazu, verschiedene Prozesse miteinander kommunizieren zu lassen. ...Das ist nicht erforderlich, wenn man RS232 Daten einlesen und auf einem Display ausgeben möchte. Du könntest Folgendes in Erwägung ziehen: 1. Serielle Schnittstelle mit CreateFile öffnen 2. Mit FileIoControl Baudrate, Timeouts usw. setzen 3. einen Thread starten (CreateThread) 4. Im Thread
1 | while (notTerminating) |
2 | {
|
3 | //...
|
4 | ReadFile
|
5 | //...
|
6 | }
|
aufrufen. ReadFile kehrt immer zurück, wenn Daten auf dem Com Port ankommen. Nun könntest du dem Rest der Applikation signalisieren, dass Daten angekommen sind - entweder per Event, per Message oder per Callback. Für kleinere Applikationen würde ich persönlich einen Callback nehmen und die entsprechenden Datenstrukturen per CriticalSection schützen. Tip: Besondere Sorgfalt ist beim Beenden der Applikation notwendig. ReadFile zurückkehren lassen, Thread beenden, warten bis Thread tatsächlich beendet ist, Com Port schließen.
Hallo ! Danke für Eure Einträge. Ich werde jetzt versuchen eure Vorschläge erfolgreich umzusetzen. Sollte jemand noch weitere Beiträge zu diesem Thema haben, würde es mich freuen wenn er diese noch mit in Forum schreibt. Besten Dank im Voraus !
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.