geoffsee f4272d9c1b working
2025-07-20 11:05:22 -04:00
2025-07-20 11:05:22 -04:00
2025-07-20 11:05:22 -04:00
2025-07-20 11:05:22 -04:00
2025-07-20 11:05:22 -04:00
2025-07-20 11:05:22 -04:00

GNSS Reader

A Rust-based GNSS (Global Navigation Satellite System) data parser that reads GPS location data from serial devices and converts NMEA sentences into structured, usable location information.

Features

  • NMEA Sentence Parsing: Supports GPGGA and GPRMC sentence formats
  • Live GPS Reading: Real-time data streaming from USB GPS devices
  • Demo Mode: Built-in demonstration with sample GPS data
  • Cross-Platform: Works on macOS, Linux, and Windows
  • Structured Output: Converts raw NMEA data into organized LocationData structures
  • Comprehensive Testing: Includes extensive test coverage for various GPS scenarios

Requirements

  • Rust 2024 edition or later
  • USB GPS device (tested with Stratux GPYes 2.0 u-blox 8)
  • Serial port access permissions

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd gpyes-stream
    
  2. Build the project:

    cargo build --release
    
  3. Run the application:

    cargo run
    

Usage

The application automatically detects and connects to your GPS device. On startup, it will:

  1. Attempt to connect to the GPS device via serial port
  2. Parse incoming NMEA sentences (GPGGA and GPRMC formats)
  3. Display structured location data including:
    • Latitude and Longitude coordinates
    • Altitude information
    • GPS fix quality and satellite count
    • Speed and course data
    • UTC timestamp

Demo Mode

To run the application with sample data without a physical GPS device:

cargo run -- --demo

Supported Hardware

Tested Devices

Compatibility

The application should work with any USB GPS device that outputs standard NMEA sentences via serial communication.

NMEA Sentence Support

Currently supports the following NMEA sentence types:

  • GPGGA: Global Positioning System Fix Data
  • GPRMC: Recommended Minimum Course
  • GNGGA: GNSS Fix Data (multi-constellation)
  • GNRMC: GNSS Recommended Minimum Course

Development

Running Tests

cargo test

Building for Release

cargo build --release

The compiled binary will be available in target/release/gnss-reader.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is open source. Please refer to the LICENSE file for details.

Troubleshooting

Device Not Found

  • Ensure your GPS device is properly connected
  • Check device permissions (you may need to add your user to the dialout group on Linux)
  • Verify the device path matches your system configuration

No GPS Signal

  • Ensure you have a clear view of the sky
  • Wait for the GPS device to acquire satellite lock (may take several minutes on first use)
  • Check that your GPS device is functioning properly
Description
No description provided
Readme 32 KiB
Languages
Rust 100%