<?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[nicht-modaler Dialog &amp;amp; Serielle Kommunikation]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem programm sollen von einem Messgerät ca. alle 2 Sekunden Messwerte über die Serielle Schnittstelle ausgelesen werden, und in einem nichtmodalen Dialog dargestellt werden.<br />
Solange keine Kommunikation aktiv ist, kann ich meinen nichtmodalen Dialog beliebig verschieben, schließen und auch die Uhr in meinem programm läuft.<br />
Wenn ich nun jedoch über den Serial Port mit dem Messgerät kommuniziere, lässt sich mein Dialog nicht mehr verschieben, nicht mehr schließen und die Uhr hat auch angehalten.<br />
Kann mir dabei jemand weiterhelfen??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169960/nicht-modaler-dialog-amp-serielle-kommunikation</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 18:49:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169960.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jan 2007 14:15:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Wed, 10 Jan 2007 14:15:41 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem programm sollen von einem Messgerät ca. alle 2 Sekunden Messwerte über die Serielle Schnittstelle ausgelesen werden, und in einem nichtmodalen Dialog dargestellt werden.<br />
Solange keine Kommunikation aktiv ist, kann ich meinen nichtmodalen Dialog beliebig verschieben, schließen und auch die Uhr in meinem programm läuft.<br />
Wenn ich nun jedoch über den Serial Port mit dem Messgerät kommuniziere, lässt sich mein Dialog nicht mehr verschieben, nicht mehr schließen und die Uhr hat auch angehalten.<br />
Kann mir dabei jemand weiterhelfen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207157</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 10 Jan 2007 14:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Wed, 10 Jan 2007 14:45:43 GMT]]></title><description><![CDATA[<p>wie immer:<br />
Dein Dialog bekkomt keine Leistung, da Du ja in einer schleife deiner Serellen Schnittstelle hängst. Da ich dein konstrukt nicht kenne, würde ich sagen, Du verschiebst die Kommunikation in einen eigenen Thread, und Überträgst dann die empfangenen Daten an den Dialog. wurde hier schon häufiger diskutiert und in den FAQ ist dazu auch was zu finden.<br />
2. Möglichkeit du gibst während des empfages zeit frei, also durchläufst die Messageroutiene.</p>
<pre><code class="language-cpp">MSG msg;

while( ::PeekMessage( &amp;msg, NULL, NULL, NULL, PM_NOREMOVE ) )
  ::AfxGetThread()-&gt;PumpMessage();
</code></pre>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207177</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Wed, 10 Jan 2007 14:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 07:59:38 GMT]]></title><description><![CDATA[<p>Ahja danke CTecS!<br />
Habe eine Möglichkeit gefunden, es ohne eigenen Thread zu realisieren.<br />
Wenn das allerdings nicht so gut läuft, werde ich mich wohl mit Threads befassen müssen, hab damit noch nie was zu tun gehabt.<br />
Wenn jemand ein gutes Tutorial über Threads kennt, sagt mir bitte wo ich das finde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207647</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 07:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 08:22:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void CMainFrame::OnViewDisplay()
{
	BOOL bCancel=FALSE;
	CDisplay* MyDisplay;  
	MSG Msg;

	MyDisplay=CDisplay::Instance (&amp;bCancel, this );
	MyDisplay-&gt;InitialDialog (&quot;Messwertfenster&quot;);

	MyDisplay-&gt;UpdateData(FALSE);

    while (bCancel==FALSE)
	{
     while (::PeekMessage(&amp;Msg, NULL,0,0,PM_REMOVE))
	   {if (!AfxGetApp()-&gt;PumpMessage()) {::PostQuitMessage (0); break;}}

	   if(Msg.message == WM_QUIT) 
        { 
            bCancel==TRUE; 
        } 
        else 
        { 
            TranslateMessage(&amp;Msg); 
            DispatchMessage(&amp;Msg); 
        }

	// hier werden die Befehle 0x10 und 0x0C herausgegeben 
	// + Variablen des Fensters geändert 
	      MyDisplay-&gt;DisplayCom();

    MyDisplay-&gt;UpdateData(FALSE);
	}

	MyDisplay-&gt;Done();
}
</code></pre>
<p>Warum funktioniert hier die Nachrichtenbehandlung nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207657</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 08:22:08 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 08:51:09 GMT]]></title><description><![CDATA[<p>Du mußt den Block <code>if(Msg.message==WM_QUIT)...</code> natürlich auch in die Nachrichtenschleife packen und nicht dahinter - sonst bekommst du nur die Nachricht mit, mit der die Nachrichtenschleife beendet wurde.</p>
<p>PS: Auch wenn es verlockend sein mag, die Nachrichtenverwaltung sleber zu regeln - MFC hat bereits eine eigene NAchrichtenschleife aufgebaut, in die du dich besser nicht einmischen solltest. Da sieht die Lösung mit Threads idR eleganter aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207669</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 11 Jan 2007 08:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 08:52:38 GMT]]></title><description><![CDATA[<p>Ich habe mit Threads noch nie was gemacht, wo kann ich ne gute Starthilfe bekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207670</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 08:52:38 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:05:17 GMT]]></title><description><![CDATA[<p>Irgendwie funktionierts auch nicht wenn ich es in die Nachrichtenschleife packe.<br />
Könntest mal etwas Code posten, wie das aussehen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207683</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:07:24 GMT]]></title><description><![CDATA[<p>Schau dich mal etwas hier im Board um, da gibt es schon etliche Beiträge zum Thema Threads. Eine weitere Informationsquelle könnte der Abschnitt <a href="http://msdn.microsoft.com/library/deu/default.asp?url=/library/deu/vccore/html/_core_multithreading_with_c.2b2b_.and_mfc.asp" rel="nofollow">Multithreading</a> in der MSDN sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207684</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:15:36 GMT]]></title><description><![CDATA[<p>Ok danke, werde das später mal probieren mit Threads.<br />
Aber zuerst werde ich es noch ohne Thread probieren, aber irgendwie klappt es nicht.<br />
Wie muss mein Code denn aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207692</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:15:36 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:26:51 GMT]]></title><description><![CDATA[<p>maRKus23 schrieb:</p>
<blockquote>
<p>Wie muss mein Code denn aussehen?</p>
</blockquote>
<p>Mit einem Wort: Katastrophal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Etwas ausführlicher:<br />
Wie ich oben schon sagte, muß die Weiterverarbeitung der Nachrichten in der Schleife passieren (und in der MSDN gibt es auch einige Erklärungen zur Nachrichtenschleife, nur falls du mehr darüber wissen willst):</p>
<pre><code class="language-cpp">while (bCancel==FALSE)
{
  while (::PeekMessage(&amp;Msg, NULL,0,0,PM_REMOVE))//Beginn der internen Nachrichtenschleife
  {
    if (!AfxGetApp()-&gt;PumpMessage()) {::PostQuitMessage (0); break;}

    if(Msg.message == WM_QUIT) 
    { 
      bCancel==TRUE; 
    } 
    else 
    { 
      TranslateMessage(&amp;Msg); 
      DispatchMessage(&amp;Msg); 
    }
  }//Ende der internen Nachrichtenschleife

  MyDisplay-&gt;DisplayCom();

  MyDisplay-&gt;UpdateData(FALSE);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1207700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207700</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:30:16 GMT]]></title><description><![CDATA[<p>So hab ichs eben gehabt und es hat nicht funktioniert, vllt funktionierts ja jetzt?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207703</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 09:38:33 GMT]]></title><description><![CDATA[<p>nee, es funktioniert nicht.<br />
Der Dialog lässt sich immer noch nicht verschieben und nicht mehr schließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207710</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 09:38:33 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 12:25:53 GMT]]></title><description><![CDATA[<p>es funktioniert, allerdings ist die Performance sehr schlecht, da ich zwischen dem Senden und dem Empfangen mindestens ein Sleep(3000) brauche, da sonst die Daten nicht richtig ausgewertet werden.<br />
Da dieses Sleep(3000) mein Programm für 3 Sekunden lahmlegt kann ich in der Zeit kein Window verschieben. Ausserdem läuft die Uhr im 3 Sekunden-Takt.<br />
Hat jemand eine Idee was ich anstelle von Sleep(3000) einsetzen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207849</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 12:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 12:45:34 GMT]]></title><description><![CDATA[<p>Meine Antwort bleibt immer noch die selbe - lagere die Berechnung in einen extra-Thread aus, der das Hauptprogramm dann über neu ankommende Daten informiert.</p>
<p>(was genau spricht eigentlich gegen Threads außer einem &quot;ich will nicht&quot;?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207873</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 11 Jan 2007 12:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to nicht-modaler Dialog &amp;amp; Serielle Kommunikation on Thu, 11 Jan 2007 13:13:00 GMT]]></title><description><![CDATA[<p>Ich werde es dann wohl mit Threads machen müssen.<br />
Habe halt keine Ahnung wie das mit Threads funktioniert, aber in einem halben Jahr müsste ich mich wohl eh damit in meiner Diplomarbeit beschäftigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207908</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 11 Jan 2007 13:13:00 GMT</pubDate></item></channel></rss>