adacam-api/adacam_api/routes/gnss.py
kayos 37aefb84c8 Initial commit: adacam-api v1.0.0
Clean Python Flask replacement for odc-api (434k lines Node.js → ~350 lines Python)
- GET /api/1/landmarks/last/{N} - last N detections from SQLite
- POST /api/1/landmarks - ingest detections + forward to AdaMaps
- GET /api/1/gnssConcise/latestValid - GPS fix from Redis
- GET /api/1/status - device status
- GET /api/1/deviceinfo - device identity
- GET /api/1/recording/frames/latest - latest frame path

No /api/1/cmd - that's the CVE, it's gone.

Includes:
- SQLite for local storage + offline queue
- Background thread for AdaMaps retry
- systemd service unit
- install.sh for device deployment
2026-03-14 08:13:04 -07:00

14 lines
404 B
Python

"""GNSS/GPS endpoints."""
from flask import Blueprint, jsonify
from .. import redis_client
bp = Blueprint("gnss", __name__, url_prefix="/api/1/gnssConcise")
@bp.route("/latestValid", methods=["GET"])
def latest_valid():
"""Get current GPS fix from Redis."""
gnss = redis_client.get_latest_gnss()
if gnss:
return jsonify(gnss)
return jsonify({"error": "No valid GPS fix"}), 503