Terminator2
Erfahrenes Mitglied
Hallo,
undzwar habe ich folgenden Code gefunden:
Über den Ausführen Befehl telnet kann ich das zu steuernde Gerät mit den normalen Kurzbefehlen wie "O" steuern. Bei der Steuerung per VB.NET muss jedoch aus dem "O" laut Anleitung "0x4F" erzeugt werden.
Allerdings weiß ich nicht, wie ich an dieses Format komme. Hier noch ein kleiner Ausschnitt aus der Erklärung:
Wie kann ich dieses Format erzeugen?
Gruß David
undzwar habe ich folgenden Code gefunden:
Code:
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.io
Imports System.Threading
'Die Imports
Public stream As NetworkStream
Public sr As StreamReader
Private Function sendCommand(ByVal send As String) As String
send += vbCrLf
Dim data As [Byte]() = Encoding.ASCII.GetBytes(send)
stream.Write(data, 0, data.Length)
sr = New StreamReader(stream)
Dim buffer As New StringBuilder
Do While sr.Peek() > 0
Thread.Sleep(100)
buffer.Append(sr.ReadLine + vbCrLf)
Loop
Return buffer.ToString
End Function
Dim info as String
Dim server As String = "servername"
Dim user As String = "benutername"
Dim password As String = "passwort"
Dim client As New TcpClient(server, 110)
stream = client.GetStream()
sr = New StreamReader(stream)
info += sendCommand("?")
MSGBOX(info)
Über den Ausführen Befehl telnet kann ich das zu steuernde Gerät mit den normalen Kurzbefehlen wie "O" steuern. Bei der Steuerung per VB.NET muss jedoch aus dem "O" laut Anleitung "0x4F" erzeugt werden.
Allerdings weiß ich nicht, wie ich an dieses Format komme. Hier noch ein kleiner Ausschnitt aus der Erklärung:
Die Kurzbefehle sind nicht über die Kommandozeile nutzbar, sie können/sollen für eigene Software-Anwendungen genutzt werden, die das Telnet Protokoll unterstützen.
Die Kurzbefehle sind nicht ASCII-codiert, sondern werden binär verwendet. Beispiel: Der Befehl 'O' hat den hexadezimalen Wert 0x4F. Erhält der Telnet-Server diesen Befehl, erwartet er im nächsten empfangenen Byte die Daten wie die Ausgänge geschaltet werden sollen. Sendet man nun über die Konsole O 1, erhält der Server folgende Daten 0x4F 0x20 0x31 (das Leerzeichen hat den Wert 0x20 und die 1 den Wert 0x31). Da nur ein Byte erwartet wird, findet die 0x31 keine Beachtung. Der Wert 0x20 veranlasst den Server dazu den 6. Ausgang zu setzen, da das 6. Bit gesetzt ist.
Wird O1 über die Konsole gesendet, erhält der Server folgende Daten: 0x4F 0x31, es werden nun die Ausgänge 1, 5 und 6 gesetzt, da das 1., 5. und 6. Bit gesetzt sind.
Wie kann ich dieses Format erzeugen?
Gruß David