Ein Spielzeug für die Steuerung des Com-Ports (hilft evtl. einigen Besitzern von Groß-DisplaysDieser Wrapper dient dazu, aus Scripten heraus über die serielle Schnittstelle der DBox
mit Geräten zu kommunizieren. Da mit einem Script weder Binärdaten ausgegeben oder aus-
gewertet werden können noch z.B. Checksummen über XOR berechnet werden können, bietet
der Wrapper eine Kommandozeilenschnittstelle, über welche solche Aufgaben und Auswertun-
gen möglich sind.
Geöffnet und konfiguriert wird die Schnittstelle mit dem ebenfalls im Archiv befindlichen "stty".
Installation:
comwrap und stty kommen mit den Rechten 755 nach /var/bin/. Mehr ist für die Installation
nicht zu tun.
Nutzung:
Bevor die serielle Schnittstelle verwendet werden kann, muß sie zunächst erst einmal geöff-
net und konfiguriert werden. Voraussetzung ist allerdings, daß die Bootkonsole von Neutrino
nicht auf "seriell" eingestellt ist, da es sonst zu gegenseitigen Beeinflussungen kommt.
Geöffnet und konfiguriert wird die Schnittstelle mit "stty". Die Aufrufsyntax von "stty"
kann man sich in den Linux-Beschreibungen anschauen. Eine Beschreibung findet man zum Bei-
spiel auf http://www.computerhope.com/unix/ustty.htm.
Um zum Beispiel den externen Com-Port mit den Parametern 19200 Baud und 8 Datenbit zu öffnen,
ist zu Beginn des Scriptes folgendes Kommando auszuführen: "stty 19200 cs8 </dev/tts/0"
Nun kann man über den Aufruf von comwrap Daten zur Schnittstelle senden oder von ihr empfan-
gen. Da empfangene Daten über die Kommandozeile zurückgegeben werden, können diese mit der
Aufrufsyntax "Variablenname=`comwrap ...`" einer Variablen zugewiesen und anschließend aus-
gewertet werden. Der Erfolg von Lese- und Schreibkommandos kann unmittelbar nach dem Aufruf
über die Systemvariable "$?" abgefragt werden. "0" bedeutet erfolgreiche Ausführung des Vor-
gangs, "1" bedeutet, daß ein Fehler aufgetreten ist.
Aufrufsyntax von comwrap:
comwrap Device Mode [Konsolenformat] [Comformat] [Endezeichen] [Checksumme] [zu lesende Bytes] [Senddaten [Sendedaten [...]]]
Device
welcher Port soll verwendet werden?
-d0: externer Port
-d1: interner Port
Mode
was wollen wir machen?
-r: Empfangen
-w: Senden
Konsolenformat
wie sollen die vom Script übergebenen Daten interpretiert werden?
-ks: als String
-kd: als Dezimalzahl
-kh[s]: als Hex-Zahl, mit -khs sowohl bei Ein- als auch bei Augabe mit Leerzeichen getrennt
-kb: als Byte
Portformat
wie sollen die interpretierten Daten auf den Port ausgegeben werden?
-ps: als String
-pb: als Byte
-ph[s]: als Hex-Zahl, mit -phs sowohl bei Ein- als auch bei Augabe mit Leerzeichen getrennt
Endezeichen:
sollen Endezeichen angehängt werden?
-ec: beim Schreiben Carriage Return anhängen, beim Lesen nach Carriage Return abbrechen (0x0D)
-el: beim Schreiben Line Feed anhängen, beim Lesen nach Line Feed abbrechen (0x10)
Checksumme
erfolgt eine Kommunikation mit Checksumme und wie sieht die aus?
-co[n]: alle Zeichen werden mit XOR verknüpft und von dem Ergebnis werden n Bytes berücksichtigt
-ca[n]: alle Zeichen werden vorzeichenlos addiert und vom Ergebnis werden n Bytes berücksichtigt
zu lesende Bytes
beim Lesen von Binärdaten vom Port sollen wieviele Bytes gelesen werden?
-nz: es sollen z Bytes empfangen werden
Beispiel: http://www.produktinfo.conrad.com/daten ... eriell.pdf
Um nun zum Beispiel auf dem in dieser Anleitung beschriebenen Conrad-Relaisboard das Relais Nummer
3 (Bitwert 4) zu setzen, ruft man den Wrapper so auf:
comwrap -d0 -w -kd -pb -co1 3 1 4
comwrap -d0 -r -kd -pb -n4
An das Board würde dann folgende Bytefolge gesendet werden: "0x03 0x01 0x04 0x06"
Die übersetzte Antwort des Boards, welche über die Kommandozeile ausgegeben wird
und im Script auch ausgewertet werden könnte sieht dann so aus: "252 1 0 253".
Am Besten kann man sich mit der Funktion vertraut machen, indem man zunächst erst einmal mit
dem Com-Terminal eines PC kommuniziert und den Comwrapper über Telnet mit den entsprechenden
Parametern aufruft.
Dieses ist eine erste Arbeitsversion des Wrappers. Wir würden uns freuen, Erfahrungsberichte und
vor allem Vorschläge für zuätzliche Funktionalitäten von Euch zu bekommen. Die möglichen Kommu-
nikationsprotokolle mit externen Geräten sind ja dermaßen vielgestaltig, daß man nich alle von
vornherein berücksichtigen kann.

Bitte beachten - Wir können natürlich keine Gewähr für irgendwas übernehmen. Wenn ihr irgendein Gerät oder etwas anderes an den Comport eurer Box steckt, vergewissert Euch vorher, das ihr wisst, was ihr tut. Wer dabei etwas toastet und sich oder eine Sache schädigt, ist selbst Schuld.
Also, wer sich nicht sicher ist: besser Finger weg!
Viel Spaß damit!
cu
Jens