Module gnss_multignss_parser

Source
Expand description

GNSS Multi-System NMEA Parser

This module provides data structures and logic for parsing NMEA sentences from multiple GNSS systems (GPS, GLONASS, GALILEO, BEIDOU). It supports extracting satellite information, position, DOP values, and fusing positions from different systems for improved accuracy.

§Features

  • Parses GGA, RMC, VTG, GSA, GSV, and GLL sentences for supported systems
  • Tracks satellite info and usage per system
  • Calculates fused position using weighted averaging and advanced filtering
  • Provides utility functions for latitude/longitude parsing

§Usage

use nema_parser::gnss_multignss_parser::GnssData;
let mut gnss = GnssData::new();
gnss.feed_nmea("$GNGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47");
gnss.calculate_fused_position();
if let Some(fused) = &gnss.fused_position {
    println!("Fused position: {}, {}", fused.latitude, fused.longitude);
}

Structs§

FusedPosition
Fused position result from multiple GNSS systems.
GnssData
Main GNSS data structure holding parsed information and fused position.
GnssSystemData
Data for a single GNSS system (GPS, GLONASS, GALILEO, BEIDOU).
SatelliteInfo
Information about a single satellite, including PRN, elevation, azimuth, and SNR.