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!