Añade al principio de tu script:
Código:
import socket, pynmea2
El primero es la libreria para enviar/recibir datos TCP/UDP y el segundo es el parser NMEA
A continuación abres una instancia del socket para poder enviar la sentencia generada:
Código:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Y generas la sentencia con el parser. Te pongo el ejemplo de como creo la sentencia NMEA del rumbo mahnetico que capto del sensor IMU:
Código:
hdg = pynmea2.HDG('OS', 'HDG', (str(heading_m),'','','',''))
Te explico que es cada parte para que puedas adaptarlo a la sentencia de viento correspondiente:
pynmea2.HDG es el tipo de talker que quieres generar. Busca
en este código si el talker que se corresponde a la dirección y velocidad del viento está soportado. Seguro que si. Escoges solo talkers que
no estén obsoletos.
'OS' dejalo como está porque eso indica que es una sentencia generada por openplotter y corresponde a un sensor.
'HDG' será el talker que elijas.
(str(heading_m) heading_m es la variable que contiene el valor en grados del rumbo magnetico. Usa tu tus variables que contengan los datos de velocidad y direccion. El comando str lo convierte de valor numérico a texto y es necesario para que el parser lo entienda.
,'','','','' esto son el resto de valores que tiene que contener esta sentencia y que pueden estar vacios si no dispones de esa información o no es relevante. Asegurate que campos tiene que llevar tu talker escogido y rellenalo con variables o espacios vacios.
Una vez tenemos la varible que contiene la sentencia NMEA generada la enviamos a openplotter:
Código:
hdg1=str(hdg)
hdg2=hdg1+"\r\n"
sock.sendto(hdg2, ('localhost', 10110))
con str(hdg) convertimos la sentencia en texto ya que el parser nos devuekve un objeto. Con hdg2=hdg1+"\r\n" le añadimos el final de linea a la sentencia para que luego pueda sert interpretada por los clientes. Con la última linea la enviamos a donde se envián todo el NMEA generado por openplotter ya sea a traves de sus calculos o sus sensores: UDP localhost 10110 consiguiendo que se expanda por todo el sistema.
Cualquier problema ya sabes. Por cierto tienes el código publicado en algún sitio? Porque no abres un github y así podremos clonarlo y añadirle cambios fácilmente?