BoatBanter.com

BoatBanter.com (https://www.boatbanter.com/)
-   Electronics (https://www.boatbanter.com/electronics/)
-   -   NMEA sentence parser (https://www.boatbanter.com/electronics/47418-nmea-sentence-parser.html)

Matti Raustia August 19th 05 10:09 AM

NMEA sentence parser
 
My ST50 Multi outputs a broken NMEA sentence: wind info
(VWR). It splits both sentences as two sentences like this:

$IIVWR,113.,R,,,,,,
$IIVWR,,,,,,,03.0,N

I think it has something to do with SeaTalk, as from complete NMEA dump it
seems like wind direction (the first part) is outputted two times before
wind speed (the latter part) is outputted. The complete sentence looks like
this:

$IIHDM,210.,M
$IIMTW,40.,C
$IIVWR,119.,R,,,,,,
$IIHDM,210.,M
$IIMTW,40.,C
$IIDBT,0011.5,f,,,,
$IIVHW,,,,,00.00,N,,
$IIVWR,113.,R,,,,,,
$IIHDM,210.,M
$IIMTW,40.,C
$IIVWR,113.,R,,,,,,
$IIVWR,,,,,,,03.0,N
$IIDBT,0011.5,f,,,,
$IIHDM,210.,M
$IIMTW,40.,C
$IIVWR,118.,R,,,,,,
$IIVHW,,,,,00.00,N,,
$IIHDM,210.,M
$IIMTW,40.,C

Also the speed sentence is somehow broken as it doesn't contain the heading
info, which is available and outputted in the HDM sentence.

I have fould a quite useful free navigation software (SeaClear) with useful
windtrend and analysis add-ons (SeaTrace and SeaTrack), however because of
these ST50 'features' I can't utilise the wind trend etc. I was wondering if
I could get around the problem with virtual serial ports and a parser
software, which would listen the real serial port, parse the NMEA sentences
and feed them to the virtual serial port which would be listened by the
SeaClear.

Do any of you have an idea which software would be useful in this kind of
situation and where to get it?

thanks,

matti

--
"China is a big country, inhabited by many chinese." - Charles de Gaulle

Meindert Sprang August 19th 05 10:51 AM

"Matti Raustia" wrote in message
...
My ST50 Multi outputs a broken NMEA sentence: wind info
(VWR). It splits both sentences as two sentences like this:

$IIVWR,113.,R,,,,,,
$IIVWR,,,,,,,03.0,N


Technically speaking, the sentences are not broken at all. Raymarine just
chose to output the direction and speed in two separate sentences, leaving
the unused fields blank. This is completely according to the NMEA specs,
however stupid it may seem. You could even go one step further and blame
SeaClear because they omit to keep the last received value in a sentence
for, say, 10 seconds before assuming the info is not present. If they did it
that way, SeaClear could then combine the wind direction and speed and do
something useful. Since SeaClear is a free program, your best bet is to
write the author and explain the problem to him. This should be very easy to
fix for him.

Because the wind speed and direction are contained in two different SeaTalk
datagrams, the Raymarine converter just translates each datagram into an
NMEA sentence, where the speed is averaged over a longer period, thus the
lower frequency of the sentence. In my multiplexers (www.shipmodul.com), I
collect both datagrams (speed and direction) and output one NMEA sentence
with both fields filled.

Meindert



Glen \Wiley\ Wilson August 19th 05 01:04 PM

On Fri, 19 Aug 2005 11:51:05 +0200, "Meindert Sprang"
wrote:

Because the wind speed and direction are contained in two different SeaTalk
datagrams, the Raymarine converter just translates each datagram into an
NMEA sentence, where the speed is averaged over a longer period, thus the
lower frequency of the sentence. In my multiplexers (www.shipmodul.com), I
collect both datagrams (speed and direction) and output one NMEA sentence
with both fields filled.


Yeah, I've dealt with this issue on both Seatalk and Nexus hardware.
I didn't realize it was explicitily legal for them to do it that way.
Until now I thought it was just a gray area in the spec. Anyway, it
was an easy fix, as you say. I architected my program from the
beginning with data integrity as a major requirement. It takes each
little atomic chunk of NMEA data it acquires (position, speed,
whatever) and treats it separately. When it gets an update, it flag
that datum as valid and starts a timer. If it hasn't received another
update when the timer expires, it flags that datum as invalid and
issues an alarm by turning the relevant display red. So the code was
already 95% there to handle the partial data.

Unfortunately, that won't help the OP, as I haven't addressed changing
the actual NMEA sentences before forwarding them to other apps. It's
not that hard, but I've had a design philosophy of not screwing around
with the raw data. I just display it and hand it on to the next
application or hardware unchanged.

I just fixed another ST50 issue for a customer (or it might be his
multiplexor- not one of yours by the way - since the customer
indicates Seatalk--NMEA conversion is handled by the mux). When the
ST50 is set to display wind speed in m/s, MWV and VWR sentences
indicate that the windspeed is in m/s, but the value is actually in
knots. I correct the data on the fly for display purposes. It was an
interesting problem.

__________________________________________________ __________
Glen "Wiley" Wilson usenet1 SPAMNIX at world wide wiley dot com
To reply, lose the capitals and do the obvious.

Take a look at cpRepeater, my NMEA data integrator, repeater, and
logger at http://www.worldwidewiley.com/

Larry August 19th 05 02:39 PM

"Glen \"Wiley\" Wilson" wrote in
:

Yeah


On many Seatalk units, like our RL-70CRC color chartplotter/radar display,
you can turn off any of the sentences you like from the options menus. I
have two compasses, two GPS, and get duplicate data that just screws The
Cap'n, so I turned off all the sentences that were duplicates from the
RL70's NMEA output port to the multiplexer. Problem solved. I leave on
the sentences from the gyro, but not the compass as the B&G compass data
from the Network Pilot autopilot is much more stable and more easily
calibrated. We're overrun with data on Lionheart...(c;

--
Larry


All times are GMT +1. The time now is 12:28 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004 - 2014 BoatBanter.com