Laden...

Daten über Serialport senden und empfangen

Erstellt von chh2807 vor 9 Jahren Letzter Beitrag vor 9 Jahren 18.926 Views
Thema geschlossen
C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren
Daten über Serialport senden und empfangen

Hallo,

ich versuche gerade Daten über den Serialport zu schicken. Die Kommunikation als solches klappt auch problemlos (ich fange den Stream mit HTerm mit einem anderen PC ab) aber ich bekomme meine 5 Bytes einfach nicht im korrekten Format übertragen.

Wie müßte ich meinen Code formatieren das meine 5 Bytes auch im richtigen Hex- Format beim Empfänger ankommen?

Mit Write und Writeline bekomme ich nur Strings übertragen und versuche ich es mit "int" Variablen meckert Visual Studio rum. Aber in String konvertieren bringt mir ja nichts, dann hab ich wieder das Problem das mein Empfänger später damit nichts anfangen kann. Irgendwie steh ich da gerade gewaltig auf dem Schlauch X(

Könnte mir dabei vielleicht jemand helfen? Danke

MFG
Chh

MFG
Chh

C
224 Beiträge seit 2009
vor 9 Jahren

Falls Du Daten in Hex übertragen willst, Googlesuche: "c# bytes to hex": c# - byte[] to hex string - Stack Overflow

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Danke, nach dem Tip versuche ich es jetzt so:

 
byte[] data = { 0x04, 0x09, 0x03, 0x1c};
string hex = BitConverter.ToString(data);
this.serialPort1.WriteLine(hex);

Dann kommt beim Empfänger aber nur sowas hier an: 30 34 2D 30 39 2D 30 33 2D 31 43 0A

Da der Empfänger später aber ein Mikrocontroller sein soll, PC mit HTerm ist nur zur überprüfung, bin ich darauf angewiesen das die Daten korrekt übertragen werden und kann dann selber nicht noch irgendwie zurück umwandeln.

MFG
Chh

771 Beiträge seit 2009
vor 9 Jahren

Kann es sein, dass du Binärdaten und Hex verwechselst?
Üblicherweise werden die Daten binär verschickt (d.h. einfach als byte[]) und nicht in einem menschenlesbaren Format (wie z.B. Hex-Strings).

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Binär und Hex ist ja das selbe, nur anders geschrieben. OK, ich weiß zwar was ich machen möchte aber noch nicht so ganz wie Visual Studio meine Eingabe deutet 😁 Wie würde ich denn die Bytes im binär Format verschicken? Write und Writeline dürften da ja nicht weiterhelfen.

MFG
Chh

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Ha, ich habs:


byte[] data = { 0x04, 0x09, 0x03, 0x1c};
this.serialPort1.Write(data, 0, data.Length);

Dank euch 👍

Jetzt mal weiter schauen wie es mit dem Datenempfang aussieht 😁

MFG
Chh

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Ok, um die empfangenen Daten in einer Textbox aus zu geben habe ich folgendes versucht:


public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private delegate void SetTextDeleg(string text);

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button_connect_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen == false)
            {
                serialPort1.DataReceived +=new SerialDataReceivedEventHandler(serialPort1_DataReceived);
                serialPort1.ReadTimeout = 500;

                serialPort1.Open();

                if (serialPort1.IsOpen == true)
                {                 
                    this.connection_status.BackColor = System.Drawing.Color.Lime;
                    this.connection_status.Text = "Online";
                                      
                    byte[] init = {0x04, 0x09, 0x03, 0x1c};
                    this.serialPort1.Write(init, 0, init.Length);                                                                                                     
                }
            }
        }

        void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string data = sp.ReadExisting();
            this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { data }); 
        }

        private void si_DataReceived(string data) 
        {
            
            textBox1.Text = data.Trim(); 
        }
       

        private void connection_status_TextChanged(object sender, EventArgs e)
        {

        }

        private void start_test_Click(object sender, EventArgs e)
        {
            this.status_programstart.Text = " Programm Started";
            this.status_programstart.BackColor = System.Drawing.Color.Lime;

            byte[] request = { 0x06, 0x78, 0x00, 0x10, 0x00, 0xB7 };
            this.serialPort1.Write(request, 0, request.Length);                    
        }
     }


Klappt natürlich nicht X( Aber warum nicht? 🤔

MFG
Chh

MFG
Chh

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

was genau klappt denn nicht?

Gruß
Eduard

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Stimmt, das hätte ich natürlich dazu schreiben sollen, sorry. wie oben beschrieben habe ich 2 PCs per RS232 verbunden. Mit meinem kleinen Programm bekomm ich jetzt meine Daten an den anderen PC mit Hterm als Empfängerprogramm gesendet. Will ich aber etwas zurück schicken, bekomm ich es nicht hin es in der TextBox aus zu geben. Wo nun der Fehler liegt wei߸ jetzt leider nicht. 🤔

MFG
Chh

5.658 Beiträge seit 2006
vor 9 Jahren

Hi chh2807,

du hast doch einen Debugger zur Verfügung und kannst schauen, an welcher Stelle die Daten anders sind als erwartet: [Artikel] Debugger: Wie verwende ich den von Visual Studio?.

Bitte beachte unseren [Hinweis] Wie poste ich richtig?, besonders die Punkte 1, 4 und 5.

Christian

Weeks of programming can save you hours of planning

W
54 Beiträge seit 2006
vor 9 Jahren

Du speicherst die Daten als string. string = ASCII. Lass mich raten, du schickst keine Zeichen die als ASCII interpretiert werden können? Also zeigt er die auch nicht an.

Warum schreibst du nicht direkt beim empfangen in die Textbox?

16.830 Beiträge seit 2008
vor 9 Jahren

.NET Strings sind IMMER UTF-16, nicht ASCII encodiert.

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Also ich schicke mit HTerm einfache 4-5 Bytes als Binärwerte an mein Programm. Als was .Net die erkennt und ob da noch was umgewandelt werden muss weiß ich ehrlich gesagt nicht. Wegen solcher Fallstricke hab ich gehofft das jemand mit mehr Erfahrung evtl. mal auf den Code schauen könnte ob die grundsätzliche Funktionalität gegeben ist.

MFG
Chh

16.830 Beiträge seit 2008
vor 9 Jahren

Du machst es den Helfern auch nicht unbedingt sehr einfach.
Les Dir mal [Hinweis] Wie poste ich richtig? ausfmerksam durch; gern auch zwei Mal.
Wenn Du von Fehlermeldungen sprichst, dann zeige sie komplett (Punkt 5) und den dazugehörigen, relevanten Code.
"Klappt nicht" ist keine gültige, akzeptable oder gar ausreichende Fehlermeldung.

Drücke Dich in Deinen Sätzen und Beiträgen so aus, dass man die Sätze auch versteht und als Helfer das Problem nachvollziehen kann. Versetz Dich mal in die Lage eines Helfers: der kennt Deine Gedanken nicht, der weiß nicht, an welcher Stelle Du hängst bzw. wo das Problem ist und lies Deine Beiträge durch.
Du wirst selbst erkennen können, dass man Dir mit Deiner jetzigen Beschreibung kaum helfen kann.

Helfer haben i.d.R. wenig Lust einen Text 4-5 mal durch zu lesen, damit sie Dir helfen können.

Einfach mal die Grundlagen weg zu lassen und zu sagen, "hey, irgendwer wird mir schon von euch helfen!" - das ist weder fair noch hilfreich für die Gemeinschaft 😉

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

OK, oben in dem Post hätte ich mich natürlich besser ausdrücken sollen. Da stimme ich vollkommen zu. Aber im weteren Verlauf habe ich klar und deutlich erklärt das ich über den Serialport Daten empfangen und diese Daten in einer Textbox ausgeben möchte.

Da ich noch nicht weiß wo genau das Problem liegt, habe ich den relevanten Code oben gepostet in der Hoffnung das mir irgendjemand sagen kann ob meine Routine zum Datenempfang überhaupt zu gebrauchen ist. Wenn es eine Fehlermeldung geben würde, hätte ich sie gerne gepostet aber es zeigt sich nach Außenhin ja nichts.

Was soll ich denn noch mehr liefern als den Code? Ich habe auf gut Deutsch gesagt KEINE Ahnung davon, will mich in die Materie einarbeiten, liefere alle Infos die ich habe und Anstatt einer Hilfe bekomme ich Verweise zu den Boardregeln und wie man richtig postet. Ist es denn echt so viel verlangt hier zu Fragen ob jemand mit etwas Erfahrung sich die paar Zeilen Code anschauen kann?



private delegate void SetTextDeleg(string text);

serialPort1.DataReceived +=new SerialDataReceivedEventHandler(serialPort1_DataReceived);
                serialPort1.ReadTimeout = 500;
                serialPort1.Open();

void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string data = sp.ReadExisting();
            this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { data });
        }

        private void si_DataReceived(string data)
        {

            textBox1.Text = data.Trim();
        }

MFG
Chh

185 Beiträge seit 2005
vor 9 Jahren

..... ob meine Routine zum Datenempfang überhaupt zu gebrauchen ist.

Warum nimmst du nicht den debugger, und schaust, ob die Daten bei dir ankommen?

Mit der Suchfunktion findest du auch einige Beispiele hier im Forum.

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

prinzipiell ist Der Code in Ordnung. Versuch mal bitte anstatt

 string data = sp.ReadExisting(); 

Folgendes:

 string data = sp.ReadLine(); 

Alternativ, wenn Du weiterhin mit ReadExisting() arbeitest, kannst Du in der Datenausgabe anstatt

 textBox1.Text = data.Trim(); 

dies ausprobieren:

 textBox1.Text += data.Trim(); 

Gruß
Eduard

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

@Martin,
Ich werde gleich den Debugger anwerfen wenn ich wieder an den beiden Rechnern bin. Ich konnte gestern Abend leider nicht mehr weiter testen.

@Edelfix

Vielen Dank, ich werde beides gleich ausporbieren und mich danach wieder melden.

MFG
Chh

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Soo, jetzt hab ich noch mal was rumgespielt und siehe da auch ein paar Meldungen mit Bezug zu der Codezeile:

string data = sp.ReadLine();  

Mit gesetztem Timeout bekomme ich folgende Meldung:

"This operation has timed out".

Nehme ich den Timeout raus, tut sich nach außen hin nichts aber sobald ich über einen Button den Serialport schließe kommt natürlich die Meldung:

"The I/O operation has been aborted because of either a thread exit or an application request."

Also scheinbar kann der Datenempfang nicht abgeschlossen werden und es werden immer weiter Daten erwartet. Ich versuche mal die Anzahl der erwarteten Bytes ein zu stellen. Aber natürlich bin ich für jeden weiteren Hinweis dankbar.

Vielen Dank.

PS: Den Debugger nehm ich gleich noch unter die Lupe.

MFG,
Chh

MFG
Chh

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

okay ReadLine() wartet auf ein Datenbyte dessen Inhalt mit der Eigenschaft "NewLine" übereinstimmt. Standardmäßig ist es ein LineFeed (0x0A). Wenn es nicht kommt, dann greift der TimeOut. Versuch doch mal am Ende Deiner gesendeten Daten "0x0A" zu setzen.

Hast Du den zweiten Vorschlag ausprobiert?

Gruß
Eduard

C
224 Beiträge seit 2009
vor 9 Jahren

Bisher habe ich so wie Du nur mit ReadExisting gearbeitet, weil ich nur das benötigte.

Aber ich kann mir vorstellen, dass

public int BytesToRead { get; }
public int Read(byte[] buffer, int offset, int count)

interessant für Dich sind.

Bei der Umwandlung von einem Bytearray-Wert zu einem String-Wert und zurück zum Bytearray-Wert (Stichwort System.Text.Encoding) kann es zu einem veränderten Ergebnis kommen. Die Erfahrungen habe ich gemacht.

Von daher ist es wichtig zu wissen, wie dein Protokoll aussieht. Ob Du im String-Format lesen und senden kannst oder ob Du im Byte-Format lesen und senden musst.

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

@CoLo
Danke für den Hinweis, das werde ich mal ausprobieren. Ich muss auf jeden Famm im Byte-format Senden und Empfangen. Aber dann als String zur Kontrolle in der Textbox ausgeben.

@Edefix
Mit "sp.ReadLine()" habe ich es gestest und vom anderen Rechner mit Hterm am Ende "0x0A" geschickt, das verhindert definitiv den Timeout.

string data = sp.ReadExisting(); 

Mit sp.ReadExisting(); kann ich den Timeout komplett umgehen. Was wichtig für mich wäre da ich nachher beim fertigen Programm die Antworten vom Mikrocontroller nicht beeinflussen kann.

Jetzt muss ich nur noch an die empfangenen Daten rankommen 😁 Also irgendwas kommt ja an, sonst würde das Event ja nicht auslösen und in die Empfangsroutine gehen. Zuerst hab ich einen Delegate angelegt. Und dann greife ich ja wieder darauf zurück und versuche die Daten über die verschiedenen Methoden hinweg zu verarbeiten:


private delegate void SetTextDeleg (string text);
.
.
.

void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
      SerialPort sp = (SerialPort)sender;
      string data = sp.ReadExisting();            
      this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] {data});       
}
private void si_DataReceived(string data) 
{            
       textBox1.Text(data); 
}

Irgendwo scheint da eine Übergabe nicht zu funktionieren. Ich werde mir jetzt mal den genau anschauen wie ich mir im Debugger anzeigen lassen kann wo die Daten hängen bleiben.

MFG
Chh

C
224 Beiträge seit 2009
vor 9 Jahren

eventuell empfängst Du nicht darstellbare oder Steuerzeichen wie z.B. das Zeichen '\0' bzw. in Hex = 00.

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

poste mal bitte welche Daten Du mit HTerm sendest.

Gruß
Eduard

771 Beiträge seit 2009
vor 9 Jahren

Hi,

ich bleibe bei meiner obigen Aussage!

Wenn du Binärdaten empfängst und sie in einer TextBox als Hex ausgeben willst, dann mußt du sie umwandeln. Oben hattest du ja selber schon mal den Code dafür gepostet:


string hex = BitConverter.ToString(data);

Edit: Binärdaten als String zu lesen macht daher keinen Sinn. CoLo hat ja die entsprechenden Methoden dafür schon gepostet.

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Mit Hterm schicke ich einfach nur ein paar bytes: 00 01 02 03 04

So ein Telegramm sendet mir der Mikrocontroller später auch wenn das Programm mal fertig wird.

@Cat
Danke, ich werds sofort ausprobieren.

EDIT:

Es muss definitv etwas mit der Formatierung zu tun haben. Ich habe jetzt den Befehl "Trim.()" weggelassen und siehe da es tut sich was ind er Textbox! Jetzt sieht es so aus:


private void si_DataReceived(string output) 
        {
            richTextBox1.Text = output;
            
        }

Da wird dann aus 77 77 77 bei Hterm in der Richtextbox zwar "www" oder aus "66 66 66 66" wird ffff. Aber wenigstens kommt etwas an! Jetzt muss ich die Daten halt "nur" in das richtige Format bringen.

MFG
Chh

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

Versuch mal dies:


        void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string hStr = "";
            int bytesToRead = sPort.BytesToRead;
            byte[] buff = new byte[bytesToRead];
            sp.Read(buff, 0, bytesToRead);
            foreach (byte c in buff)
            {
                hStr += c.ToString("x") + " ";
            }
            this.Invoke(new SetTextDeleg(si_DataReceived), new object[] { hStr });
        }

Gruß
Eduard

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

Da wird dann aus 77 77 77 bei Hterm in der Richtextbox zwar "www" oder aus "66 66 66 66" wird ffff. Jetzt muss ich die Daten halt "nur" in das richtige Format bringen.

Ja, das ist auch der Selbe Dateninhalt, nur anders dargestellt. 77Hex ist der Buchstabe 'w' in ASCII kodiert - 66Hex ist entsprechend der Buchstabe 'f'. Google mal ASCII Tabelle...

Gruß
Eduard

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Vielen, vielen Dank Eduard!!!!

Dein Weg hat nur noch 1 kleines Problem: er funktioniert nur 1 mal, danach bleibt die Textbox leer und ich muss neustarten. Welchen Wert müßte ich denn noch zurück setzen wenn ich meinen Resetbutton drücke?

Ich werde aber auch noch selber mal versuchen einen Weg für die Konvertierung zu finden. Aber vielen Dank für die Hilfe!!! Jetzt habe ich wenigstens mal einen funktionierenden Weg an dem ich mich im Notfall halten und auf dem ich aufbauen kann.

MFG
Chh

185 Beiträge seit 2005
vor 9 Jahren

Ich würde dir wirklich mal empfehlen hier mal die Suchfunktion zu benutzen.
Es gibt zig Beiträge, die immer wieder die Probleme aufzeigen.

oder du nimmst z.B. Template Serialport

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

😁

Ich kann mich ja nun mit meinen Prozessorgesteuerten Geräten unterhalten aber warum werden mir immer nur Teile des Streams angezeigt? Wird nicht alle korrekt empfangen oder nicht richtig an die Textbox weiter gegeben? Müßte ich mir irgendwie eine Routine zum sichern von jeweils 8 Byte schreiben und den kompletten String dann nachher in der Textbox wieder zusammenfügen? Oder gibts da andere Fallstricke die ich noch beachten muss?

MFG
Chh

MFG
Chh

E
13 Beiträge seit 2015
vor 9 Jahren

Hallo chh2807,

das Ereignis "DataReceived" wird ausgelöst, sobald Daten empfangen werden. Wenn es sich um einen kontinuierlichen Datenstrom handelt wird das Ereignis immer wieder ausgelöst. Die Anzahl der Bytes kann bei jedem Aufruf anders sein. Woher soll der Computer denn wissen, dass Du nur 8 Bytes erwartest? Daher solltest Du für die Kommunikation eine Art Stoppzeichen definieren. Daran erkennst Du wann ein Datensatz komplett übertragen wurde. So funktioniert übrigens auch die Methode ReadLine(), wurde hier schon erwähnt 😉

Gruß
Eduard

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Kann ich das auch irgendwie zeitlich steuern wie oft "DataReceived" ausgelöst wird und wie viele Bytes pro Empfang gespeichert werden sollen? Ich habe zwar keinen kontinuierlichen Datenstrom aber einige unterschiedliche Telgrammlängen. Ich hab mal die Anzahl der aus zu lesenden Bytes recht hoch festgelegt aber da wohl wieder "Datareceived" ausgelöst wurde hat das natürlich nicht gebracht. Ich müßte das wirklich eine kurze Zeit sperren damit mir nichts verloren geht und ich die Daten entsprechend sichern kann bevor sie überschrieben werden.

Handshake wäre wohl eine Möglichkeit aber ich bin mir nicht sicher ob die Gegenseite das Unterstützt.

MFG
Chh

16.830 Beiträge seit 2008
vor 9 Jahren

Wenn Du was sperren musst, dann ist irgendwas murks - sollte einleuchtend sein 😉
Nimm den Rat an... Template SerialPort

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Wie auch immer man das in dem Fall nennt aber es muss ja eine Form der Flusssteuerung geben damit mir keine Bytes verloren gehen. Von mir aus könnten auch 30 Byte Pakete verarbeitet werden und was zu viel ist mit Nullen aufgefüllt werden, das würde mir auch reichen. Irgendwie muss es ja eine Möglichkeit geben. Ich such gleich aber auch noch mal wie msdn mir da liefern kann

MFG
Chh

185 Beiträge seit 2005
vor 9 Jahren

Absolut Beratungsresistent

C
chh2807 Themenstarter:in
33 Beiträge seit 2015
vor 9 Jahren

Sorry Martin, aber hast du hier schon irgendetwas produktives zur Problemlsung beigetragen? Es gibt bzw. gab einige User die sehr freundlich geholfen haben aber was hast du hier gemacht? User wie du würgen JEDES Forum ab und lassen keine vernünftige Konversation zu! Was bringen mir 1000 wild durcheinandern gewürftelte Codeschnipsel wenn ich nicht verstehe was der andere User damit bezwecken wollte? Dafür brauch ich kein Forum, dafür reicht mir Google völlig aus. Ich möchte Tipps, Erklärungen, denn die liefert Google mir nicht! ⚠

Kannst du dir vielleicht noch vorstellen wie du mal angefangen hast zu lernen? Wolltest du da eine Hilfestellung oder das dir jemand sagt: ey, frag mal google! Denk mal drüber nach 😉

Es wäre produktiv gewesen wenn du jetzt geschrieben hättest: such mal nach Stichwort x oder Stichwort y. Das hätte schon gereicht aber scheinbar reicht es dafür leider nicht so weit bei dir!

Ich möchte nicht jede Codezeile vorgebetet bekommen, es reichen schon die richtigen Suchbegriffe 😉

MFG
Chh

16.830 Beiträge seit 2008
vor 9 Jahren

Es ist absolut inakzeptabel wie Du hier mit den Forenmitgliedern und damit Helfern umgehst und wie Du sie anpflaumst.
Meinst Du im ernst, dass Du so mit den Leuten, die Dir in erster Linie helfen wollen, im realen Leben umgehen kannst bzw. würdest?
Da würdest Du ganz ganz schnell heftigen Gegenwind erleben. Also benimm Dich oder such Dir bitte einen anderen Spielplatz.

Es wurde Dir jetzt mehrfach ein zentraler Tipp mit dem Template gegeben, das es nicht umsonst gibt.
Wenn Dir das alles egal ist und Du Deine wirklich vorhandene Beratungsresistenz beibehalten willst, dann brauchst Du auch keine Hilfe verlangen.
Dann haste auf Deutsch: ganz einfach Pech gehabt.

Sorry wenns so deutlich ist, aber ich denke ich spreche hier aus, was sich viele denken.

Absolut unverständlich, wieso Du Hilfe ablehnst oder ignorierst oder und nicht mal ausprobierst.... so wichtig scheint also das Problem gar nicht zu sein.

5.658 Beiträge seit 2006
vor 9 Jahren

Hi chh2807,

zusätzlich zu dem, was Abt bereits gesagt hat: Du beschimpfst die Leute, die dir helfen wollten. Aber keiner kann dir helfen, wenn du die naheliegensten Tips immer und immer wieder ignorierst. Der einzige, der nichts zur Problemlösung beigetragen hat, bist du.

Ich habe daher den Beitrag geschlossen, denn es hat einfach keinen Zweck, und helfen tut es auch niemanden.

Bitte beachte in Zukunft unsere Forenregeln und bemühe dich um etwas Eigeninitiative. Oder such dir einen anderen Spielplatz zum Austoben.

Christian

Weeks of programming can save you hours of planning

Thema geschlossen