ttlappalainen / NMEA0183

Library for handling NMEA0183 messages
69 stars 44 forks source link

RMC sentence missing field 12, Status - NMEA v2.3 and later #39

Open jmattioni opened 1 year ago

jmattioni commented 1 year ago

A new field (12, FAA Mode Indicator) was added to the RMC sentence in NMEA v2.3. The Set and Parse for this sentence should support this new field.

The content of this field is a single status character: A - Data Valid, or V - Data Invalid. Some devices expecting this field will ignore the entire message if field 12 is missing.

Reference: OpenCPN: https://www.opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:advanced_features:nmea_sentences

ttlappalainen commented 1 year ago

Sorry for delay - have been busy with N2k.

It could be in this way: bool NMEA0183SetRMC(tNMEA0183Msg &NMEA0183Msg, double GPSTime, double Latitude, double Longitude, double TrueCOG, double SOG, unsigned long DaysSince1970, double Variation, char FAAModeIndicator, char NavStatus, const char *Src="GP");

inline bool NMEA0183SetRMC(tNMEA0183Msg &NMEA0183Msg, double GPSTime, double Latitude, double Longitude, double TrueCOG, double SOG, unsigned long DaysSince1970, double Variation, const char *Src="GP") { NMEA0183SetRMC(NMEA0183Msg,GPSTime,Latitude,Longitude,TrueCOG,SOG,DaysSince1970,Variation,0,0,Src); }

Then you would have new interface to set FAA indicator and also NMEA 4.1 NavStatus. If set to 0, fields will not be populated. So this would not change behavious in case old interface has been used.

jmattioni commented 1 year ago

That works, thanks!

Joe Mattioni

WDPS Software

www.wdpsoftware.com https://www.wdpsoftware.com/

From: Timo Lappalainen @.*** Sent: Monday, October 03, 2022 11:51 AM To: ttlappalainen/NMEA0183 Cc: Joseph Mattioni; Author Subject: Re: [ttlappalainen/NMEA0183] RMC sentence missing field 12, Status - NMEA v2.3 and later (Issue #39)

Sorry for delay - have been busy with N2k.

It could be in this way: bool NMEA0183SetRMC(tNMEA0183Msg &NMEA0183Msg, double GPSTime, double Latitude, double Longitude, double TrueCOG, double SOG, unsigned long DaysSince1970, double Variation, char FAAModeIndicator, char NavStatus, const char *Src="GP");

inline bool NMEA0183SetRMC(tNMEA0183Msg &NMEA0183Msg, double GPSTime, double Latitude, double Longitude, double TrueCOG, double SOG, unsigned long DaysSince1970, double Variation, const char *Src="GP") { NMEA0183SetRMC(NMEA0183Msg,GPSTime,Latitude,Longitude,TrueCOG,SOG,DaysSince1970,Variation,0,0,Src); }

Then you would have new interface to set FAA indicator and also NMEA 4.1 NavStatus. If set to 0, fields will not be populated. So this would not change behavious in case old interface has been used.

— Reply to this email directly, view it on GitHub https://github.com/ttlappalainen/NMEA0183/issues/39#issuecomment-1265671440 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AEFMH5DMSOYXWTYDC4SDIOTWBL6G7ANCNFSM6AAAAAAQVDWZQY . You are receiving this because you authored the thread.Image removed by sender.Message ID: @.***>