Ya está
Simulación de STW por software de OpenPlotter funcionando correctamente en OpenCPN.
Este es el codigo final. Lee la velocidad del GPS (COG) desde la salida TCP multiplexada en 10110, la convierte en STW y la envia a la entrada UDP 10110 que a su vez es reenviada a la salida multiplexada TCP 10110 cerrando el bucle. Contiene las dos tipos de sentencia (VHM, VBW) para mas compatibilidad con dispositivos.
Código:
#!/usr/bin/env python
import socket, pynmea2
sock_in = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock_in.connect(('127.0.0.1', 10110))
sock_in.settimeout(10)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
frase_nmea = sock_in.recv(512)
if frase_nmea[1:3]=='GP':
msg = pynmea2.parse(frase_nmea)
if msg.sentence_type == 'RMC':
sog = msg.spd_over_grnd
if not sog: sog=0.00
vbw = pynmea2.VBW('II', 'VBW', (str(sog), '', 'A', str(sog), '', 'A'))
vbw1=str(vbw)
vbw2=repr(vbw1)+"\r\n"
sock.sendto(str(vbw2), ('127.0.0.1', 10110))
sogk = sog*1.852
vhw = pynmea2.VHW('II', 'VHW', ('', 'T', '', 'M', str(sog), 'N', str(sogk), 'K'))
vhw1=str(vhw)
vhw2=repr(vhw1)+"\r\n"
sock.sendto(str(vhw2), ('127.0.0.1', 10110))
Me gustaria rescatar del olvido este viejo post de Jiauka donde hace una simulación por hardware genial.
http://foro.latabernadelpuerto.com/s...ad.php?t=90073
Pinguino tengo pendiente trastear con tu imagen aun, es que me voy por peteneras con facilidad
