Beispielverbindung über TCP/UDP

<< Click to Display Table of Contents >>

Navigation:  Komponenten > Kommunikation > Multi-IO-IP > Wie stelle ich mit Multi-IO eine Geräteverbindung her? >

Beispielverbindung über TCP/UDP

Ein Gerät zum Abspielen von MP3 Dateien soll über TCP bzw. UDP gesteuert werden.  Es soll ein Befehl gesendet werden, um einen MP3 Player zum Abspielen bzw. Stoppen einer Playlist zu bewegen.

 

Es soll eine Zeichenkette von diesem Format verschickt werden:

 

Befehl:

cmd=play

cmd=stop

 

IP-Adresse:

192.168.1.100:80

 

Übertragungsart: TCP

kein Prefix/Postfix

kein Datenfilter

Einstellungen: Ziel IP/Port: 192.168.1.100:80

 

 

In der Einträge-Editor werden entweder zwei Einträge angelegt, jeder mit dem speziellen Eintrag im Feld „Befehl“ oder nur einen Eintrag und überträgt die Zeichenketten beispielsweise über einen DataPointValue vom Typ String einer Komponente und verbindet den Ausgang mit diesem angelegten Datenpunkt. In der folgenden Tabelle sind beide Einträge zum Abspielen und zum Stoppen einer Playlist angelegt. Die Kodierung muss der benötigten Kodierung der Gegenstelle angepasst werden.

Einträge:

Name

Prefix/Postfix

Datenfilter

Befehl

Erwartete Antwort

Nur empfangbar

Kodierung

Antwort umleiten

Play-TCP

kein

kein

cmd=start

 

 

Unicode/ASCII

Nein

Stop-TCP

kein

kein

cmd=stop

 

 

Unicode/ASCII

Nein

 

Ein entscheidender Unterschied zur Funktionalität von Multi-IO-IP bei HTTP ist, dass eine erwartete Antwort im Feld eingestellt werden kann. Schickt das Gerät beispielsweise eine Zeichenkette als positive Bestätigung, so wartet die Komponente nach dem Versand auf ein Telegramm und vergleicht dieses mit den Daten, welche im Feld „Erwartete Antwort“ eingetragen sind. Ist hier nichts eingetragen, wird auch nicht auf eine Antwort gewartet, Entsprechen die empfangen Daten im Fall eines Eintrags NICHT den eingetragen, so wird eine Fehlermeldung auf den Ausgang „Fehlermeldungen“ ausgegeben. Das folgende Beispiel zeigt einen solche erwartete Antwort, in der außerdem Escape-Sequenzen beispielhaft verwendet werden.

Einträge:

Name

Prefix/Postfix

Datenfilter

Befehl

Erwartete Antwort

Nur empfangbar

Kodierung

Antwort umleiten

Play-TCP

kein

kein

 

<ACK/>\r\n\0

 

Unicode/ASCII

Nein

 

 

Im nächsten Beispiel werden binäre Daten zue Ansteuerung verwendet..

Folgender Bytestrom soll zur Steuerung eines kleinen Embedded Devices gesendet werden (in Hexadezimaler Darstellung):

 

0xaa 0x01 0x11 0xaa

 

Es darf dem hexadezimalen Befehl KEIN „0x“ vorangestellt (case insensitive) werden. Alle Werte werden durch ein einfaches Leerzeichen voneinander getrennt. Will man eine Reihe von Bytes verschicken, dürfen diese Angaben NICHT mit normalen Zeichenketten oder Escape-Sequenzen vermischt werden. Kann ein Folge von hexadezimalen Werten nicht im Ganzen in einzelne Bytes konvertiert werden, so wird die eingegebene Zeichenkette als ASCII Zeichenkette unkonvertiert versendet:

Einträge:

Name

Prefix/Postfix

Datenfilter

Befehl

Erwartete Antwort

Nur empfangbar

Kodierung

Antwort umleiten

Play-TCP

kein

kein

cmd=start

aa 01 11 aa

 

Unicode

Nein