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§
- Fused
Position - Fused position result from multiple GNSS systems.
- Gnss
Data - Main GNSS data structure holding parsed information and fused position.
- Gnss
System Data - Data for a single GNSS system (GPS, GLONASS, GALILEO, BEIDOU).
- Satellite
Info - Information about a single satellite, including PRN, elevation, azimuth, and SNR.