Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: udp naar serial  (gelezen 940 keer)

udp naar serial
« Gepost op: 2011/11/28, 07:00:11 »
Aan boord van onze boot praten de instrumenten op een UDP poort, onze navigatiesoftware kan zowel op een  UDP poort als op een seriele poort "luisteren" naar de instrumenten. Het navigatieprogramma is een windows toepassing die draait in virtualbox en heeft geen enkel probleem om de instrumenten te vinden op de UDP poort.

Nu heb ik opencpn geinstalleerd en daarvoor zou ik de data die binnenkomt op de UDP poort moeten doorsturen naar één van de com poorten... Weet iemand hoe men dat doet ?

Alvast bedankt voor het meedenken

Re: udp naar serial
« Reactie #1 Gepost op: 2011/11/28, 07:45:08 »
Kun je binnen opencpn zelf een device file (/dev/ttyS*) kiezen als seriele poort? Kun je daar ook een willekeurig ander bestand kiezen? Probeer dan eens iets als:
Code: (Terminal) [Selecteer]
mkfifo /tmp/udp2serial
nc -lu **** >> /tmp/udp2serial
**** is dan je inkomende udp-poort...

Re: udp naar serial
« Reactie #2 Gepost op: 2011/11/28, 08:54:31 »
Dank voor de suggestie!

ik kan in opencpn kiezen uit een aantal  device files:  /dev/ttyS0 - 3, network GPSD, network LIBGPS, AIS port, of ik kan er zelf één specifieren.

ik neem aan dat ik in dit geval dan /tmp/udp2serial als device file moet gebruiken ? In dat geval: helaas geen inkomende data te zien. (overigens op geen van de andere device files die opencpn zelf voorstelt ook niet).

als ik /tmp/udp2serial gebruik en op ok klik dan verdwijnt dat device file weer uit het veld waar ik dat ingevoerd heb dus waarschijnlijk kan opencpn alleen die device files gebruiken die ie zelf voorstelt/detecteert


Re: udp naar serial
« Reactie #3 Gepost op: 2011/11/29, 17:21:41 »
Eigenlijk weet ik hier ook niet zo veel vanaf, misschien weet een ander forumlid meer?

Misschien kun je het in de richting van socat zoeken, http://www.dest-unreach.org/socat/doc/socat.html
Probeer daar ergens een virtuele com-poort aan te maken, en die dan in opencpn te openen.
PTY
 Generates a pseudo terminal (pty) and uses its master side. Another process may open the pty's slave side using it like a serial line
Let op: het zou wel eens kunnen zijn dat socat verschil maakt tussen pty en PTY, en dat dit twee verschillende opties zijn.

Dit zou je dan moeten kunnen linken aan een UDP-poort
UDP-LISTEN:<port>
 Waits for a UDP/IP packet arriving on <port> [UDP service] and `connects' back to sender. The accepted IP version is 4 or the one specified with option pf. Please note that, due to UDP protocol properties, no real connection is established; data has to arrive from the peer first, and no end-of-file condition can be transported. Note that opening this address usually blocks until a client connects

Hoe je dat precies helemaal in elkaar moet zetten zou ik zo niet weten, maar als ik het zo zie is het wel mogelijk. socat zit trouwens in de pakketbronnen (synaptic).

Het valt te hopen dat opencpn de "taal" van je GPS-apparaat begrijpt. Als ik het zo zie werkt opencpn met het "NMEA-protocol".

Maar goed, verder weet ik er ook niets vanaf...

Re: udp naar serial
« Reactie #4 Gepost op: 2011/12/01, 08:51:55 »
Ik zal socat eens uitpluizen

Er is 1 pc aan boord die alle instrumenten (GPS, compas, AIS transponder, dieptemeter -overigens allemaal NMEA) ontvangt via een 4 port serial to USB convertor.

Het navigatieprogramma dat we gebruiken (tresco navigis) kan je instellen om ofwel de NMEA data van een seriele poort dan wel van een UDP poort te plukken, daarnaast kan je aanvinken "transmit NMEA" en een poort specifieren, andere computers aan boord die ook tresco draaien kunnen dan de instrumenten via het lan op deze poort bereiken.

Voorlopig draait seaclear II alleen op de pc die de data ook transmit, met Virtual Serial Port Emulator heb ik de poorten die ik nodig heb "gesplit", zo kan seaclear II simultaan met tresco de instrumenten vinden via de virtuele com poorten.

Op naar man socat (bedankt voor de tip!)