Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 1.39 KB

File metadata and controls

61 lines (43 loc) · 1.39 KB

GPS Service

Python Poetry MQTT gpsd

Small Python service that reads SKY messages from gpsd, builds a satellite payload, and publishes it to MQTT topic gps/satellites.

Features

  • Reads GPS data from gpsd on localhost:2947
  • Filters for SKY class messages
  • Tracks visible and used satellites in memory
  • Publishes public payload to MQTT over TLS

Requirements

  • Python 3.14
  • Poetry
  • Running gpsd service
  • MQTT broker credentials

Environment variables

Create .env in the project root:

MQTT_USER=your_user
MQTT_PASSWORD=your_password
MQTT_HOST=your_broker_host
MQTT_PORT=8883

Install

cd "/Users/igoradulyan/Documents/portfolio_demo/gps_service"
poetry install

Run

cd "/Users/igoradulyan/Documents/portfolio_demo/gps_service"
poetry run python main.py

Run tests

cd "/Users/igoradulyan/Documents/portfolio_demo/gps_service"
python -m unittest discover -s test -p "*Test.py" -v

Project layout

  • main.py - MQTT publishing loop and satellite state handling
  • src/gps/GPSDataReader.py - gpsd socket reader and SKY message generator
  • test/GPSDataReaderTest.py - unit tests for GPS data reader behavior