[Studienarbeiten: Kommunikation zwischen PDAs]

3.2 Allgemeine Beschreibung von IrChat

IrChat ist ein plattformübergreifendes Chat-Programm für zwei beliebige PDAs (Personal Digital Assistant) über die Infrarotschnittstelle. Als Kommunikationsprotokoll dient das von der IrDA (Infrared Data Association) definierte TinyTP. Im Rahmen dieser Studienarbeit wurden Clients für die Betriebsysteme WindowsCE und Psions EPOC32 entwickelt.

IrChat bietet zusätzlich zum Chat noch die Möglichkeit, Dateien zu übertragen, was allerdings ohne jegliche Konvertierung geschieht.

Grundlegender Aufbau

Für eine Verbindung mit IrChat muß einer der beiden Partner einen Server starten und der andere zu diesem Server eine Verbindung öffnen. Besteht diese Verbindung, können beide Partner Textmeldungen eingeben und diese an den Partner schicken. Zur Identifizierung kann jeder dem anderen seinen Benutzernamen mitteilen, den dieser dann zusammen mit jeder von dort kommenden Meldung anzeigen sollte.
Textmeldungen werden ohne weitere Protokollinformationen in 8-Bit ASCII übertragen. Für die Übertragung des Benutzernamens und den eingebauten Filetransfer waren aber eine Reihe von Steuerkommandos nötig. Um diese zu übertragen wurde ein Escape-Character definiert, der im Text nicht vorkommen darf. Da es sich bei diesem Zeichen um das Zeichen <Esc> mit dem ASCII-Code 27 handelt ist dies aber in einem Chatprogramm sehr unwahrscheinlich. Deshalb wurde auf weitere Maßnahmen wie Character-Stuffing verzichtet. Um das Protokoll möglichst einfach zu halten, wurden für die Kommandos noch folgende Konventionen fesgelegt:

  1. Alle Kommandos müssen in einem eigenen Datenblock übertragen werden und das Zeichen <Esc> muß das erste Zeichen dieses Blocks sein.
  2. Alle Kommandos werden durch ein einzelnes Kommandozeichen identifiziert, das unmittelbar auf das Zeichen <Esc> folgt. Es dürfen auch keine Whitespaces dazwischen sein.
  3. Alle Kommandozeichen müssen mit Großbuchstaben geschrieben werden.
  4. Benötigt ein Kommando noch einen weiteren Parameter, so muß auch dieser unmittelbar auf das Kommandozeichen folgen.

Kommandos

Allgemeine Kommandos

USER: U<USERNAME>

Dateiübertragung

FILENAME: N<Name>

FILEREADY: R

FILEACK: A

FILECANCEL: C

BLOCK: B<Datenblock>

Die Dateiübertragung läuft folgendermaßen ab:

  1. Sender sendet EscN<Dateinamen>.
  2. Sender sendet EscR.
  3. Empfänger bestätigt mit EscA oder bricht mit EscC ab.
  4. Sender sendet nacheinander alle Blöcke der Datei mit EscB<Block>.
  5. Sender sendet EscA um anzuzeigen, daß Übertragung erfolgreich abgeschlossen wurde.

Sender und Empfänger können jederzeit mit EscC die Übertragung abbrechen.

Die folgenden beiden Grafiken, zeigen die Dateiübertragung auf Empfänger- und Senderseite als endliche Automaten. Die Zustandsübergänge sind dabei so beschriftet, daß zunächst das empfangene Kommandozeichen (oder _) für einen spontanen Übergang) und dann durch Komma getrennt das gesendete Steuerzeichen (oder _ für keine Ausgabe) angegeben ist.

Endlicher Automat für Empfänger

 

Endlicher Automat für Sender

 
 

[Studienarbeiten: Kommunikation zwischen PDAs]