####################################################################################
####                           comwrap Version 0.03
####   Wrapper zum Ansprechen der seriellen Schnittstellen aus Scripten heraus
####
####              Das New-Tuxwetter-Team: SnowHead und Worschter
####################################################################################

Dieser Wrapper dient dazu, aus Scripten heraus ber die serielle Schnittstelle der DBox
mit Gerten zu kommunizieren. Da mit einem Script weder Binrdaten ausgegeben oder aus-
gewertet werden knnen noch z.B. Checksummen ber XOR berechnet werden knnen, bietet
der Wrapper eine Kommandozeilenschnittstelle, ber welche solche Aufgaben und Auswertun-
gen mglich sind.
Geffnet 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 fr die Installation
nicht zu tun.

Nutzung:
Bevor die serielle Schnittstelle verwendet werden kann, mu sie zunchst erst einmal geff-
net und konfiguriert werden. Voraussetzung ist allerdings, da die Bootkonsole von Neutrino
nicht auf "seriell" eingestellt ist, da es sonst zu gegenseitigen Beeinflussungen kommt.
Geffnet 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 auszufhren: "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 zurckgegeben werden, knnen diese mit der
Aufrufsyntax "Variablenname=`comwrap ...`" einer Variablen zugewiesen und anschlieend aus-
gewertet werden. Der Erfolg von Lese- und Schreibkommandos kann unmittelbar nach dem Aufruf
ber die Systemvariable "$?" abgefragt werden. "0" bedeutet erfolgreiche Ausfhrung 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:  nur Empfangen
-w:  nur Senden
-wr: erst Senden, dann Empfangen
-rw: erst Empfangen, denn 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 angehngt werden?
-ec: beim Schreiben Carriage Return anhngen, beim Lesen nach Carriage Return abbrechen (0x0D)
-el: beim Schreiben Line Feed anhngen, 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 verknpft und von dem Ergebnis werden n Bytes bercksichtigt
-ca[n]: alle Zeichen werden vorzeichenlos addiert und vom Ergebnis werden n Bytes bercksichtigt

zu lesende Bytes
beim Lesen von Binrdaten vom Port sollen wieviele Bytes gelesen werden?
-nz: es sollen z Bytes empfangen werden


Beispiel: http://www.produktinfo.conrad.com/datenbla...ach_seriell.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 -wr -kd -pb -co1 -n4 3 1 4

An das Board wrde 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 knnte sieht dann so aus: "252 1 0 253".

Am Besten kann man sich mit der Funktion vertraut machen, indem man zunchst 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 wrden uns freuen, Erfahrungsberichte und 
vor allem Vorschlge fr zutzliche Funktionalitten von Euch zu bekommen. Die mglichen Kommu-
nikationsprotokolle mit externen Gerten sind ja dermaen vielgestaltig, da man nicht alle von
vornherein bercksichtigen kann.


Also, viel Spa und viel Erfolg

Das New-Tuxwetter-Team
SnowHead und Worschter