Suchergebnisse

Suchergebnisse 1-18 von insgesamt 18.

  • Benutzer-Avatarbild

    Hallo, Also ich schaue gerade durch verschiedene Threads bezüglich seriellen Schnittstellen. Meist ist man da schon etwas weiter in der Materie, so wie ich das sehe. Ich würde so rein vom theoretischen her nur mal verstehen wollen, was so die untersten Notwendigkeiten sind um überhaupt mit einer seriellen Schnittstelle zu arbeiten. Ich denke mal der ComPort muss gewählt werden und dann gibts noch sowas wie BaudRate und Handshakes. Der Port muss geöffnet, gelesen und geschlossen werden. Ja und da…

  • Benutzer-Avatarbild

    Ich hab mir erstmal angeschaut was ein Thread ist. Ich verstehe das Beispiel: docs.microsoft.com/de-de/dotne…ading.thread?view=net-5.0 Aber was ein Thread genau ist ist mir noch nicht klar, das ist quasi ein Teil des Programms der das andere unterbricht, aber warum? Dann wird im Beispiel auch der Thread selbst "produziert" oder? Wie kommt es das manche Thread schon vorher da sind, wie beim SerialPort? Invoke heißt quasi den Thread zu starten? Im Beispiel wird mit Thread.Sleep der andere Thread g…

  • Benutzer-Avatarbild

    Also Invoke schiebt die Methode in den Serialport Thread? @VaporiZed Also in dem Beispiel von Microsoft, sieht es ja so aus, als würden sich die Thread abwechseln. Wenn die wirklich gleichzeitig laufen, dann kann das je nachdem wie lange eine einzelne Anweisung braucht auch weniger abwechselnd aussehen? Und dann ist mir glaub ich immer noch nicht klar was mit dem time slice gemeint ist Wie kann ich mir denn so ein DataReceived-Event vorstellen? Wenn da Daten über den Port kommen, dann läuft das …

  • Benutzer-Avatarbild

    Also IO.Ports.SerialPort.GetPortNames() läuft generell schon auf nem anderen Thread, deswegen hole ich es rüber mit Invoke?

  • Benutzer-Avatarbild

    Ohje, kann man denn eine Aussage treffen was in welchem Thread läuft? Ihr seht ja ich muss recht viel raten. Dann gibts jetz sicher noch nen wichtigen Unterschied zwischen Invoke und BeginInvoke, das verwirrt mich eher zusätzlich. Das .Sleep hat sicherlich mit dem Zeitinterval zu tun, das hatte ich auch nochmal gefragt oben. Also dann rate ich mal weiter: Mein Fenster loadet, das machts im GUI-Thread, das Load-Event wird gefeuert. Die Sub dazu läuft auch im GUI-Thread. Also der Invoke-Befehl kom…

  • Benutzer-Avatarbild

    Also ich habe jetzt das einmal mit und einmal ohne Invoke probiert: Also nur das Loading, da kann ich keinen Unterschied feststellen in der Ausführung, das heißt ich lass das System machen, aber in einem Fall ja scheinbar falsch, sonst hätte @Bartosz das wohl nicht geschrieben. VB.NET-Quellcode (5 Zeilen) VB.NET-Quellcode (5 Zeilen) Mit InvokeRequired hingegen führt er das nicht mehr aus. Das heißt wohl das ist nicht Required, aber trotzdem kann man Invoken?

  • Benutzer-Avatarbild

    Achso, ich dachte ihr versucht mir zu erklären, warum da trotzdem ein Invoke hinkommt, und nicht dass das falsch ist. Ok, ich sehe das Invoke ist im DataReceived Sub erforderlich im Load-Sub nicht. Ich habs aber immer noch nicht verstanden sry. Vielen Dank, dass ihr mir weiterhelft. Ich habe trotz dessen ich nicht weiß was passiert, das Ganze ausprobiert und mit einem Barcodescanner versucht etwas in die Textbox zu scannen. Ich erhalte nicht jedes mal dasselbe Ergebnis, manchmal kommt ein Fragez…

  • Benutzer-Avatarbild

    Ja so habe ich den Scanner eingestellt, der emuliert einen seriellen Anschluß, das mit der Tastatur kann man auch einstellen, da funktioniert bei mir aber garnichts. Ich habe einen vermeintlichen Fix hiermit: VB.NET-Quellcode (20 Zeilen) Das funktioniert für 9-stellige und 14-stellige Barcodes jetzt so zuverlässig, dass ich keinen "zu kurzen" String mehr bekomme. Anstatt: (Versteckter Text) Nachtrag: Ich habe jetzt ein Suffix Zeichen eingestellt "+" oder Chr(43) und es daraufhin mit SerialPort1.…

  • Benutzer-Avatarbild

    Möglicherweise ist es ein zeitliches Problem. Ich hatte nach Ablauf dieser Zeile: Dim prüf As Integer = Port1.BytesToRead in prüf 8 angezeigt bekommen und in Port1.BytesToRead 15. Was ja wenn ich das zuweise eigentlich wenig Sinn ergibt.

  • Benutzer-Avatarbild

    Ich kenne ReadExisting()nicht, daher kann ich dir die Frage nicht beantworten. Der BarcodeScanner sendet über serielle Schnittstelle. Ich trau mich auch nicht das jetzt auszuprobieren da ich mein obiges Problem augenscheinlich behoben habe mit automatischer Byte-Erkennung: VB.NET-Quellcode (10 Zeilen) Ob ich da richtig geraten habe? Mit Thread.Sleep dem DataReceived-Event mehr Zeit zu geben? Oder ist das Blödsinn und funktioniert nur ausversehen? Inwiefern funktioniert .ReadExisting anders? Ich …

  • Benutzer-Avatarbild

    Ich werd es morgen ausprobieren, aber wärst du so nett und zu meiner Version noch zu sagen ob das Sinn ergibt? Denn das Thread.Sleep ist ja eig. im DataReceived-Event Sub und damit wäre das was, was im anderen Thread ausgeführt wird? Oder ist das automatisch der Hauptthread? Das scheint nämlich den Unterschied zu machen, ob ich immer die vollständigen Daten bekomme oder sporadisch nicht. ​Serialport.ReadExisting "Liest alle sofort verfügbaren Bytes auf Grundlage der Codierung sowohl im Stream al…

  • Benutzer-Avatarbild

    Naja was heißt philosophieren. Den Barcodescanner können wir gerne weglassen, ich dachte damit kommen wir der Sache wieder näher, da ihr so auf den Anwendungsfall beharrt habt. Der Thread soll sich nicht um den Scanner drehen, deswegen heißts ja Theorie Serialport. Wie gesagt ihr habt mir signalisiert, dass ihr über was anderes reden wollt. Ich verwende ansonsten den Code wie Bartosz ihn eingangs gepostet hat, daher habe ich das nicht nochmal dazu getan. In dem Sinne ist hier alles vollständig. …

  • Benutzer-Avatarbild

    Mit Initialisierung meinst du den Teil mit der Baudrate usw.? Woran erkenne ich ob ich "echte" Bytes oder String-Bytes lese? Was sind echte Bytes?

  • Benutzer-Avatarbild

    Wenn es sich für verschiedene Empfänge unterscheidet würde ich gerne über mehrere Möglichkeiten sprechen. Also für String, für Zahlen, für was kann es denn sonst noch geben?

  • Benutzer-Avatarbild

    Ok, das sieht alles noch recht übersichtlich aus. Nur mal zur Klarifikation, was passiert denn, wenn ich .ReadExisting für nicht String repräsentierende Bytes verwende? Ist das nur ein Konvertierungsproblem oder passiert da mehr? Wenn ich nun für String repräsentierende Bytes .ReadExisting verwende, spare ich mir dann nur ein bisschen Code oder passieren da ganz andere Vorgänge als bei .Read?

  • Benutzer-Avatarbild

    Ok, also Read ist ja offensichtlich was es tut man gibt ihm ja sogar den Byte()-Behälter mit. Und ReadExisting macht dasselbe und konvertiert direkt mit? Oder macht es noch mehr? In der Beschreibung steht "Liest alle sofort verfügbaren Bytes auf Grundlage der Codierung im Stream und im Eingabepuffer des SerialPort-Objekts" Das verstehe aber aus einigen Gründen nicht. Ich weiß was der Eingabepuffer ist, den liest Read quasi auch aus. Aber was ist der Stream? Was heißt sofort verfügbar? Wo wird di…

  • Benutzer-Avatarbild

    Und die Codierung ist nicht wichtig? Bei .Read steht z.B. kein "sofort verfügbar". Was hat das auf sich? Ist Stream und Eingabepuffer dasselbe?

  • Benutzer-Avatarbild

    @Takafusa Aber es steht generell dasselbe drin pro Event? Zitat von RodFromGermany: „@Haudruferzappeltnoch SerialPort.ReadExisting() liefert einen String zurück. Dieser ist entsprechend .Encoding konvertiert. “ Danke, das versuche ich zu erfragen