Befehle von PC über RS232 an LG TV senden!

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Befehle von PC über RS232 an LG TV senden!

    Hallo,

    ich wollte über einen PC meinen LG TV, welcher mit einem COM-Kabel mit dem PC verbunden ist, automatisch ausschalten lassen, indem ich dem Fernseher den Befehl "ka 00" übermittle.
    Meiner Code sieht bis jetzt so aus:

    Visual Basic-Quellcode

    1. Private SerialPort As SerialPort = New SerialPort
    2. Sub test()
    3. SerialPort.Open()
    4. SerialPort.PortName = "COM1"
    5. SerialPort.BaudRate = 9600
    6. SerialPort.Parity = Parity.None
    7. SerialPort.StopBits = StopBits.One
    8. SerialPort.WriteTimeout = 10000
    9. SerialPort.Write("ka 00")
    10. SerialPort.Close()
    11. 'Auslesen des Portes funktioniert nicht, da ich die Parameter von SerialPort.Read(...) nicht weiß und auch im Internet nicht genügend
    12. 'Informationen zu diesem speziellen Thema finde
    13. End Sub


    Weiter komme ich nicht, da ich nicht weiß ob der Befehl ankam oder nicht! Im Internet habe ich jetzt schon ewig gesucht, aber bisher nichts wirklich hilfreiches im Internet finden können das mir weiterhilft bzw. das ich verstehe/das gut erklärt wird damit ich es als "Anfänger" verstehen kann!

    Ich hoffe mir kann einer helfen oder Lösungsansätze geben, damit ich das einigermaßen auf die Kette bekomme.


    Piket95

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Piket95 schrieb:

    SerialPort.Open()
    und SerialPort.Close() werden nicht vor und nach dem Senden, sondern separat (z.B. per Button Connect und Disconnect) aufgerufen.
    Gib der Variable SerialPort von Typ SerialPort (gleicher Name :!: ) eine andere Bezeichnung.
    Besser:
    Schmeiß die Variable raus und zieh Dir im Designer ein SerialPort auf die Form.
    Dann kannst Du auf Antworten der Gegenstelle reagieren, wenn Du das Event .DataReceived abonierst.
    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!
    Ok hab das jetzt soweit geändert wie du es hier geschildert hast.

    Code sieht nun folgendermaßen aus:

    Visual Basic-Quellcode

    1. Imports System
    2. Imports System.IO.Ports
    3. Public Class Form1
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. SerialPort1.Open()
    6. Debug.WriteLine("Port geöffnet")
    7. End Sub
    8. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    9. With SerialPort1
    10. .PortName = "COM1"
    11. .StopBits = StopBits.One
    12. .Parity = Parity.None
    13. .BaudRate = 9600
    14. .DataBits = 8
    15. .Encoding = System.Text.Encoding.ASCII
    16. End With
    17. End Sub
    18. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    19. SerialPort1.Close()
    20. Debug.WriteLine("Port geschlossen!")
    21. End Sub
    22. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    23. Try
    24. SerialPort1.Write("ka 01 00")
    25. Catch ex As Exception
    26. Debug.WriteLine("Klappt nich...:" & ex.Message)
    27. End Try
    28. End Sub
    29. End Class


    Ich kann den Port öffnen und was reinschreiben. (Er wirft zumindest keinen Fehler aus!) Jedoch kommt da denke ich nichts am Fernseher an. Wie kann ich denn auslesen oder überprüfen wo der Fehler liegen kann bzw. ob der Befehl "ka 01 00" auch wirklich an den PC gegangen ist? Hat da jemand eine Idee?

    Piket95 schrieb:

    Idee
    Muss da ggf. noch eine Ende-Kennung dran?
    Gib dem Port die entsprechenden Wert in die Property SerialPort1.NewLine und arbeite dann mit SerialPort1.WriteLine().
    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!