Erste funktionsfähige Tracker-Version
This commit is contained in:
39
nmea0183.py
39
nmea0183.py
@@ -9,9 +9,10 @@ TODO Multi-Sentence verarbeiten
|
||||
|
||||
import serial
|
||||
from setproctitle import setthreadtitle
|
||||
import pynmea2
|
||||
|
||||
# Empfangsthread
|
||||
def rxd_0183(appdata, devname):
|
||||
def rxd_0183(appdata,boatdata, devname):
|
||||
# Prüfe ob NMEA0183-Port vorhanden ist und sich öffnen läßt
|
||||
try:
|
||||
ser = serial.Serial(devname, 115200, timeout=3)
|
||||
@@ -351,28 +352,28 @@ def VPW(boatdata, msg):
|
||||
def VTG(boatdata, msg):
|
||||
# Track made good and speed over ground
|
||||
"""
|
||||
(('True Track made good', 'true_track', <class 'float'>),
|
||||
('True Track made good symbol', 'true_track_sym'),
|
||||
('Magnetic Track made good', 'mag_track', <class 'decimal.Decimal'>),
|
||||
('Magnetic Track symbol', 'mag_track_sym'),
|
||||
('Speed over ground knots', 'spd_over_grnd_kts', <class 'decimal.Decimal'>),
|
||||
('Speed over ground symbol', 'spd_over_grnd_kts_sym'),
|
||||
('Speed over ground kmph', 'spd_over_grnd_kmph', <class 'float'>),
|
||||
('Speed over ground kmph symbol', 'spd_over_grnd_kmph_sym'),
|
||||
('FAA mode indicator', 'faa_mode'))
|
||||
['', 'T', '', 'M', '0.117', 'N', '0.216', 'K', 'A']
|
||||
(('True Track made good', 'true_track', <class 'float'>),
|
||||
('True Track made good symbol', 'true_track_sym'),
|
||||
('Magnetic Track made good', 'mag_track', <class 'decimal.Decimal'>),
|
||||
('Magnetic Track symbol', 'mag_track_sym'),
|
||||
('Speed over ground knots', 'spd_over_grnd_kts', <class 'decimal.Decimal'>),
|
||||
('Speed over ground symbol', 'spd_over_grnd_kts_sym'),
|
||||
('Speed over ground kmph', 'spd_over_grnd_kmph', <class 'float'>),
|
||||
('Speed over ground kmph symbol', 'spd_over_grnd_kmph_sym'),
|
||||
('FAA mode indicator', 'faa_mode'))
|
||||
['', 'T', '', 'M', '0.117', 'N', '0.216', 'K', 'A']
|
||||
$IIVTG,312.000000,T,,M,2.000000,N,3.704000,K,A*28
|
||||
"""
|
||||
#print("-> VTG")
|
||||
# msg.true_track true_track_sym
|
||||
# msg.mag_track mag_track_sym
|
||||
# msg.faa_mode
|
||||
if msg.faa_mode != 'A':
|
||||
return
|
||||
#TODO klären was für Typen hier ankommen können
|
||||
# bytearray, str, decimal.Decimal?
|
||||
#sog = float(msg.spd_over_grnd_kts)
|
||||
#str von OpenCPN: sog = float(msg.spd_over_grnd_kts[:-1])
|
||||
#boatdata.setValue("SOG", sog)
|
||||
#print("VTG", msg.spd_over_grnd_kts)
|
||||
print("VTG", msg)
|
||||
#Ggf. ist OpenCPN buggy!
|
||||
cog = float(msg.true_track) # in Grad
|
||||
sog = float(msg.spd_over_grnd_kts) # in Knoten
|
||||
boatdata.setValue("COG", cog)
|
||||
boatdata.setValue("SOG", sog)
|
||||
|
||||
def VWR(boatdata, msg):
|
||||
# Relative Wind Speed and Angle
|
||||
|
||||
Reference in New Issue
Block a user