Hallo liebe forum mitglieder Mein probem ist es das ich von meinen atmega der in bascom programmiert ist einen printbefel ausführe z.b. print "String" das ganze landet dann über rs232 auf meinen rechner und wird über c# weiterverarbeitet z.b. RxString = Port1.readLine(); if(RxString.equals("String") == true) { } und jetz kommen wir zum eigentlichen problem(immer um den heisen brei rum). die if anweisung ist nie true. das ist irgendwie doof. habe mal das gemacht. textfeld11.text = RxString; und da steht dann "String" also ohne gänsefüsse. auf console das gleiche. kann sein das bescom noch irgendwas mitschickt? ich bitte um eure hilfe. mfg Matze
readLine() liest bis zum ersten Zeilenumbruch. Bei C# (oder Windows allgemein) ist das \r\n. Eine Singleline Textbox zeigt die Steuerzeichen nicht an, so weit ich weiß. Es könnte also noch dabei stehen, daher ist natürlich der Vergleich immer false. Die Frage ist, kommt das auch so aus dem Controller? Vielleicht packst du mal ein Terminalprogramm an den Port und schnüffelst mit? An sonsten kannst du auch mal nen Breakpoint vor das if setzen und dir den Inhalt anzeigen lassen. Da werden dann Steuerzeichen angezeigt. Alternativ kannst du übrigens strings auch so vergleichen:
1 | if(RxString == "String") |
2 | {
|
3 | |
4 | }
|
danke du bist genial das mit dem breakpoint habe die sache noch nie wirklich benutzt aber jetzt klappt es es wird String\r übermittelt. Vielen dank. Wünsche dir noch einen schönen tag
Eine Möglichkeit wäre noch gewesen
1 | if(RxString.Contains("String") == true) |
2 | {
|
3 | |
4 | }
|
(das "== true" brauchst du da nicht)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.