Gilinas he adaptado tu script a openplotter y he notado que en tu script el calculo del cheksum no se hace correctamente, a ti te sale *67 y a mi *43 y el tuyo no pasa la validación checksum de OpenCPN.
Te pego mi script por si quieres usar algo de el. Veras que pynmea2 se encarga de calcular el cheksum y que envio la sentencia a una UDP en 10110 que es donde envío tambien el SDR-AIS y que viene por defecto activado en openplotter.
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))
Otra cosa que he notado pero esta vez en OpenCPN es que recibe las sentencias correctamente pero no las muestra si creas un panel con STW.
Es un error de OpenCPN?
OpenCPN no coge la speed over water de la sentencia $IIVBW? en ese caso de que otra sentencia la puede coger?
STW es Speed Through Water no?
A ti te pasa lo mismo?

