Einfache Input- und Outputleitungen unter OSX und Java

Es kommt öfter vor, dass für eine Anwendung eine Verbindung in die reale Welt notwendig ist. Meist sind nur wenige Ein- oder Ausgänge notwendig und der Einsatz einer IO-Karte, wie z.B. eines IO-Warriors, ist für diesen Zweck übertrieben..

Die Lösung besteht aus der Verwendung einer seriellen Schnittstelle. Diese ermöglicht das Schalten von 2 Leitungen und das Einlesen von 4 digitalen Werten. USB->RS232 Adapter sind preiswert zu haben. Aus meiner Erfahrungen heraus funktionieren FTDI-basierte Adapter bestens und bieten Treiber für viele Betriebssysteme.

Um sich den Zustand der Pins direkt lesen und setzen zu können kann z.B CoolTerm verwendet werden. Unter Unix gibt es statserial das den Zustands der einzelnen Pins anzeigt. Unter OSX ist es nicht vorhanden. Hier der Port (mit Source), den Ich um die Funktion des Setzens von RTS und DTR erweitert habe.

So sieht das dann aus:

statserial
Um das Ganze plattformübergreifend einzusetzen bietet sich das Projekt RXTX.org an. Getestet habe ich dies unter Win2k/XP und OSX10.4 bis 10.9

RXD und TXD lassen sich nicht einfach nutzen. Es bleiben 2 Ausgänge und 4 Eingänge.
Hierfür bietet RXTX die Befehle setRTS(), setDTR(), isRI(), isCD(), isCTS und isDSR().

Ein Problem ist die fehlende Spannungsversorgung an der seriellen Schnittstelle. Man kann dafür einen der Ausgänge (RTS oder DTR) verwenden. Also einen Ausgang setzen und diesen dann (z.B. mit einem Taster) mit dem Eingang verbinden.