Suchergebnisse
Suchergebnisse 1-19 von insgesamt 19.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
@Sbfer Willkommen im Forum. Kann es sein, dass die Länge der Datenpakete gleich ist? Poste mal ein paar solcher Datenpakete zur Ansicht.
-
@xmise Genau. Deswegen müssen wir wissen, was die Gegenstelle sendet. Danach klären wir das Weitere. Dazu allerdings muss sich @Sbfer melden.
-
Zitat von Sbfer: „Diese Daten sollen dann nicht in der Textbox erscheinen,“Das ist momentan irrelevant. Lass auch das RegEx außen vor. Zunächst müssen wir in der Lage sein, die Daten korrekt zu identifizieren. Wenn ich Deine Daten anders aufteile: Quellcode (4 Zeilen)fangen alle Blöcke mit 01 an und hören mit 04 auf. Ist das zu verallgemeinern? Wenn da Blöcke intern zwei zusammengehören, setzen wir die hinterher wieder zusammen.
-
Zitat von xmise: „ne Idee zum 2. Byte?“Sieht aus wie eine Befehlskennung.
-
Zitat von Sbfer: „Ja, meinte nur dass leider die Pakete keine eigenen, individuellen Enden haben.“Du hast eine Property des SerialPorts .NeweLine. Setze ihn auf Convert.ToChar(4).ToString() und Du kannst Deine Kommunikation blockweise organisieren. Vergiss RegEx, das bringt bei Deinem Problem nix.
-
@Sbfer Poste mal den kompletten Code.
-
Zitat von Sbfer: „VB.NET-Quellcode (1 Zeile)“Diese Zeile gehört in die Initialisierung, also vor Port.Open().
-
@Sbfer Zitat von RodFromGermany: „Poste mal den kompletten Code.“
-
@Sbfer Welchen Wert hat Timer1.Interval?
-
@Sbfer Du liest die Daten zwei Mal aus. Klar, dass ere sich da verstolpert! Da Du sowieso pollst, ist es vielleicht sinnvoll, das Port.DataReceived-Event nicht zu verwenden und das alles im Timer.Tick-Event abzuhandeln. Lösche die DataReceived-Prozedur und probier mal: VB.NET-Quellcode (7 Zeilen)
-
@Sbfer Sorry, da hab ich Dir doch den unkorrigierten Code gepostet. VB.NET-Quellcode (8 Zeilen)Du hast nicht geschrieben, welches Framework Du verwendest. Mit Async und await Task.Delay(100) blockiert die GUI nicht.
-
Zitat von Sbfer: „im TextChanged Event rausfiltern“Das ist völlig falsch. Mach das genau da, wo ich es markiert habe.Zitat von Sbfer: „Das hat zur Folge das beim "durchlaufen" dann wieder Daten für die obere Zeile (wenn auch vollständig) in der untersten Zeile stehen, dann in die obere rutschen und die Daten für die untere Zeile kommen hinterher etc...so kann man aber nicht flüssig navigieren.“Was willst Du mir damit sagen?
-
Zitat von Sbfer: „Müsste ich die Daten irgendwie puffern?“Bisher hatten wir uns mit dem Empfang von Daten von der RS232 befasst. Was soll denn mit den Daten passieren?
-
Zitat von Sbfer: „dass deine Idee“Das ist Dein Code (Post #16). Kannst Du mal ohne zu palavern schreiben, was mit den empfangenen Daten passieren soll?
-
OK. Wo ist das Problem?
-
Zitat von Sbfer: „immer ERST wenn BEIDE Zeilen vollständig empfangen wurden“Kommen IMMER genau zwei Zeilen gepaart an?
-
@Sbfer Wenn Du die Pakete unterscheiden kannst, packst Du einfach ein erstes Paket in eine Variable, und wenn das zweite Paket da ist, hängst Du es an diese Variable und packst beide gemeinsam in die TextBox. Dann löschst Du die Variable wieder. Feddich.
-
Zitat von Sbfer: „Müsste ich hier ein anderes Encoding verwenden?“Was sagt die Beschreibung der Gegenstelle?
-
Zitat von Sbfer: „ich denke, das Problem mit der Darstellung der Umlaute werde ich mit Text.Replace lösen.“Mit dem richtigen Encoding sollte das nicht nötig sein. Ich nehme mal an, dass Du nicht der erste bist, der dieses Problem hat?