"ÿ" über seriellen Port schicken

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    "ÿ" über seriellen Port schicken

    Hallo Leute

    ich versuch im Moment das Zeichen "ÿ" oder auch Chr(255) über den seriellen Port an eine Isel-Steuerung zu schicken. Das Problem dabei ist, dass mein Port Monitor mir nur ein "?" anzeigt und die Steuerung auch überhaupt nicht reagiert.
    Ich habe das auch mit einem CNC-Programm ausprobiert. Dort klappt das und der PortMonitor zeigt mir auch das "ÿ" an.

    Ich hab schon einiges probiert. Chr(255), Chrw(255), "ÿ" über String

    Kennt jemand von euch dieses Problem? Wäre super wenn ihr mir da weiter helfen könntet!

    Danke schonmal

    Marian
    Du musst auf beiden Seiten der Kommunikation dieselbe Codepage einstellen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades
    Danke für den Tip. Bin leider grad nciht mehr an der Maschine. Werds aber gleich morgen Früh ausprobieren!

    @RodFromGermany
    Kannst du mir das genauer erklären?? Was sind Codepages und wie könnte ich die am Rechner und an der Isel-Steuerung einstellen, oder rausfinden??
    Was sind Codepages? Keine Antwort, aber eine kleine Aufzählung:
    - japanisch,
    - kyrillisch,
    - griechisch,
    - westeuropäisch,
    Ich denke, an Deiner Steuerung ist sie eingestellt, nur in Deinem Programm nicht.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(1252) ' westeuropäisch
    3. Dim txt As String = "ÿ"
    4. Dim by As Byte() = enc.GetBytes(Text)
    5. SerialPort1.Write(by, 0, by.Length)
    6. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ja, das ist glaub grad CodePage 1252. (Kannste im Debugger nachgucken - CodePage ist eine Property vom Encoding - fällt mir wieder ein)

    aber probier doch nochmal meine Variante, wo der Wert nicht als String dargestellt, und dann per Encoding nach Byte() decodiert wird, sondern halt gleich ein Byte-Array der Länge 1 in den Port geschrieben:

    VB.NET-Quellcode

    1. SerialPort1.Write(new byte(){255},1)