<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ComPort - Meldung bei emfangenem Zeichen]]></title><description><![CDATA[<p>Ich habe ein Terminalprogramm geschrieben.<br />
Über eine Oberfläche können Daten gesendet werden und in einem seperaten Thread wird der ComPort ständig auf ankommende Zeichen untersucht.</p>
<p>Das Programm funktioniert korrekt, aber die Prozessorauslastung geht durch die ständige Abfrage auf 100% und der CPU Lüfter nervt in voller Lautstärke.<br />
Man kann zwar fast normal am Rechner arbeiten aber...</p>
<p>Gibt es eine Möglichkeit eine Nachricht zu erhalten wenn ein Zeichen empfangen wurde (Interrupt o.ä) sodass sich das Programm im Leerlauf befindet bis etwas eintrifft?<br />
Habe schon was mit WaitCommEvent gelesen, steige da aber nicht durch.</p>
<p>Wie wird das bei anderen Terminals gelöst?</p>
<p>Danke schonmal.<br />
P.S.: Habe den Beitrag ebend schon einmal geschrieben finde ihn aber nicht mehr. Sorry falls er nun doppelt erscheint.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150399/comport-meldung-bei-emfangenem-zeichen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 10:58:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150399.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Jun 2006 05:15:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 05:15:46 GMT]]></title><description><![CDATA[<p>Ich habe ein Terminalprogramm geschrieben.<br />
Über eine Oberfläche können Daten gesendet werden und in einem seperaten Thread wird der ComPort ständig auf ankommende Zeichen untersucht.</p>
<p>Das Programm funktioniert korrekt, aber die Prozessorauslastung geht durch die ständige Abfrage auf 100% und der CPU Lüfter nervt in voller Lautstärke.<br />
Man kann zwar fast normal am Rechner arbeiten aber...</p>
<p>Gibt es eine Möglichkeit eine Nachricht zu erhalten wenn ein Zeichen empfangen wurde (Interrupt o.ä) sodass sich das Programm im Leerlauf befindet bis etwas eintrifft?<br />
Habe schon was mit WaitCommEvent gelesen, steige da aber nicht durch.</p>
<p>Wie wird das bei anderen Terminals gelöst?</p>
<p>Danke schonmal.<br />
P.S.: Habe den Beitrag ebend schon einmal geschrieben finde ihn aber nicht mehr. Sorry falls er nun doppelt erscheint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078619</guid><dc:creator><![CDATA[Andre2]]></dc:creator><pubDate>Fri, 16 Jun 2006 05:15:46 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 05:20:21 GMT]]></title><description><![CDATA[<p>Verwende doch fertige Klassen und erfinde das Rad nicht immer neu:<br />
<a href="http://www.codeproject.com/system/serial.asp" rel="nofollow">http://www.codeproject.com/system/serial.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078620</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 16 Jun 2006 05:20:21 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 08:05:57 GMT]]></title><description><![CDATA[<p>Andre2 schrieb:</p>
<blockquote>
<p>Habe schon was mit WaitCommEvent gelesen, steige da aber nicht durch.</p>
</blockquote>
<p>du hast sicher übersehen vorher mit 'SetCommMask (dein_comm_handle, EV_RXCHAR)' rx events zu aktivieren..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078676</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 16 Jun 2006 08:05:57 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 09:02:51 GMT]]></title><description><![CDATA[<p>Danke für die Tips.<br />
Wie gesagt, durch die WaitCommEvent - Geschichte steige ich nicht so richtig durch.</p>
<p>Die CSerial im CodeProject hatte ich schon gefunden. Ist aber sehr mühsam sich das benötigte da rauszusuchen, brauche ja das Drumherum nicht.</p>
<p>Ich habe aber auf dieser Seite trotzdem MEINE Lösung gefunden:<br />
habe im Empfangsthread ein Sleep(1) eingefügt.<br />
Dachte bisher, dass die CPU dann einfach diese Zeit &quot;im Kreis läuft&quot;.<br />
In Wirklichkeit nimmt sie aber anscheinend die Zeit für andere Aufgaben.<br />
Meine Prozessorauslastung ist jetzt jedenfalls bei 0% und der Lüfter kreischt nicht mehr.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078713</guid><dc:creator><![CDATA[Andre2]]></dc:creator><pubDate>Fri, 16 Jun 2006 09:02:51 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 09:07:28 GMT]]></title><description><![CDATA[<p>Sleep(1) machen aber echt nur Frickler...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078718</guid><dc:creator><![CDATA[.........]]></dc:creator><pubDate>Fri, 16 Jun 2006 09:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 09:33:38 GMT]]></title><description><![CDATA[<p>@&quot;.....&quot;<br />
Danke für die Blumen.</p>
<p>Vorteil:<br />
- geht schnell<br />
- bringt das gewünschte Ergebnis<br />
- ist übersichtlich, einfach, wenig code</p>
<p>Nachteil:<br />
- ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078728</guid><dc:creator><![CDATA[Andre2]]></dc:creator><pubDate>Fri, 16 Jun 2006 09:33:38 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 10:09:19 GMT]]></title><description><![CDATA[<p>Nachteil:</p>
<p>Es ist eben einfach nur polling.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078744</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 16 Jun 2006 10:09:19 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort - Meldung bei emfangenem Zeichen on Fri, 16 Jun 2006 13:38:43 GMT]]></title><description><![CDATA[<p>Andre2 schrieb:</p>
<blockquote>
<p>Wie gesagt, durch die WaitCommEvent - Geschichte steige ich nicht so richtig durch.</p>
</blockquote>
<p>ungefähr so geht das</p>
<pre><code>...
HANDLE hcomm = CreateFile (...
SetCommMask (hcomm, EV_RXCHAR);
...
for (;;)
{
   // warte auf ein zeichen
   DWORD event;
   WaitCommEvent (hcomm, &amp;event, NULL);
   // hier z.b. das zeichen mit 'ReadFile' abholen
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1078938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078938</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 16 Jun 2006 13:38:43 GMT</pubDate></item></channel></rss>