<?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[COM Signale]]></title><description><![CDATA[<p>hallo,<br />
kann mir jemand sagen wie der windows treiber die signale für DTR und DSR<br />
setzt. ich lese daten mit der funktion 'ReadFile' aus deren handle auf den entsp. port zeigt. setzt der treiber die DTR/DSR Singnale dann auf false damit<br />
der gegenüber nichts mehr sendet wenn die funktion beendet ist??</p>
<p>hir mal noch code dazu</p>
<pre><code class="language-cpp">void __fastcall TCOMLesen::Execute()
{
    FreeOnTerminate = true;
    LPSTR lpMsgBuf;

    while(!Terminated)
    {
       if (!ReadFile(hComm, InBuff, 1, &amp;dwBytesRead, NULL))
       {
            FormatMessage(
                          FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                          NULL,
                          GetLastError(),
                          MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                          (LPTSTR) &amp;lpMsgBuf,
                          0,
                          NULL
                          );

            Application-&gt;MessageBox(lpMsgBuf,&quot;Fehler...&quot;,MB_OK);
       }

       if (dwBytesRead)
       {
          InBuff[dwBytesRead] = 0; // NULL TERMINATE THE STRING
          NCProgramm = NCProgramm + AnsiString(InBuff);
          Synchronize(Zaehler);
       }
       else                                          
       {
           if (NCProgramm.Length() &gt; 0)
               Synchronize(Beenden);
       }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/98547/com-signale</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 13:23:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/98547.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Jan 2005 13:28:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 13:28:39 GMT]]></title><description><![CDATA[<p>hallo,<br />
kann mir jemand sagen wie der windows treiber die signale für DTR und DSR<br />
setzt. ich lese daten mit der funktion 'ReadFile' aus deren handle auf den entsp. port zeigt. setzt der treiber die DTR/DSR Singnale dann auf false damit<br />
der gegenüber nichts mehr sendet wenn die funktion beendet ist??</p>
<p>hir mal noch code dazu</p>
<pre><code class="language-cpp">void __fastcall TCOMLesen::Execute()
{
    FreeOnTerminate = true;
    LPSTR lpMsgBuf;

    while(!Terminated)
    {
       if (!ReadFile(hComm, InBuff, 1, &amp;dwBytesRead, NULL))
       {
            FormatMessage(
                          FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                          NULL,
                          GetLastError(),
                          MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                          (LPTSTR) &amp;lpMsgBuf,
                          0,
                          NULL
                          );

            Application-&gt;MessageBox(lpMsgBuf,&quot;Fehler...&quot;,MB_OK);
       }

       if (dwBytesRead)
       {
          InBuff[dwBytesRead] = 0; // NULL TERMINATE THE STRING
          NCProgramm = NCProgramm + AnsiString(InBuff);
          Synchronize(Zaehler);
       }
       else                                          
       {
           if (NCProgramm.Length() &gt; 0)
               Synchronize(Beenden);
       }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/701284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701284</guid><dc:creator><![CDATA[-Shadow- 0]]></dc:creator><pubDate>Thu, 20 Jan 2005 13:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 13:45:59 GMT]]></title><description><![CDATA[<p>das kannst du in der <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/dcb_str.asp" rel="nofollow">dcb</a> einstellen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701301</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Thu, 20 Jan 2005 13:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 13:54:30 GMT]]></title><description><![CDATA[<p>das mach ich ja, nur hab ich den eindruck das da was nicht geht am treiber.</p>
<pre><code class="language-cpp">void __fastcall TCOMPort::COMParameterSetzen(int Baud, int Parity,
                                             int DBits, int SBits, int Protokoll,
                                             int OutxCtsFlow, int OutxDsrFlow, int DsrSens, int DtrControl, int RtsControl)
{
    GetCommState(hComm, &amp;dcbCommPort);
    dcbCommPort.DCBlength = sizeof(DCB);
    dcbCommPort.BaudRate = Baud;
    dcbCommPort.Parity = Parity;
    dcbCommPort.ByteSize = DBits;
    dcbCommPort.StopBits = SBits; 

    switch (Protokoll)
    {
        case 1 : 
                 break;
        case 2 : dcbCommPort.fOutX = true;
                 dcbCommPort.fInX = true;
                 break;
        case 3 : dcbCommPort.fOutxDsrFlow = OutxDsrFlow;
                 dcbCommPort.fDtrControl = DtrControl;
                 dcbCommPort.fDsrSensitivity = DsrSens;

                 dcbCommPort.fOutxCtsFlow = OutxCtsFlow;
                 dcbCommPort.fRtsControl = RtsControl;
                 break;
    }

    if (!SetCommState(hComm, &amp;dcbCommPort))
        MessageBeep(-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/701313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701313</guid><dc:creator><![CDATA[-Shadow- 0]]></dc:creator><pubDate>Thu, 20 Jan 2005 13:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 14:00:55 GMT]]></title><description><![CDATA[<p>mein konkretes problem ist das, ich hab in dem PC ne 4fach serielle Karte.<br />
an der hängen 4 CNC maschinen, zwei von denen laufen ohne protokoll und zwei mit hardware handshake die eine geht nur mit der anderen hab ich ein problem.<br />
ich sende daten und die steuerung liest diese blockweise aus, sobald sie den ersten block ausliest sollte die übertragung kurz stopen und dann wieder weitergehen, tut sie aber nicht. die kabel sind richtig belegt und getestet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701325</guid><dc:creator><![CDATA[-Shadow- 0]]></dc:creator><pubDate>Thu, 20 Jan 2005 14:00:55 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 14:16:43 GMT]]></title><description><![CDATA[<p>ich bin gerade an einem ähnlichen projekt dran.<br />
habe mir auch ne rs232 steuerung auf winapi aufgebaut, da ich mit einem anderem rechner über &quot;testbefehle&quot; komunizieren muss.<br />
am anfang hatte ich probleme, da ca 3 bits an der rs232 auf high stat auf low waren. so sendete der 2 rechner nichts. das habe ich aber mit</p>
<pre><code class="language-cpp">dcb.fRtsControl=1;
   dcb.fDtrControl=1;
</code></pre>
<p>gelöst. du bräuchtest ja genau das umegekehrte (wenn ich es richtig verstanden habe)</p>
<pre><code class="language-cpp">dcb.fRtsControl=0;
   dcb.fDtrControl=0;
</code></pre>
<p>Frage1: hast du nicht eine relativ hohe CPU-auslastung mit der whileschlaufe?</p>
<p>Frage2:</p>
<blockquote>
<p>ich sende daten und die steuerung liest diese blockweise aus, sobald sie den ersten block ausliest sollte die übertragung kurz stopen und dann wieder weitergehen</p>
</blockquote>
<p>schnall den satz nicht ganz.. willst du das senden deines programmes unterbrechen? ich denke jetzt mal, du willst das empfangen der daten von der cnc maschine kurz anhalten..<br />
willst du nicht lieber einen &quot;Buffer&quot; machen? ein TString oder ähnliches?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701347</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Thu, 20 Jan 2005 14:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 19:06:04 GMT]]></title><description><![CDATA[<p>BigNeal schrieb:</p>
<blockquote>
<blockquote>
<p>ich sende daten und die steuerung liest diese blockweise aus, sobald sie den ersten block ausliest sollte die übertragung kurz stopen und dann wieder weitergehen</p>
</blockquote>
<p>schnall den satz nicht ganz.. willst du das senden deines programmes unterbrechen? ich denke jetzt mal, du willst das empfangen der daten von der cnc maschine kurz anhalten..<br />
willst du nicht lieber einen &quot;Buffer&quot; machen? ein TString oder ähnliches?</p>
</blockquote>
<p>sorry hab mich falsch ausgedrück ich will testweise das empfangen der daten auf dem<br />
rechner stoppen. ich hab hier im büro zwei rechner verbunden jetzt hab ich mal en stop in die schleife gesetzt um das auslesen des puffers an der cnc maschinen zu simulieren und um zu schauen od das mit den signalen geht. die cnc maschine hat en puffer von 30 zeichen wenn der voll ist stop sie kurz und liest den mit syntaxprüfung ein.</p>
<p>nur weis ich jetzt nich ob die maschinen die signale falsch setzt oder meine sw<br />
die nich verstehen will.<br />
hab aber solangsam diese exsys schnittstellenkarte im verdacht die im pc steckt.</p>
<blockquote>
<p>Frage1: hast du nicht eine relativ hohe CPU-auslastung mit der whileschlaufe?</p>
</blockquote>
<p>doch mir ist nur noch keine bessere lösung eingefallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701774</guid><dc:creator><![CDATA[-Shadow- 0]]></dc:creator><pubDate>Thu, 20 Jan 2005 19:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Thu, 20 Jan 2005 20:40:51 GMT]]></title><description><![CDATA[<p>wie gesagt, ich arbeite momentan an einem ählichem projekt und habe mit der RS232 abfrage ca 0-1% CPU auslastung<br />
schau dir mal diese funktionen an<br />
OVERLAPPED<br />
WaitForSingleObject</p>
<p>ich hatte zwar ne weile bis alles lief wie ich wollte<br />
wenn du willst, kann ich dir sonst auch mein code schicken<br />
schick mir sonst einfach ein mail<br />
michi(at)bigneal(dot)ch</p>
<p>BigNeal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701857</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Thu, 20 Jan 2005 20:40:51 GMT</pubDate></item><item><title><![CDATA[Reply to COM Signale on Fri, 21 Jan 2005 07:40:44 GMT]]></title><description><![CDATA[<p>du kannst mir ja mal ein teil vom code posten wenn du willst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/702067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/702067</guid><dc:creator><![CDATA[-Shadow- 0]]></dc:creator><pubDate>Fri, 21 Jan 2005 07:40:44 GMT</pubDate></item></channel></rss>