Die Problemstellung:

Man möchte die Daten eines GPS-Empfängers für mehrere Anwendungen nutzen.

Realisierung:

Windows: Es stehen fertige Lösungen zur Verfügung:

Linux: Hier wird es schon etwas schwieriger und man kommt um etwas Programmierung nicht herum. Im Bild das Prinzip eines Datenflusses: Erläuterung:

- 1. Installation von socat:

'sudo apt-get install socat' (Ubuntu)

- 2. Bereitstellung der virtuellen Schnittstellen ttyUSB98 und ttyUSB99 mittels socat in Perl:

system(“/usr/bin/sudo /usr/bin/socat pty,link='/dev/ttyUSB98',raw,b4800 pty,link='/dev/ttyUSB99',raw,b4800”);

- 3. Benutzerrechte setzen: 'sudo chmod 666 /dev/ttyUSB*'

- 4. Daten von /dev/ttyUSB0 einlesen und verarbeiten. Gleichzeitig die Daten in /dev/ttyUSB98 schreiben.

-5. Das Zusatzprogramm an /dev/ttyUSB99 anschliessen. Da SeaClear nur unter Windows (bzw. wine) läuft müssen hier im Verzeichnis .wine/dosdevices sysmbolische Links gesetzt werden:

'cd <user>.wine/dosdevices'

'ln -s /dev/ttyUSB99 com3'

- 6. SeaClear auf com3 einstellen.

Die markanten Stellen sind im Script (Seite Projekte→Yacht-Navigation) grün dargestellt!