<?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[Thread mit RS232]]></title><description><![CDATA[<p>Ich habe einen Thread erstellt unt getestet, und eigendlich geht das auch alles.<br />
Das Problem liegt aber in folgendem.<br />
Wenn ich das Programm starte, kann ich sie serielle Schnittstelle öffnen, und meinen Ventilator anschmeissen, und wieder aus, alles OK. Meldungen für an und aus<br />
werden ausgegeben.(Hauptthread)</p>
<p>Wenn ich den Thread starte, und danach den Lüfter an oder ausschalten möchte, geht das nicht mehr! Es kommen zwar noch die Meldungen Lüfter an bzw. aus, aber die serielle Schnittstelle macht nichts mehr!</p>
<p>Da ich das im Hauptthread habe dürfte das doch kein Problem sein mit der Deklaration der Schnittstelle, oder?</p>
<p>Woran kann das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/109046/thread-mit-rs232</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 07:46:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/109046.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 May 2005 10:06:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread mit RS232 on Fri, 06 May 2005 10:06:06 GMT]]></title><description><![CDATA[<p>Ich habe einen Thread erstellt unt getestet, und eigendlich geht das auch alles.<br />
Das Problem liegt aber in folgendem.<br />
Wenn ich das Programm starte, kann ich sie serielle Schnittstelle öffnen, und meinen Ventilator anschmeissen, und wieder aus, alles OK. Meldungen für an und aus<br />
werden ausgegeben.(Hauptthread)</p>
<p>Wenn ich den Thread starte, und danach den Lüfter an oder ausschalten möchte, geht das nicht mehr! Es kommen zwar noch die Meldungen Lüfter an bzw. aus, aber die serielle Schnittstelle macht nichts mehr!</p>
<p>Da ich das im Hauptthread habe dürfte das doch kein Problem sein mit der Deklaration der Schnittstelle, oder?</p>
<p>Woran kann das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/782639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/782639</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Fri, 06 May 2005 10:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Fri, 06 May 2005 15:22:22 GMT]]></title><description><![CDATA[<p>vielleicht bin ich der einzige, aber aus deinem text lese ich nur, dass dein ein und ausschalten nicht klapt.. weder, wo ungefähr der fehler liegen könnte, noch was du in deinen thread machst, noch sonstige infos..<br />
versuche doch mal das problem genäuer zu schildern und auch etwas von deiner ansteuerungsumgebung.. (zB was macht thread1 und thread2?)</p>
<p>BigNeal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/782983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/782983</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Fri, 06 May 2005 15:22:22 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Fri, 06 May 2005 15:34:55 GMT]]></title><description><![CDATA[<p>Hm,<br />
das ist im moment noch eine Programmierübung, und im Thread 2 wird eigendlich nichts gemacht, (Ein Zähler zählt bis 100000, und gibt dann einen Wert auf das Memo Feld aus).</p>
<p>Das Problem liegt darin, das die Ansteuerung solange über RS232 Tadelos funktioniert, bis ich den 2. Thread über einen SpeedButton Starte.<br />
Danach läuft der 2. Thread, gibt den Wert aus, und der 1. Thread läuft nicht mehr richtig.<br />
Die Meldungen kommen noch, das die Ansteuerung erfolgt, aber sie erfolgt nicht mehr über die RS232. Der Lüfter bleibt entweder an, oder aus, je nachdem wann ich den Thread starte.<br />
Ich habe mich hierbei an die Programmiervorlage zum Thread aus der Builder Hilfe gehalten, hier auf der Seite.<br />
Die Ansteuerung erfolgt üher die port.dll.</p>
<p>Den relevanten Code füge ich hier mal ein.</p>
<p>Unit1.cpp</p>
<pre><code class="language-cpp">#include &lt;vcl.h&gt;
#pragma hdrstop
#include &quot;com.cpp&quot;
#include &lt;conio.h&gt;
#include &lt;iostream.h&gt;
#include &lt;windows.h&gt;
#include &quot;Unit1.h&quot;
#include &quot;Unit2.h&quot;
//#include &lt;time.h&gt;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
bool timer=true, pause=false;

void __fastcall TForm1::SpeedButton6Click(TObject *Sender)
{
  FNewThread =  new PWM(false); //Jetzt haben wir eine in der ganzen Klasse sichtbare Instanz.
  FNewThread-&gt;OnTerminate = DeleteThread;
}

void __fastcall TForm1::DeleteThread(TObject* Sender)
{
       FNewThread-&gt;Terminate();
}
</code></pre>
<p>unit1.h</p>
<pre><code class="language-cpp">#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
#include &lt;Buttons.hpp&gt;
#include &lt;ExtCtrls.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TMemo *Memo1;
        TSpeedButton *SpeedButton1;
        TSpeedButton *SpeedButton2;
        TSpeedButton *SpeedButton3;
        TSpeedButton *SpeedButton4;
        TSpeedButton *SpeedButton5;
        TSpeedButton *SpeedButton6;
        TTimer *Timer1;
        TTimer *Timer2;
        TSpeedButton *SpeedButton7;
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall SpeedButton2Click(TObject *Sender);
        void __fastcall SpeedButton3Click(TObject *Sender);
        void __fastcall SpeedButton4Click(TObject *Sender);
        void __fastcall SpeedButton5Click(TObject *Sender);
        void __fastcall SpeedButton6Click(TObject *Sender);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall Timer2Timer(TObject *Sender);
        void __fastcall SpeedButton7Click(TObject *Sender);
private:	// Anwender-Deklarationen
        TThread* FNewThread; //Vorfahrobject kann alle abgeleiteten Nachfahren transportieren.
        void __fastcall DeleteThread(TObject* Sender);
public:		// Anwender-Deklarationen
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Unit2.cpp</p>
<pre><code class="language-cpp">#include &lt;vcl.h&gt;
#pragma hdrstop
#include &quot;Unit1.h&quot;
#include &quot;Unit2.h&quot;
#pragma package(smart_init)
//---------------------------------------------------------------------------

__fastcall PWM::PWM(bool CreateSuspended)
        : TThread(CreateSuspended)
{
 FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall PWM::Execute()
{
 int b=0;
        //---- Hier den Thread-Code plazieren----
  Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;-&gt; Thread Arbeitet&quot;);
  for (int i=0; i&lt;20000; i++){ b=i;}
    Form1-&gt;Memo1-&gt;Lines-&gt;Add (b);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/782993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/782993</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Fri, 06 May 2005 15:34:55 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Sat, 07 May 2005 13:27:35 GMT]]></title><description><![CDATA[<p>Kennt das Problem denn keiner?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/783448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/783448</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Sat, 07 May 2005 13:27:35 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Mon, 09 May 2005 12:22:20 GMT]]></title><description><![CDATA[<p>versuch es damit hier:</p>
<pre><code class="language-cpp">void __fastcall TForm1::SpeedButton6Click(TObject *Sender)
{
  if(FNewThread != NULL)
  {
    FNewThread-&gt;Terminate();
    FNewThread = NULL;
  }
  FNewThread =  new PWM(false); //Jetzt haben wir eine in der ganzen Klasse sichtbare Instanz.
  FNewThread-&gt;OnTerminate = DeleteThread;
}

void __fastcall TForm1::DeleteThread(TObject* Sender)
{
  FNewThread-&gt;Terminate();
  FNewThread = NULL;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/784806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784806</guid><dc:creator><![CDATA[epsilon]]></dc:creator><pubDate>Mon, 09 May 2005 12:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Mon, 09 May 2005 14:26:28 GMT]]></title><description><![CDATA[<p>Danke Dir!!<br />
Habe die Veränderungen vorgenommen, hat aber leider nicht die gewünschte Wirkung.<br />
Allerdings habe ich bemerkt, das wenn ich den Thread starte, und anschließend den COM Port neu schließe und wieder öffne, dann geht es.</p>
<p>Allerdings ist das ja nun kein Zustand, und der Fehler muß ja noch irgendwo zu finden sein.</p>
<p>Fällt die daraufhin noch was ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/784992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784992</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Mon, 09 May 2005 14:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Mon, 09 May 2005 15:58:53 GMT]]></title><description><![CDATA[<p>Schliesst du den Comport denn auch beim Beenden des Threads?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785103</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 09 May 2005 15:58:53 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Mon, 09 May 2005 16:05:05 GMT]]></title><description><![CDATA[<p>Nein, mache ich nicht.<br />
Im moment ist das noch ne Übung zum Verständnis, und später soll die PWM im Thread laufen, und dort mehrere Lüfter gleichzeitig steuern.</p>
<p>Aber ich verstehe nicht warum der den Zugriff verliert nur weil ich ein Schleife hochzähle.</p>
<p>Was ich eben noch bemerkt habe, wenn ich den Lüfter starte, dann den Thread,<br />
und dann den COM Port öffne und Schliesse geht es ja kurzfristig wieder wie oben erwähnt, UND</p>
<p>Sobald der Thread beendet ist, geht es wieder nicht, und ich muß den Port erneut schliessen und Öffnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785112</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Mon, 09 May 2005 16:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 08:36:19 GMT]]></title><description><![CDATA[<p>Farnsworth schrieb:</p>
<blockquote>
<p>Nein, mache ich nicht.</p>
</blockquote>
<p>Wieso nicht? Du öffnest ihn ja auch im Thread nehme ich an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785407</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 08:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 08:43:27 GMT]]></title><description><![CDATA[<p>Nein, das kommt erst später, wie gesagt im moment erfolgt die gesammte Ansteuerung im Hauptthread, und im erzeugten Thread, habe ich nur die Zählschleife ohne jegliche Ansteuerung.<br />
Deswegen verstehe ich das auch nicht warum er die &quot;Verbindung verliert&quot;.<br />
Ich wollte eigendlich erst dieses miese Problem gelöst haben bevor ich &quot;ernsthaft&quot;<br />
weiter mache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785410</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 08:43:27 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 09:05:37 GMT]]></title><description><![CDATA[<p>Achso... habs mri jetzt nochmals angeschaut: Du hast eindeutig einen Kommentar der im cpp-File jedes neuen Thread-Objektes steht nicht gelesen oder nicht befolgt. Da steht was bezüglich Synchronize. Lies es, wende es an.</p>
<p>Ausserdem solltest du dem Thread mindestens ein Sleep(0) / Schleifendurchlauf beibringen, damit das Betriebssystem die Prozessorzeit besser verteilen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785422</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 09:05:37 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 09:07:37 GMT]]></title><description><![CDATA[<p>Ausserdem frage ich mich was der Aufruf von Terminate() im OnTerminate-Ereignis soll? Schon mal geschaut wann OnTerminate ausgeführt wird?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785423</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 09:07:37 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 09:51:54 GMT]]></title><description><![CDATA[<p>Ich habs mir nicht ausgedacht, habe das da im Beispiel gelesen, und es angewandt.</p>
<p>Ich glaub ich gebs langsam auf, ich füge das aus dem Beispiel ein und nur Fehler, weil logischerweise die Deklarationen fehlen, aber wie werden die wieder realiesiert?</p>
<p>Es muß doch irgendwo eine vernünftige Anleitung existieren die nicht die hälfte weglässt.</p>
<p>Ich kann nicht einmal das Beispielprojekt selber kompilieren weil ihm jetzt auf einmal bibliotheken fehlen, obwohl hier nun auch keine anderen verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785459</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 09:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 09:57:01 GMT]]></title><description><![CDATA[<p>Ich danke die Trotzdem für deine Mühen!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/785470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785470</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 09:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 10:47:04 GMT]]></title><description><![CDATA[<p>mach doch mal das thread tut hier auf <a href="http://cplusplus.de" rel="nofollow">cplusplus.de</a>..<br />
habe ich auch mal gemacht und klappte super</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785518</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Tue, 10 May 2005 10:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 10:58:33 GMT]]></title><description><![CDATA[<p><a href="http://bcb-tutorial.c-plusplus.net/inhalt.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/inhalt.html</a><br />
habe mich versucht an das zu halten.</p>
<p>Wo befindet sich denn ein weiters?<br />
die Seite <a href="http://www.cplusplus.de" rel="nofollow">www.cplusplus.de</a><br />
ist in Überarbeitung.<br />
und auf der des Forum ist nur der verweis auf verschiedene Bücher über die allgemeine Programmierung.<br />
Habe 2 angetestet, aber nichts über Threads.</p>
<p>gruß</p>
<p>Farnsworth</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785526</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 10:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 11:07:32 GMT]]></title><description><![CDATA[<p>genau das meinte ich..</p>
<p>junix schrieb:</p>
<blockquote>
<p>Ausserdem solltest du dem Thread mindestens ein Sleep(0) / Schleifendurchlauf beibringen, damit das Betriebssystem die Prozessorzeit besser verteilen kann.</p>
</blockquote>
<p>junix schrieb:</p>
<blockquote>
<p>Du hast eindeutig einen Kommentar der im cpp-File jedes neuen Thread-Objektes steht nicht gelesen oder nicht befolgt. Da steht was bezüglich Synchronize. Lies es, wende es an.</p>
</blockquote>
<p>junix schrieb:</p>
<blockquote>
<p>Ausserdem frage ich mich was der Aufruf von Terminate() im OnTerminate-Ereignis soll? Schon mal geschaut wann OnTerminate ausgeführt wird?</p>
</blockquote>
<p>hast du diese kommentare mal überprüft und in deinem code angepasst?</p>
<p>was brauchst du für eine RS232-Komponente?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785533</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Tue, 10 May 2005 11:07:32 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 11:16:56 GMT]]></title><description><![CDATA[<p>// Wichtig: Methoden und Eigenschaften von Objekten der VCL können nur in<br />
// in Methoden verwendet werden, die Synchronize aufrufen, z.B.:<br />
//<br />
// Synchronize(UpdateCaption);<br />
//<br />
// wobei UpdateCaption so aussehen könnte:<br />
//<br />
// void __fastcall Unit2::UpdateCaption()<br />
// {<br />
// Form1-&gt;Caption = &quot;In Thread aktualisiert&quot;;<br />
// }</p>
<p>Ich gehe davon aus das ihr das meint.<br />
mit der Anwendung haperts so ein bißchen:(<br />
ich habe mich da ans Beispiel Programm gehalten aber wie gesagt da fehlen im .lib dateien (warum auch immer, nur für das Programm).<br />
Vielleicht kriege ich das in einer ruhigen Stunde mal hin, aber im moment versteh ich die Umsetzung nicht.</p>
<p>Die Ansteuerung wird über die Port.dll gemacht die in der com.cpp deklariert wird.<br />
Oder was meinst du mit Komponente?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785540</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 11:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 11:32:53 GMT]]></title><description><![CDATA[<p>was für einen BCB hast du?<br />
und welche dateien fehlen?</p>
<p>eine Komponente ist zum beispiel der Button den du oben aus der auswahl auf deine Form ziehen kannst.</p>
<p>hast du die com.cpp selber geschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785559</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Tue, 10 May 2005 11:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 11:55:17 GMT]]></title><description><![CDATA[<p>ich habe den 5.0 prof.</p>
<p>vclado50.bpi<br />
Dss50.bpi<br />
VCLmid50.bpi<br />
webmid50.bpi<br />
turbodb41150.bpi</p>
<p>die dateien fehlen</p>
<p>die com.cpp hat mein Lehrer in der Schule geschrieben, ich habe sie nur um dts etc. erweitert.</p>
<pre><code class="language-cpp">//Die Datei wird benötigt um auf die dll zugreifen zu können
//Funktion ladeDLL() kann als globale Funktion
//aufgerufen werden
//Port.dll muss im aktuellen Verzeichnis stehen
//Rückgabe = false - wenn DLL nicht geladen werden kann

#include &lt;vcl.h&gt;

HINSTANCE hdll;    			//hinstance ist ein Variablentyp der API Ebene
typedef UINT(CALLBACK *open)(char *);	//eigener Datentyp kreirt (Zeigerdatentyp auf eine Funktion) 
					//Open ist der Name Zeiger auf Char muß übergeben werden,
					//unsigned int wird zurück geliefert. 
					//Callback bringt das Betriebssystem ins Spiel
open opencom;				//Variable des neuen Datentyps wird angelegt ( Typ open)

typedef UINT (CALLBACK *read)();
read readbyte;

typedef (CALLBACK *send)(UCHAR);	//5 mal für die 5 Funktionen die wir brauchen
send sendbyte;

typedef (CALLBACK *close)();
close closecom;

typedef (CALLBACK *time_)(UINT);
time_ timeout;

typedef WORD (CALLBACK *dsr_)();
dsr_  dsr;

typedef WORD (CALLBACK *rts_)(WORD);
rts_  rts;

typedef WORD (CALLBACK *txd_)(WORD);
txd_  txd;

typedef WORD (CALLBACK *dtr_)(WORD);
dtr_  dtr;
//Die funktionen müssen mit den existierenden Funktionen verknüpft werden
//-----------------------------------------------------
bool ladeDLL (void) {
  hdll = LoadLibrary(&quot;PORT.DLL&quot;);
  if(hdll == NULL)
  {
      return false;			//wenn false, dann datei nicht gefunden
  }
  else
  {
      opencom = (open)GetProcAddress(hdll,&quot;OPENCOM&quot;);	//übergebe den handle auf die Datei
      readbyte = (read)GetProcAddress(hdll,&quot;READBYTE&quot;);	//Beim aufruf in c wird dann die funktion in der dll ausgeführt
      sendbyte = (send)GetProcAddress(hdll,&quot;SENDBYTE&quot;);
      closecom = (close)GetProcAddress(hdll,&quot;CLOSECOM&quot;);
      timeout = (time_)GetProcAddress(hdll,&quot;TIMEOUT&quot;);
      rts = (rts_)GetProcAddress(hdll,&quot;RTS&quot;);
      txd = (txd_)GetProcAddress(hdll,&quot;TXD&quot;);
      dtr = (dtr_)GetProcAddress(hdll,&quot;DTR&quot;);
      return true;
  }
}
</code></pre>
<p>Also eine Komponente gibt es da nicht, das läuft direkt über diese Datei.<br />
Im Programm schreibe ich dann einfach txd(1); und schon liegen da 12V an.</p>
<p>Soweit so gut.</p>
<p>den Ventilator steuer ich dann über ein Schieberegister an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785591</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 11:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 13:16:23 GMT]]></title><description><![CDATA[<p>Farnsworth schrieb:</p>
<blockquote>
<p>Ich gehe davon aus das ihr das meint.</p>
</blockquote>
<p>Genau</p>
<p>Farnsworth schrieb:</p>
<blockquote>
<p>mit der Anwendung haperts so ein bißchen:(</p>
</blockquote>
<p>Wieso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785693</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 13:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 13:37:37 GMT]]></title><description><![CDATA[<p>hm, meinst du das so?</p>
<pre><code class="language-cpp">#include &lt;vcl.h&gt;
#pragma hdrstop
#include &quot;Unit1.h&quot;
#include &quot;Unit2.h&quot;
#include &lt;windows.h&gt;
#include &lt;time.h&gt;
#pragma package(smart_init)
//---------------------------------------------------------------------------

//   Wichtig: Methoden und Eigenschaften von Objekten der VCL können nur in
//   in Methoden verwendet werden, die Synchronize aufrufen, z.B.:
//
//      Synchronize(UpdateCaption);
//
//   wobei UpdateCaption so aussehen könnte:
//
//      void __fastcall Unit2::UpdateCaption()
//      {
//        Form1-&gt;Caption = &quot;In Thread aktualisiert&quot;;
//      }
//---------------------------------------------------------------------------

__fastcall PWM::PWM(bool CreateSuspended)
        : TThread(CreateSuspended)
{
 FreeOnTerminate = true;
}
void __fastcall PWM::UpdateCaption()
{
	Form1-&gt;Update();
        Form1-&gt;Caption = &quot;In Thread aktualisiert&quot;;
}
//---------------------------------------------------------------------------
void __fastcall PWM::Execute()
{
 int b=0;
        //---- Hier den Thread-Code plazieren----
  Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;-&gt; Thread Arbeitet&quot;);
  for (int i=0; i&lt;200000; i++){
     b=i;
     Form1-&gt;SpeedButton2-&gt;Caption = b;
   Synchronize(UpdateCaption);
   Sleep(0);
     }
  Form1-&gt;Memo1-&gt;Lines-&gt;Add (b);
}
</code></pre>
<p>und die Header</p>
<pre><code class="language-cpp">#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
//---------------------------------------------------------------------------
class PWM : public TThread
{
private:
protected:
        void __fastcall Execute();
public:
        __fastcall PWM(bool CreateSuspended);
         void __fastcall UpdateCaption(); //Unsere Synchronize-Methode.
};
//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Das Synchronize ist dann abgeschlossen, richtig?<br />
Aber laufen tut es immer noch nicht.</p>
<p>Im Beispiel beziehen die sich auf ein FileListBox-&gt;Update(), da ich sowas nicht habe, habe ich das HAuptformular gewählt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785722</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 13:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 13:40:12 GMT]]></title><description><![CDATA[<p>Vielleicht solltest du aufhören einfach nur irgendwas zu kopieren und einzusetzen und dann zu hoffen es läuft und endlich mal nachdenken wieso du das machst... Falls du dich jetzt beleidigt fühlst, solltest du nochmals ganz genau ansehen was du gemacht hast.</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785728</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 13:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 13:59:29 GMT]]></title><description><![CDATA[<p>Ich fühl mich nicht beleidigt, keine Sorge <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Hast ja prinzipiell recht!!<br />
Nur wenn ich das genau nachvollziehen könnte was ich da geschrieben(kopiert) habe, müsste ich hier nicht um Hilfe bitten.</p>
<p>So wie du es schreibst muß es ein großer Bock sein, und ich werde ihn suchen.:)</p>
<p>Sind ja bald Sommerferien!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785759</guid><dc:creator><![CDATA[Farnsworth]]></dc:creator><pubDate>Tue, 10 May 2005 13:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 14:06:32 GMT]]></title><description><![CDATA[<p>Farnsworth schrieb:</p>
<blockquote>
<p>So wie du es schreibst muß es ein großer Bock sein,</p>
</blockquote>
<p>ja</p>
<p>Lesen und nochmals nachdenken!</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

//   Wichtig: Methoden und Eigenschaften von Objekten der VCL können nur in
//   in Methoden verwendet werden, die Synchronize aufrufen, z.B.:
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/785769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785769</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 10 May 2005 14:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Thread mit RS232 on Tue, 10 May 2005 14:19:35 GMT]]></title><description><![CDATA[<p>Ein Artikel (pdf-Format + sehr gut erklärt) über <a href="http://www.fachinformatiker-ihk.de/service_docu.htm" rel="nofollow">Threads im C++Builder</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/785784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785784</guid><dc:creator><![CDATA[epsilon]]></dc:creator><pubDate>Tue, 10 May 2005 14:19:35 GMT</pubDate></item></channel></rss>