# OUTPUT_MODE=LIVE
from pymavlink import mavutil
import time

PORT = "/dev/ttyACM0"

print("Подключение к Cube...")
m = mavutil.mavlink_connection(PORT)
m.wait_heartbeat()

print("Cube подключён. Читаю Here3...")

while True:
    msg = m.recv_match(type="GPS2_RAW", blocking=True, timeout=5)

    if msg is None:
        print("Нет данных GPS", flush=True)
        continue

    lat = msg.lat / 10000000.0
    lon = msg.lon / 10000000.0
    alt = msg.alt / 1000.0

    print(
        "GPS: %.7f, %.7f | Высота: %.2f м | Спутники: %d | HDOP: %.2f | Hacc: %.2f м"
        % (
            lat,
            lon,
            alt,
            msg.satellites_visible,
            msg.eph / 100.0,
            msg.h_acc / 1000.0
        ),
        flush=True
    )

    time.sleep(0.2)