<?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[permanent 1 byte über den COM Port senden (ergänzt)]]></title><description><![CDATA[<p>also geöffnet hab ich ihn mit</p>
<pre><code class="language-cpp">hSerial = CreateFile( &quot;COM4&quot;, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL );
	if( INVALID_HANDLE_VALUE == hSerial )
	{
		MessageDlg(&quot;CreateFile fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	DCB dcb;
	if( !GetCommState( hSerial, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;GetCommState fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	if( !BuildCommDCB( &quot;2400,n,8,1&quot;, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;BuildCommDCB fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	if( !SetCommState( hSerial, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;SetCommState fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}
	COMMTIMEOUTS C;
	C.ReadIntervalTimeout = 0;
	C.ReadTotalTimeoutMultiplier = 1;
	C.ReadTotalTimeoutConstant = 0;
	C.WriteTotalTimeoutMultiplier = 1;
	C.WriteTotalTimeoutConstant = 0;
	if ( !SetCommTimeouts (hSerial, &amp;C))
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;SetCommTimeouts fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}
</code></pre>
<p>schreiben tu ich mit einem thread über folgenden aufruf</p>
<pre><code class="language-cpp">while(!Terminated) {
		unsigned long Len;
		if (Send != 0) {
			if (!WriteFile(hSerial, &amp;Send, 1, &amp;Len, NULL))
			{
				AnsiString AS;
				int E;
				E = GetLastError();
				AS.printf(&quot;SENDERROR %d&quot;, E);
				OutputDebugString(AS.c_str());
				Terminate();
			}
		}
		char Buff[100];
		Len = 0;
		if (!ReadFile(hSerial, Buff, 99, &amp;Len, NULL))
		{
			AnsiString AS;
			int E;
			E = GetLastError();
			AS.printf(&quot;RECVERROR %d&quot;, E); // Hier brichts weg mit
			OutputDebugString(AS.c_str()); // ERROR_OPERATION_ABORTED
			Terminate();
		}
		if (Len &gt; 0) {
			Text = Buff;
			Synchronize(&amp;UpdateTarget);
		}
	}
</code></pre>
<p>und abschmieren tut er mir nach einigen sekunden dauerfeuer mit fehlercode 995 (aka ERROR_OPERATION_ABORTED) im recv block</p>
<p>ich bitte um hilfe, oder eventuell eine bessere lösung Q_Q</p>
<p>EDIT: das problem ist das ich an einen IR sender/empfänger sende, ich versuche grad verzweifelt eine kommunikation zwischen einem asuro roboter und meinem rechner herzustellen ala hyperterminal und zwecks signaltest muss ich unbedingt so schnell wie möglich ein permanentes signal senden btw. empfangen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197603/permanent-1-byte-über-den-com-port-senden-ergänzt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 18:31:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197603.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Nov 2007 17:06:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to permanent 1 byte über den COM Port senden (ergänzt) on Mon, 12 Nov 2007 18:07:18 GMT]]></title><description><![CDATA[<p>also geöffnet hab ich ihn mit</p>
<pre><code class="language-cpp">hSerial = CreateFile( &quot;COM4&quot;, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL );
	if( INVALID_HANDLE_VALUE == hSerial )
	{
		MessageDlg(&quot;CreateFile fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	DCB dcb;
	if( !GetCommState( hSerial, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;GetCommState fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	if( !BuildCommDCB( &quot;2400,n,8,1&quot;, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;BuildCommDCB fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}

	if( !SetCommState( hSerial, &amp;dcb ) )
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;SetCommState fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}
	COMMTIMEOUTS C;
	C.ReadIntervalTimeout = 0;
	C.ReadTotalTimeoutMultiplier = 1;
	C.ReadTotalTimeoutConstant = 0;
	C.WriteTotalTimeoutMultiplier = 1;
	C.WriteTotalTimeoutConstant = 0;
	if ( !SetCommTimeouts (hSerial, &amp;C))
	{
		CloseHandle( hSerial );
		MessageDlg(&quot;SetCommTimeouts fehlgeschlagen!&quot;, mtError, TMsgDlgButtons() &lt;&lt; mbOK, 0);
		return;
	}
</code></pre>
<p>schreiben tu ich mit einem thread über folgenden aufruf</p>
<pre><code class="language-cpp">while(!Terminated) {
		unsigned long Len;
		if (Send != 0) {
			if (!WriteFile(hSerial, &amp;Send, 1, &amp;Len, NULL))
			{
				AnsiString AS;
				int E;
				E = GetLastError();
				AS.printf(&quot;SENDERROR %d&quot;, E);
				OutputDebugString(AS.c_str());
				Terminate();
			}
		}
		char Buff[100];
		Len = 0;
		if (!ReadFile(hSerial, Buff, 99, &amp;Len, NULL))
		{
			AnsiString AS;
			int E;
			E = GetLastError();
			AS.printf(&quot;RECVERROR %d&quot;, E); // Hier brichts weg mit
			OutputDebugString(AS.c_str()); // ERROR_OPERATION_ABORTED
			Terminate();
		}
		if (Len &gt; 0) {
			Text = Buff;
			Synchronize(&amp;UpdateTarget);
		}
	}
</code></pre>
<p>und abschmieren tut er mir nach einigen sekunden dauerfeuer mit fehlercode 995 (aka ERROR_OPERATION_ABORTED) im recv block</p>
<p>ich bitte um hilfe, oder eventuell eine bessere lösung Q_Q</p>
<p>EDIT: das problem ist das ich an einen IR sender/empfänger sende, ich versuche grad verzweifelt eine kommunikation zwischen einem asuro roboter und meinem rechner herzustellen ala hyperterminal und zwecks signaltest muss ich unbedingt so schnell wie möglich ein permanentes signal senden btw. empfangen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402001</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Mon, 12 Nov 2007 18:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to permanent 1 byte über den COM Port senden (ergänzt) on Tue, 13 Nov 2007 09:38:43 GMT]]></title><description><![CDATA[<p>kenne mich zwar damit nicht so aus aber(weiss auch net genau was Terminate() für ne funktion hat), wenn du den Stream geöffnet hast kann:<br />
1. nichts von der anderen seite reingeschrieben werden(vlt nen PONG oda was auch immer)<br />
und<br />
2. kannst du die datei net lesen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402318</guid><dc:creator><![CDATA[majin]]></dc:creator><pubDate>Tue, 13 Nov 2007 09:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to permanent 1 byte über den COM Port senden (ergänzt) on Tue, 13 Nov 2007 09:57:41 GMT]]></title><description><![CDATA[<p>verzeihung, aber ich hab nicht wirklich verstanden was du mir damit sagen willst</p>
<p>P.S. Terminate beendet den Thread uns setzt die variable &quot;Terminated&quot; auf true. (TThread klasse aus borland )</p>
<blockquote>
<p>1. nichts von der anderen seite reingeschrieben werden(vlt nen PONG oda was auch immer)</p>
</blockquote>
<p>das versteh ich leider nicht, kann sein das mein textverständnis noch schläft aber ich hab ja nen comport geöffnet und das senden klappt einige sekunden ganz gut</p>
<blockquote>
<p>und<br />
2. kannst du die datei net lesen..</p>
</blockquote>
<p>auch das funktioniert ....ich sollte hier nochmal erwähnen das ich über den com einen IR sender ansteuere und der mir praktisch immer eine kopie meiner abgesendeten daten empfängt, weil sender und empfängerdiode nicht ausreichen abgeschirmt werden können</p>
<p>nur mit der fehlermeldung<br />
fehlercode 995 (aka ERROR_OPERATION_ABORTED)<br />
kann ich nix anfangen, da ich den com port nicht shared betreibe und laut hilfe er nur auftritt wenn ich cancelIO aufrufe und das geht auch laut hilfe nur wenn ich den port shared öffne und dann auch nur für den thread der cancelIO aufgerufen hat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402334</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Tue, 13 Nov 2007 09:57:41 GMT</pubDate></item></channel></rss>