| |
VB.NET - Ein- und UmsteigerTCP-Verbindung aufbauen | | | Autor: Volker Bunge | Datum: 26.02.17 10:38 |
| Hallo zusammen,
ich möchte ein kleines VB 2010 Express Programm schreiben, welches für meine Eisenbahnanlage eine Lok steuert. Meine Zentrale ist die Rautenhaus RMX950USB Zentrale mit der RMX PC-Zentrale 2.0. In dieser PC-Zentrale gibt es eine RMX-Net Schnittstelle mit der man über eine TcpClient-Klasse die Daten austauschen kann.
Folgende drei Links habe ich erhalten
https://msdn.microsoft.com/de-de/library/system.net.sockets.tcpclient(v=vs.110).aspx
Beispiele zur Verwendung der Klasse finden Sie z.B. hier:
https://code.msdn.microsoft.com/windowsdesktop/TCP-Communication-in-VBNET-f6c48ca0/view/Discussions#content
https://www.vb-paradise.de/index.php/Thread/16242-Ausf%C3%BChrliches-TCP-und-UDP-Tutorial/
Jetzt habe ich mit folgendem Code (Siehe leider weiter unten, Eintrag hier sonst zu lang) kann ich in der Login-Sub auch die erste Anweisung 0x7c senden. Sobald ich aber die zweite Anweisung 0x04 senden möchte, bekomme ich die Fehlermeldungs-Nr 57 "IOException" wurde aufgefangen. In die Übertragungsverbindung können keine Daten geschrieben werden: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen.
Ich habe auch noch eine Doko über das RMX-Net Protokoll vorliegen. Da ich jetzt nicht sicher bin, ob ich diese hier anhängen darf, nur einmal ein kurzer Auszug aus der Anleitung
Aufbau der Datenpakete für Befehle und Antworten
Ein Datenpaket beginnt immer mit drei Headerbytes. Das erste hat den festen Wert 0x7c (Dezimal
124, Binär 01111100), das zweite gibt die Gesamtzahl der im Befehl enthaltenen Bytes (inkl. der
Headerbytes) an. Das dritte Byte steht für die Art des Befehls (OPCODE) bzw. der Antwort.
Danach folgen die befehlsspezifischen Nutzdaten.
<0x7c><COUNT><OPCODE><n * DATA>
Anforderung einer Positivquittung <0x7c><0x04><0x00><0x00>
Serverantwort: Positivquittung <0x7c><0x04><0x00><0x00>
Befehl mit unbekanntem OPCODE <0x7c><0x04<0x0f><0x00>
Serverantwort: Negativquittung <0x7c><0x04><0x01><0x01>
Info der Negativquittung 0x01: unbekannter OPCODE
Info der Negativquittung 0x03: Loknummer nicht in Datenbank
Info der Negativquittung 0x04: Eingabefehler
Info der Negativquittung 0x05: Mode ungleich 0x01
Info der Negativquittung 0x07: Eingabe Lokomotiven Datenbank voll
Info der Negativquittung 0x08: Steuerkanäle belegt
Wo ich jetzt schon meine ersten Schwierigkeiten habe, ist die Art der Befehlsabfolge. Die Klammern stellen ja die einzelnen Byte da und somit die einzelen "Befehle". Meine erste Frage lautet daher: Muss ich diese einzeln senden (also wie oben über eine Schleife) oder kann ich die auch in einem String senden? (welches Trennzeichen ist evtl. dann nötig?). Mit welchem Datentyp kann/muss ich hier am besten arbeiten?
Wenn ich das jetzt richtig verstanden habe, dann muss mein Programm ja als erstes einen "Befehl" senden (also die Klammerabfolge) und dann auf die Rückantwort der Zentrale warten.
Ich werde dann wohl einen Client und einen MultiThread Server brauchen, der dann solange wartet, bis Antworten von der Zentrale kommen. Der Server läuft also permanent und überwacht den Eingang. Der Client reagiert nur auf meine Befehle. Der Server, sobald er eine Rückmeldung erhält, wertet die Daten aus und steuert mein Programm bzw. mein Lok.
Wäre schön, wenn mir einer von Euch bei meinem Problem helfen könnte.
Vielen Dank
Volker | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|