Skip to content

Problem: GPS Fix Always False Despite Valid Coordinates #40

Description

@ki6uve

When using a custom wardragon_monitor.py that publishes dynamic GPS data via ZMQ, DragonSync correctly receives latitude/longitude/altitude but always reports:

"gps_fix": false

even though the monitor message clearly contains:

"gps_fix": true

This causes dashboards and downstream consumers to indicate no GPS fix while valid position data is present.

DragonSync parses GPS fields from the monitor status message but does not propagate the GPS metadata fields into the SystemStatus object.

Specifically, the status handler extracts: latitude, longitude, altitude, speed, track
but ignores:
gps_fix
time_source
time_utc

As a result, SystemStatus.gps_fix defaults to False.

This occurs even though the upstream monitor publishes valid values.

Required Fix

  1. Extract GPS metadata from gps_data

Add after speed/track parsing:

gps_fix = bool(gps_data.get('gps_fix', False))
time_source = str(gps_data.get('time_source', '') or '')
gpsd_time_utc = str(gps_data.get('time_utc', '') or '')
2) Pass fields into SystemStatus

Modify constructor call:

BEFORE
system_status = SystemStatus(
serial_number=serial_number,
lat=lat, lon=lon, alt=alt, speed=speed, track=track,
cpu_usage=cpu_usage,
memory_total=memory_total, memory_available=memory_available,
disk_total=disk_total, disk_used=disk_used,
temperature=temperature, uptime=uptime,
pluto_temp=pluto_temp, zynq_temp=zynq_temp
)
AFTER
system_status = SystemStatus(
serial_number=serial_number,
lat=lat, lon=lon, alt=alt, speed=speed, track=track,
gps_fix=gps_fix,
time_source=time_source,
gpsd_time_utc=gpsd_time_utc,
cpu_usage=cpu_usage,
memory_total=memory_total, memory_available=memory_available,
disk_total=disk_total, disk_used=disk_used,
temperature=temperature, uptime=uptime,
pluto_temp=pluto_temp, zynq_temp=zynq_temp
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions